FastReport .Net是适用于Windows Forms,ASP.NET,MVC和.NET Core的全功能报表解决方案。它可以在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。

在FastReport .NET 2021.1的新版本中,我们实现了对.NET 5的支持。添加了新条形码-Deutsce Post Leitcode。将RTF转换为报告对象的算法已得到显着改进。并且还添加了用于转换数字的新功能。欢迎下载体验。(点击下方按钮下载)

立即点击下载FastReport.NET v2021.1最新版

2、生成报表PDF内容

通过上面报表模板的设计,我们基本的前期工作就准备好了,需要的就是根据实际业务的需要,动态呈现数据了。

在绑定数据并生成PDF格式报表的时候,我们需要先构建一个报表对象,如下代码所示。

//生成PDF报表文档到具体文件
Report report = new Report();
report.Load(reportPath);
由于数据我们是动态构建的,因此我们需要准备参数数据源和字段数据源两个部分,参数我们用字典来承载,字段数据,我们用DataTable来承载,如下所示。
//定义参数和数据格式
var dict = new Dictionary<string, object>();
var dt = DataTableHelper.CreateTable(“ProductName,Quantity|int,Unit,Specification,HowTo,Frequency”);
然后我们根据系统需要填入动态的数据,如下代码所示。
//准备数据
dict.Add(“Name”, info.PatientName);
dict.Add(“Gender”, info.Gender);
var age = info.BirthDate.GetAge();
dict.Add(“Age”, age);
dict.Add(“Telephone”, info.Telephone);
dict.Add(“CreateTime”, info.CreateTime);

var checkDoctor = BLLFactory.Instance.GetFullNameByOpenID(info.CheckDoctor);
dict.Add(“CheckDoctor”, !string.IsNullOrEmpty(checkDoctor) ? checkDoctor : “未知”);

var CheckPharmacist = BLLFactory.Instance.GetFullNameByOpenID(info.CheckPharmacist);
dict.Add(“CheckPharmacist”, !string.IsNullOrEmpty(CheckPharmacist) ? CheckPharmacist : “未知”);

var SendUser = BLLFactory.Instance.GetFullNameByOpenID(info.SendUser);
dict.Add(“SendUser”, !string.IsNullOrEmpty(SendUser) ? SendUser : “未知”);

var qrcode = string.Format("{0}/h5/PrescriptionDetail?id={1}", ConfigData.WebsiteDomain, info.ID);
dict.Add(“QrCode”, qrcode);
dict.Add(“BarCode”, info.PrescriptionNo);

if(detailList != null)
{
foreach(var item in detailList)
{
var dr = dt.NewRow();
dr[“ProductName”] = item.ProductName;
dr[“Quantity”] = item.Quantity;
dr[“Unit”] = item.Unit;
dr[“Specification”] = “”;
dr[“HowTo”] = item.HowTo;
dr[“Frequency”] = item.Frequency;
dt.Rows.Add(dr);
}
}
最后根据上面的数据,绑定并生成PDF报表即可,如下代码所示。
//刷新数据源
report.RegisterData(dt, “Detail”);
foreach (string key in dict.Keys)
{
report.SetParameterValue(key, dict[key]);
}

//运行报表
report.Prepare();

//导出PDF报表
PDFExport export = new PDFExport();
report.Export(export, realPath);
report.Dispose();
由于这个功能我们是在微信公众号里面集成的一个报表呈现,因此我们可以通过PDF预览的方式,或者直接打开PDF文档。
如果采用PDF在线预览方式,可以参考我随笔《实现在线预览PDF的几种解决方案》介绍的那样,最终采用PDFJS的在线预览方案,不管在微信端,还是Web端都是比较不错的效果。

如果采用PDFJS预览方式,那么JS代码如下所示。
var baseUrl = “@ViewBag.WebsiteDomain/Content/JQueryTools/pdfjs/web/viewer.html”;
var url = baseUrl + “?file=” + filePath;//实际地址
location.href = url;
如果是直接打开PDF,我们我们就直接传递给浏览器一个PDF文件路径即可
location.href = filePath
在微信端预览的效果如下所示。

使用FastReport报表,总体来说,工作量主要是在设计报表模板这里,通过代码实现数据绑定的工作反而非常简单,只需要指定对应的参数和字段数据表即可,而报表的设计是一项精细的工作,我们需要根据实际情况,反复调整格式和呈现的效果才能做到尽善尽美,不过整体来说FastReport提供了非常强大的报表设计和处理过程,使得我们可以在设计一些复杂报表的时候,可以更加高效。

如何基于FastReport报表工具,生成报表PDF文档展示医院处方笺的内容相关推荐

  1. 使用FastReport报表工具生成报表PDF文档

    在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同感.本篇随 ...

  2. 用HiPDF工具怎么裁剪PDF文档

    PDF文档可以使用裁剪的方式,来去掉一些不必要的内容,使得文档更加简洁明了.无论是为了更好的阅读体验,还是为了减小文件的大小,都可以通过剪裁PDF页面来实现,那么在如何快速裁剪PDF文档呢?有什么好用 ...

  3. 用PDMReader工具生成数据库设计文档

    你是否在为写庞大的数据库设计文档发愁,帮你轻松搞定,前提是你需要有pdm文件! 第一步:下载并安装PDMReader(见我的资源里); 第二步:打开PDMReader,新建项目:test: 第三步:在 ...

  4. 用PDMReader工具生成数据库设计文档(转载)

    来源:http://blog.csdn.net/xinglun88/article/details/19987719 第一步:下载并安装PDMReader,资源网站: http://www.pdmre ...

  5. PDF文档一键自动生成目录和书签

      在工作中经常会遇到编写文档的时候,当我们在word编写完文档后,一般可以自动生成一个目录.为了方便阅读和保护文档不被破坏,一般发送给别人的时候,需要把word文档转换成PDF格式.但是word文档 ...

  6. php压缩ttf文件_TCPDF  PHP生成PDF文档支持ttf字体

    TCPDF是一个用于快速生成PDF文件的PHP5函数包.TCPDF基于FPDF进行扩展和改进.支持UTF-8,Unicode,支持ttf字体,HTML和XHTML.在基于PHP开发的Web应用中,使用 ...

  7. Java生成PDF文档 iText使用PDF模板一

    最近在弄这个java生成pdf,哎,在网上查找了各种各样的学习资料,弄了几天,今天终于把这个效果简单的弄出来,所以,也把这个,我所走过的坑,作一个记录,提供接下来需要学习的人. 参考文献文档:http ...

  8. Java iText生成PDF文档

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://mp.csdn.net/mdeditor/83963600# 1.简介 iText是一个非常著名的能够快速产生PDF文件的Java类 ...

  9. itext生成pdf文档加载中文字体解决方法

    最近接手一个任务,在网页中通过用户的输入的信息生成一个pdf文档并且下载到用户本地.iText是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML. ...

  10. Database-doc 数据库文档展示工具

    实用工具 Database-doc:数据库文档展示工具 简介 数据库文档展示工具(Database-doc),又叫数据库注释浏览工具,是一个简单的数据库展示各个字段注释的开源工具.在日常开发工作中,您 ...

最新文章

  1. 2017杭州·云栖大会全纪实
  2. 用户关系表 存储_列式存储系列(一)CStore
  3. IDEA快速 实现 SpringMVC 整合xfire 发布 WebService 服务
  4. python之路day03--数据类型分析,转换,索引切片,str常用操作方法
  5. java中的socket模型_Socket通信模型
  6. mysql创建模型_连接mysql数据库,创建用户模型
  7. idea如何删除java里面工程_IntelliJ IDEA 如何彻底删除项目的步骤
  8. 三维建模学习太难?业内前辈给你指点一下!
  9. ubuntu20.04.4虚拟机 ping不通百度问题解决
  10. Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme阅读总结
  11. 【Selenium】Selenium的3种等待方式
  12. [256个管理学理论]003.鳄鱼法则(Alligator Principle)
  13. 7-1 打印九九口诀表 (15分)
  14. Discord账号被封怎么办?Discord账号解封申诉方案
  15. 图神经网络模型—PATCHY-SAN的基本思想与流程
  16. Oracle as 10g安裝問題
  17. Markdown 公式编号及引用
  18. org.eclipse.wst.xsl.jaxp.debug.invoker.TransformationException
  19. 微信小程序答题赢红包 微信答题小程序抢红包,答题领微信零钱红包,答题红包小程序,可以自己出题考试的小程序
  20. Element UI 及 Element Plus框架

热门文章

  1. Android开发常用开源框架
  2. 计算机word表格转换,怎么把Word表格转换成Excel表格
  3. python开三次方_python 三次方
  4. VL817-Q7 USB3.0HUB
  5. php中的gd图像处理,PHP图像处理(GD库)
  6. 台式机Ubuntu20.04系统下安装Tenda U12 无线网卡驱动
  7. Merriam Webster's Vocabulary Builder Roots 韦小绿英文词根 Unit 1整理
  8. “十四五”新一代信息技术产业发展
  9. Spark Hive实现基于协同过滤的电影推荐(MovieLens数据集)
  10. Java中的类加载器详解