AABBbaby

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

DevExpress WPF应用界面开发入门教程 - 打印自定义报表

DXPrinting Library 提供了一种创建自定义打印报表的简单方法,这种方法基于称为打印链接的特殊打印程序。 DXPrinting Library 引入了几种类型的打印链接,每一种都设计用于呈现特定数据对象、创建报表以及导出和打印报表,您可以通过从LinkBase抽象类继承您的类来创建自定义打印链接。

DevExpress WPF v21.1高速下载

下表列出了内置的打印链接类型。

DevExpress WPF - 打印自定义报表图1
创建简单链接

简单的打印链接通常用于在报表中呈现非分层数据,在不需要将数据项分组的时候使用这些类型的链接。

DevExpress WPF - 打印自定义报表图2

创建后,必须为简单链接提供数据。 为此请通过SimpleLink.DetailCount属性指定数据项的数量并处理SimpleLink.CreateDetail事件。 每次需要新数据项时都会引发该事件,次数与SimpleLink.DetailCount 属性指定的次数相同。 在处理程序中,将新数据项分配给CreateAreaEventArgs.Data事件参数的属性,可以使用CreateAreaEventArgs.DetailIndex属性获取所需数据项的索引。

与数据项一起,必须指定可视化呈现。为此请创建一个DataTemplate,它应该应用于每个数据项,然后将其分配给链接的 SimpleLink.DetailTemplate属性。

创建集合视图链接

当您需要在报表中显示来自分层数据源的数据或应将数据项显示为分成几组时,集合视图打印链接非常有用。

DevExpress WPF - 打印自定义报表图3

要将数据分配给集合视图链接,请创建一个实现ICollectionView 接口的对象,这可以是 System.Windows.Data.CollectionViewSource 对象。 为该对象提供数据后,将其分配给链接的CollectionViewLink.CollectionView 属性。

指定数据后,您应该定义其可视化呈现。为此请创建一个应应用于每个数据项的DataTemplate,并将其分配给链接的 CollectionViewLink.DetailTemplate属性。要提供有关项目分组信息的链接,请为每个分组级别创建一个GroupInfo对象,并通过 GroupInfo.HeaderTemplate 属性指定应应用于当前分组级别中的每个组标题的模板。 然后,将GroupInfo 对象添加到链接的 CollectionViewLink.GroupInfos 集合中。

创建可打印的控制链接

可打印控件链接用于呈现实现 IPrintableControl 或 IRootDataNode 接口的控件和数据对象,例如,TableView 对象可以由可打印的控制链接呈现。

DevExpress WPF - 打印自定义报表图4

要创建可打印的控件链接,请将适当的控件或数据对象传递给PrintableControlLink构造函数。

页面设置

DXPrinting Library 提供了许多设置,允许您自定义报表的页面选项。

您可以在报表中包含页眉和页脚,以及整个文档的页眉和页脚。 为此,请分别通过TemplatedLink.PageHeaderTemplateTemplatedLink.PageFooterTemplateTemplatedLink.ReportHeaderTemplate 和TemplatedLink.ReportFooterTemplate属性指定其模板。 通过将适当的数据对象分别分配给TemplatedLink.PageHeaderDataTemplatedLink.PageFooterDataTemplatedLink.ReportHeaderData 和TemplatedLink.ReportFooterData 属性,还可以为这些模板提供一些自定义数据。

下表列出了用于指定报表页面设置的其他属性。

DevExpress WPF - 打印自定义报表图5
导出和打印报表

创建链接对象并为其提供数据后,您可以通过调用LinkBase.CreateDocument 方法从链接创建文档。 现在报表已生成,您可以打印和导出它,以及在DocumentPreview 控件中显示它。 为此,需要以当前链接作为初始化参数创建一个新的LinkPreviewModel实例,并将其分配给DocumentPreview.Model 属性。

使用LinkBase.ShowPrintPreview方法打开报表预览窗口,要打开模式预览窗口,请使用LinkBase.ShowPrintPreviewDialog方法。 可以通过LinkBase.Print方法调用打印对话框,要在不打开任何对话框的情况下打印报表,请使用LinkBase.PrintDirect方法。

下表列出了用于将报表导出为不同格式的方法。

DevExpress WPF - 打印自定义报表图6

DevExpress WPF | 下载试用

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。


DevExpress技术交流群4:715863792      欢迎一起进群讨论

更多DevExpress线上公开课、中文教程资讯请上中文网获取

posted on   AABBbaby  阅读(267)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2020-09-24 Web报表设计器如何使用自定义序列化程序类?DevExpress轻松搞定!
2019-09-24 Kendo UI for jQuery自定义小部件第一弹!不得不看的入门指南
点击右上角即可分享
微信分享提示