开始使用Reports for WinForms > 生成报表 > 生成报表(C1Reports 和 C1PrintDocument) |
C1Report WinForms版提供了两种完全不同方式来生成报表:
虽然两种方式都可以正确的生成报表,但它们还是存在一些重要的区别。以下列出了一些关键的不同点。
ImportC1Report方法创建了一个具有数据绑定的C1PrintDocument组件。C1PrintDocument组件依据获取的数据动态生成。当绑定的数据刷新时,生成的文档也会刷新。通过C1Report组件,数据在呈现的过程当中嵌入到文档中。生成的文档不具有绑定数据的能力(当然,可以重复生成报表以获取最新的数据)。
当通过导入方式生成报表,在生成的文档中,所有的字段均以RenderField呈现,并且所有的区域呈现为RenderSection对象。当报表定义包含分组时,每一个分组呈现为一个RenderArea对象,分组页眉和和分组页脚呈现为嵌套的RenderSection对象,嵌套的分组呈现为RenderArea对象。
当用C1Report组件生成报表时,每一个报表区域呈现为一个RenderArea对象。各字段按如下方式呈现:
? 当使用LineSlant组件时,会生成一个RenderLine对象;
? 当使用image或者barcode组件时,生成一个RenderImage对象;
? 当RTF设置为True时,生成RenderRichText对象;
如果报表没有指定(或者设置为0)CustomWidth与CustomHeight属性,并且系统没有安装打印机,导入方式生成的报表的默认页面尺寸则取决于不同的区域设置(比如,US和Canada使用Letter,而Russia使用A4)。这样的报表加载到C1Report组件时,其页面尺寸将会设为Letter(8.5 x 11英寸),这是C1.Win.C1Report.C1Report的行为。
如果系统安装有一个或多个打印机,通过导入方式生成的报表的默认页面尺寸使用与C1PrintDocument相同的逻辑(特别是可以通过MeasurementPrinterName属性指定要使用的打印机)。这样可以避免长时间等待系统默认的网络打印机。而C1Report组件生成的报表的默认页面尺寸取决于系统默认打印机。
导入方式有一些不容忽视的固有限制。其中包括: