DXPrinting Library 提供了一种创建自定义打印报表的简单方法,这种方法基于称为打印链接的特殊打印程序。 DXPrinting Library 引入了几种类型的打印链接,每一种都设计用于呈现特定数据对象、创建报表以及导出和打印报表,您可以通过从LinkBase抽象类继承您的类来创建自定义打印链接。
下表列出了内置的打印链接类型。
创建简单链接
简单的打印链接通常用于在报表中呈现非分层数据,在不需要将数据项分组的时候使用这些类型的链接。
创建后,必须为简单链接提供数据。 为此请通过SimpleLink.DetailCount属性指定数据项的数量并处理SimpleLink.CreateDetail事件。 每次需要新数据项时都会引发该事件,次数与SimpleLink.DetailCount 属性指定的次数相同。 在处理程序中,将新数据项分配给CreateAreaEventArgs.Data事件参数的属性,可以使用CreateAreaEventArgs.DetailIndex属性获取所需数据项的索引。
与数据项一起,必须指定可视化呈现。为此请创建一个DataTemplate,它应该应用于每个数据项,然后将其分配给链接的 SimpleLink.DetailTemplate属性。
创建集合视图链接
当您需要在报表中显示来自分层数据源的数据或应将数据项显示为分成几组时,集合视图打印链接非常有用。
要将数据分配给集合视图链接,请创建一个实现ICollectionView接口的对象,这可以是 System.Windows.Data.CollectionViewSource 对象。 为该对象提供数据后,将其分配给链接的CollectionViewLink.CollectionView 属性。
指定数据后,您应该定义其可视化呈现。为此请创建一个应应用于每个数据项的DataTemplate,并将其分配给链接的 CollectionViewLink.DetailTemplate属性。要提供有关项目分组信息的链接,请为每个分组级别创建一个GroupInfo对象,并通过 GroupInfo.HeaderTemplate 属性指定应应用于当前分组级别中的每个组标题的模板。 然后,将GroupInfo 对象添加到链接的 CollectionViewLink.GroupInfos 集合中。
创建可打印的控制链接
可打印控件链接用于呈现实现 IPrintableControl 或 IRootDataNode 接口的控件和数据对象,例如,TableView 对象可以由可打印的控制链接呈现。
要创建可打印的控件链接,请将适当的控件或数据对象传递给PrintableControlLink构造函数。
页面设置
DXPrinting Library 提供了许多设置,允许您自定义报表的页面选项。
您可以在报表中包含页眉和页脚,以及整个文档的页眉和页脚。 为此,请分别通过TemplatedLink.PageHeaderTemplate、TemplatedLink.PageFooterTemplate、TemplatedLink.ReportHeaderTemplate 和TemplatedLink.ReportFooterTemplate属性指定其模板。 通过将适当的数据对象分别分配给TemplatedLink.PageHeaderData、TemplatedLink.PageFooterData、TemplatedLink.ReportHeaderData 和TemplatedLink.ReportFooterData 属性,还可以为这些模板提供一些自定义数据。
下表列出了用于指定报表页面设置的其他属性。
导出和打印报表
创建链接对象并为其提供数据后,您可以通过调用LinkBase.CreateDocument 方法从链接创建文档。 现在报表已生成,您可以打印和导出它,以及在DocumentPreview 控件中显示它。 为此,需要以当前链接作为初始化参数创建一个新的LinkPreviewModel实例,并将其分配给DocumentPreview.Model 属性。
使用LinkBase.ShowPrintPreview方法打开报表预览窗口,要打开模式预览窗口,请使用LinkBase.ShowPrintPreviewDialog方法。 可以通过LinkBase.Print方法调用打印对话框,要在不打开任何对话框的情况下打印报表,请使用LinkBase.PrintDirect方法。
下表列出了用于将报表导出为不同格式的方法。
DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。
DevExpress技术交流群4:715863792 欢迎一起进群讨论
更多DevExpress线上公开课、中文教程资讯请上中文网获取
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/2665.html