如何使用FastReport .NET 从 JetBrains Rider 中创建PDF报告?

news2025/2/4 6:04:02

Fastreport是目前世界上主流的图表控件,具有超高性价比,以更具成本优势的价格,便能提供功能齐全的报表解决方案,连续三年蝉联全球文档创建组件和库的“ Top 50 Publishers”奖。

FastReport.NET官方版下载(qun:536197826)https://www.evget.com/product/1861/download

在本文中,我们将在不使用 Microsoft Visual Studio 的情况下了解 Windows 11 中的 .NET 平台,并创建可导出为 PDF 的报告。与Visual Studio 相似的是 JetBrains Ride,它是由 JetBrains 开发的跨平台 .NET IDE,支持 C#、VB.NET 和 F# 语言。接下来,我们将演示如何使用 FastReport .NET 从 JetBrains Rider 创建、构建和导出 PDF 报告/文档。

第一步,您需要在电脑上安装 JetBrains Rider IDE。接下来,通过选择“New Solution ”创建一个新的解决方案。

下一步是设置项目。在.NET/.NET Core部分选择桌面应用程序项目类型。然后给项目命名,我们以 "ReportPDF_Core_WinFormsApp "为例。然后点击Windows Forms App类型,C#语言,NET 7.0框架。

我们首先需要在应用代码中为我们的报告添加一个简单的样本数据集,请在Form1.cs中添加:

 using System.Data; 

接下来,在Form1类中添加一个私有字段。

 private DataSet _fDataSet = new DataSet();

让我们添加一个私有的CreateDataSet方法,在这里我们将创建并填入一个数据集:

private void CreateDataSet()  {  // create simple dataset with one table   // create simple dataset  _fDataSet = new DataSet();   // create a table  DataTable table = new DataTable();  table.TableName = "Employees";  // adding a table to the dataset  _fDataSet.Tables.Add(table);  // adding data to a table   table.Columns.Add("ID", typeof(int));  table.Columns.Add("Name", typeof(string));    table.Rows.Add(1, "Andrew Fuller");  table.Rows.Add(2, "Nancy Davolio");  table.Rows.Add(3, "Margaret Peacock");  }

添加对CreateDataSet方法的调用:

 public Form1()
 {
 InitializeComponent();
 CreateDataSet();
 }

在 JetBrains Rider 中让 FastReport .NET 运行得最快方法是什么?那就是使用快速报告私有 NuGet 服务器

接下来我们介绍在购买 FastReport .NET 后如何添加 NuGet 包。首选您需要单击 IDE 底部的 NuGet 选项卡,然后单击源选项卡。

现在我们通过单击“+”并输入必要的数据来添加一个新的存储库:

- 名称 — 不带空格的源名称(例如 FR-Nuget);
- 网址——https://nuget.fast-report.com/api/v3/index.json;
- 用户——来自 Fast Reports 帐户的电子邮件;
- 密码 ― Fast Reports 帐户的密码。

您将看到相应的存储库:

现在我们将安装 FastReport.Pro 包。为此,请转到“包”选项卡并按 FR-Nuget 存储库过滤包。当然,安装找到的包。

如果成功,您将看到一条通知。

接下来在Form1.cs中添加:

 public Form1()
 {
 InitializeComponent();
 CreateDataSet();
 }

接下来,我们将在应用程序中插入 3 个新按钮:“报表设计”、“使用对话框导出为 PDF”、“无提示导出”。为此,对 Form1.Designer.cs 进行适当的更改:

  // <summary>
 // Required method for Designer support - do not modify
 // the contents of this method with the code editor.
 // </summary>
 private void InitializeComponent()
 {
 this.components = new System.ComponentModel.Container();
 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 this.ClientSize = new System.Drawing.Size(800, 450);
 this.Text = "Form1";
 this.btnExportWithDialog = new System.Windows.Forms.Button();
 this.btnSilentExport = new System.Windows.Forms.Button();
 this.btnShowDesigner = new System.Windows.Forms.Button();
 this.SuspendLayout();
 // 
 // btnExportWithDialog
 // 
 this.btnExportWithDialog.Location = new System.Drawing.Point(44, 148);
 this.btnExportWithDialog.Name = "btnExportWithDialog";
 this.btnExportWithDialog.Size = new System.Drawing.Size(208, 23);
 this.btnExportWithDialog.TabIndex = 0;
 this.btnExportWithDialog.Text = "Export to PDF with dialog";
 this.btnExportWithDialog.UseVisualStyleBackColor = true;
 this.btnExportWithDialog.Click += new System.EventHandler(this.btnExportWithDialog_Click);
 // 
 // btnSilentExport
 // 
 this.btnSilentExport.Location = new System.Drawing.Point(44, 180);
 this.btnSilentExport.Name = "btnSilentExport";
 this.btnSilentExport.Size = new System.Drawing.Size(208, 23);
 this.btnSilentExport.TabIndex = 0;
 this.btnSilentExport.Text = "Silent export";
 this.btnSilentExport.UseVisualStyleBackColor = true;
 this.btnSilentExport.Click += new System.EventHandler(this.btnSilentExport_Click);
 // 
 // btnShowDesigner
 // 
 this.btnShowDesigner.Location = new System.Drawing.Point(44, 87);
 this.btnShowDesigner.Name = "btnShowDesigner";
 this.btnShowDesigner.Size = new System.Drawing.Size(208, 23);
 this.btnShowDesigner.TabIndex = 1;
 this.btnShowDesigner.Text = "Report design";
 this.btnShowDesigner.UseVisualStyleBackColor = true;
 this.btnShowDesigner.Click += new System.EventHandler(this.btnShowDesigner_Click);
 // 
 // Form1
 // 
 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 this.ClientSize = new System.Drawing.Size(292, 266);
 this.Controls.Add(this.btnShowDesigner);
 this.Controls.Add(this.btnSilentExport);
 this.Controls.Add(this.btnExportWithDialog);
 this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
 this.Name = "Form1";
 this.Text = "ExportToPDF";
 this.ResumeLayout(false);
 }
 #endregion
 private System.Windows.Forms.Button btnExportWithDialog;
 private System.Windows.Forms.Button btnSilentExport;
 private System.Windows.Forms.Button btnShowDesigner; 

让我们使用这段代码为“报表设计”按钮编写一个点击处理程序。

 private void btnShowDesigner_Click(object sender, EventArgs e)
 {
 // create report instance
 Report report = new Report();
 // load the existing report
 //report.Load(@"..\..\..\Report.frx");
 // register the dataset
 report.RegisterData(_fDataSet);
 report.GetDataSource("Employees").Enabled = true;
 // run the designer
 report.Design(); 
 // free resources used by report
 report.Dispose();
 }

运行应用程序并查看带有 3 个按钮的表单。

单击“报表设计”按钮并转到 FastReport .NET 设计器。

让我们使用拖放操作将数据集中的字段添加到报告模板,然后将“员工”标题添加到报告中。之后,为文本对象设置 AutoWidth = true 属性。

让我们将我们的报告模板保存在 ReportPDF_Core_WinFormsApp 项目所在的文件夹中,名称为“Report”。保存后,关闭设计器和应用程序。让我们取消注释 btnExportWithDialog_Click 方法中的行,以便在打开设计器时加载我们保存的报表:

  report.Load(@"..\..\..\Report.frx");

为带有对话框的“导出为 PDF”按钮添加点击处理程序:

  private void btnExportWithDialog_Click(object sender, EventArgs e)
 {
 // create report instance
 Report report = new Report();
 // load the existing report
 report.Load(@"..\..\..\Report.frx");
 // register the dataset
 report.RegisterData(_fDataSet);
 // run the report
 report.Prepare();
 // create export instance
 PDFExport export = new PDFExport();
 export.Export(report);
 // free resources used by report
 report.Dispose();
 }

运行项目并单击“使用对话框导出为 PDF”按钮:

将打开一个包含 PDF 导出设置的对话框。选择“导出后打开”并单击“确定”。保存到名为“Report”的 PDF 项目文件夹。导出完成后,PDF文件会自动打开:

因此,我们得到了一个从数据集构建的简单报告/PDF 文档。

我们还要检查所谓的没有对话框的“静默”PDF 导出选项。为“静默导出”按钮添加点击处理程序:

private void btnSilentExport_Click(object sender, EventArgs e)
 {
 // create report instance
 Report report = new Report();
 // load the existing report
 report.Load(@"..\..\..\Report.frx");
 // register the dataset
 report.RegisterData(_fDataSet);
 // run the report
 report.Prepare();
 // run the report
 PDFExport export = new PDFExport();
 // opening after export
 export.OpenAfterExport = true;
 // export the report
 report.Export(export, "Result.pdf");
 // free resources used by report
 report.Dispose();
 }

运行项目并单击“静默导出”按钮。它将立即导出并打开一个名为“结果”的 PDF 文件,它位于正在运行的项目的 exe 旁边:

在本文中,我们回顾了JetBrains Rider (C#) + .NET Core + WinForms + FastReport .NET + Windows 11的拉力,并收到了从数据集构建的 PDF 报告。当然,我们确保无需 Microsoft Visual Studio 即可轻松使用 .NET 平台。

关于“使用FastReport .NET 从 JetBrains Rider 中创建PDF报告的教程就到这里了,点击查看更多FastReport .Net使用教程。

FastReport .Net | 下载试用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/103546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

了解什么是架构基本概念和架构本质

什么是架构和架构本质 在软件行业&#xff0c;对于什么是架构&#xff0c;都有很多的争论&#xff0c;每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前&#xff0c;我们先讨论架构的概念定义&#xff0c;概念是人认识这个世界的基础&…

Note that you can also install from a tarball 处理

近期使用 npm publish 发布依赖包时&#xff0c;始终遇到 npm 404 报错&#xff0c;错误信息是 “Note that you can also install from a tarball”&#xff0c;尝试更换网络&#xff0c;更换代理服务器等操作&#xff0c;都无效&#xff0c;npm 报错如下 问题原因&#xff1a…

python通过字典来替代if..else

在应对多策略的场景下&#xff0c;大量使用if...else...不仅提高了后期的维护成本&#xff0c;还降低了运行效率。通过字典做映射就可以更好的优化代码。 比如这样一个模拟场景&#xff0c;根据用户的VIP等级&#xff0c;发放奖励。在大量使用if...else...时就会变成如下状态&…

nodejs篇 内置模块http 常用api

文章目录前提创建一个最基本的http服务器req有哪些值得关注的信息res常用的apihttp.request(options[, callback])server事件监听checkContinuecheckExpectationcloseconnect前提 如果你觉得nodejs官方文档给的api太多&#xff0c;不知道哪些重要&#xff0c;请看下去&#xf…

TensorRT全方位概览笔记

TensorRT &#xff08;基于8.2.3&#xff09;1.简介1.export1.1 使用tensorrt API 搭建1.2 使用parser1.3 使用框架内 tensorrt 接口1.4 注意事项2.开发辅助工具2.1 trtexec2.2 Netron2.3 onnx-graphsurgeon2.4 polygraphy2.5 Nsight Systems3. plugin3.1 plugin3.2 使用3.3 类…

就离谱!使用机器学习预测2022世界杯:小组赛挺准,但冠亚季军都错了 ⛵

&#x1f4a1; 作者&#xff1a;韩信子ShowMeAI &#x1f4d8; 数据分析实战系列&#xff1a;https://www.showmeai.tech/tutorials/40 &#x1f4d8; 机器学习实战系列&#xff1a;https://www.showmeai.tech/tutorials/41 &#x1f4d8; 本文地址&#xff1a;https://www.sho…

C2. Potions (Hard Version)(可以后悔的选取 + 一种新奇的优先队列用法)

Problem - 1526C2 - Codeforces 这是该问题的困难版本。唯一不同的是&#xff0c;在这个版本中&#xff0c;n≤200000。只有当两个版本的问题都解决了&#xff0c;你才能进行黑客攻击。 有n个药水排成一行&#xff0c;最左边是药水1&#xff0c;最右边是药水n。每种药水在喝下…

Eclipse安装和环境的基本配置

Eclipse安装 安装包 链接&#xff1a;https://pan.baidu.com/s/13LXiyGmgdAQ2MYXhim1WMg 提取码&#xff1a;WADS 不会安装的可以参考这篇文章 链接: 安装教程文章 eclipse怎么更改存储位置 1.1 file-> Switch Workspace ->Other 打开后可以看到保存文件的路径也可以…

疫情之下连锁餐饮行业积极求变,集团采购协同管理系统重构企业采购数字化

2019年底至今&#xff0c;新冠肺炎疫情已进入了第三个年头。作为接触性、聚集性行业&#xff0c;国内餐饮业持续承压&#xff0c;经历了一系列的波折。尤其2022年以来&#xff0c;国内多地出现了此起彼伏的疫情&#xff0c;给餐企带来了较大冲击&#xff0c;餐饮行业整体营收收…

【推荐】安全访问服务边缘(SASE)资料汇总合集24篇

Secure Access Service Edge (SASE) 是Gartner推出的一个新的技术理念。SASE将 SD-WAN和网络安全解决方案&#xff08;FWaaS、CASB、SWG 和ZTNA&#xff09;融合到统一的云原生服务中。SASE是Gartner最新提出的一个技术理念&#xff0c;SASE用于从分布式云服务交付聚合的企业网…

Web前端105天-day49-jQuery

jQuery02 目录 前言 一、复习 二、标签内容 三、get请求 四、新增子元素 五、委托 六、克隆 七、加载HTML 八、准备就绪 九、Node.js 十、js中提示jQuery的方案 十一、location 十二、根据地址栏参数加载页面 十三、全局样式变量 总结 前言 jQuery02学习开始 一…

vi\vim编辑器的使用及命令、快捷键

vi\vim编辑器 1、vi\vim编辑器介绍 vi\vim是visual interface的简称&#xff0c;是Linux中最经典的文本编辑器。 同图形化界面中的文本编辑器一样&#xff0c;vi是命令行下对文本文件进行编辑的绝佳选择。 vim是vi的加强版本&#xff0c;兼容vi的所有指令&#xff0c;不仅能…

信息化时代,相比于人工服务客户更喜欢自助式服务

对于SaaS产品&#xff0c;为客户提供自助式服务&#xff0c;帮助客户能够自行完成任务和解决问题&#xff0c;给到客户更好的使用体验&#xff0c;对于SaaS产品&#xff0c;搭建一个自助式知识库门户和产品知识库尤为重要。在选购产品后&#xff0c;如果没有获得很好的客户服务…

TraceView使用

TraceView 是什么&#xff1f; TraceView 是 Android SDK 中内置的一个工具&#xff0c;用于加载 trace 文件&#xff0c;用图形的形式展示代码的执行时间、调用次数及调用栈&#xff0c;便于我们分析。 如何生成 trace 文件&#xff1f; 使用代码生成 Debug.startMethodTra…

新零售时代下,物流行业迎来新机遇

电商&#xff0c;一个异军突起的新行业&#xff0c;将改变传统商业旧模式。根据相关数据显示&#xff0c;2010-2019年&#xff0c;我国电商交易规模从4.5万亿元增长到34.8万亿元&#xff0c;年均复合增速达25%。在电商飞速发展的态势下&#xff0c;物流行业也迎来了蓬勃发展。 …

【华为OD机试真题2023 JAVA】去除多余空格

华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 去除多余空格 知识点字符串数组队列 时间限制:2s 空间限制:256MB 限定语言:不限 题目描述: 去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和…

Python3和Django的单元测试示例

1. unittest unittest是python自带的单元测试框架&#xff0c;unittest框架是受到 JUnit 的启发&#xff0c;与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化&#xff0c;配置共享和关机代码测试。支持将测试样例聚合到测试集中&#xff0c;并将测试与报告框…

性能测试(二)—— JMeter元件作用域和执行顺序、JMeter示例、JMeter参数化

目录 一、JMeter元件作用域和执行顺序 1. 元件的基本介绍 2. 元件作用域 3. 元件执行顺序 二、JMeter使用示例 1. JMeter第一个案例 2. 重点组件 2.1 线程组 2.2 HTTP请求 2.3 查看结果树 三、JMeter参数化 1. JMeter参数化常用方式 2. 用户定义的变量 2.1 场景 …

详解OpenCV的线段绘制函数line()

函数line()用于在图像上绘制圆形。 函数line()利用两点确定一条直线的原理在图像中绘制出一条线段。 C原型如下&#xff1a; void cv::line(InputOutputArray img,Point pt1,Point pt2,const Scalar & color,int thickness 1,int lineType LINE_8,int shift 0)Python原…

智能优化算法:人工蜂鸟算法 - 附代码

智能优化算法&#xff1a;人工蜂鸟算法 摘要&#xff1a;人工蜂鸟算法( AHA )是 ZHAO 等 于 2021 年提出的一种新型元启发式优化算法 . 该算法模拟了自然界中蜂鸟轴向飞行、对角飞行、全方位飞行 3 种特殊飞行技能和引导觅食、区域觅食、迁移觅食 3 种智能觅食策略,并通过引入…