随笔『使用ActiveReport for .net 进行报表开发』
采用Pdf作为报表显示的文件格式,导出Pdf应该是首选。由于是把报表直接生成了图片,Tiff格式的导出也是所见即所得的。
其他的文件格式的限制都比较多,每种文件格式的限制可以在ActiveReport的帮助中搜索“Limitations in Export Formats”,其中有详细的列表。
将报表导出的步骤也很简单,先要在工具栏上添加导出要用的控件,这组控件有:HtmlExport,PdfExport,RtfExport,TextExport,TiffExport,XlsExport六种。这里以PdfExport为例:
拖放一个PdfExport控件到窗体上,就可以进行导出操作了,代码很简单,我们假设有一个报表文件和一个Viewer:
窗体加载的时候:
ActiveReports1 rpt = new ActiveReports1();
rpt.Run();
this.viewer1.Document = rpt.Document;
在一个Button的Click中:
this.pdfExport1.Export(this.viewer1.Document,@"z:\123.pdf");
很简单吧,其他格式的导出也一样,例如Excel格式:
this.xlsExport1.Export(this.viewer1.Document, @"z:\123.xls");
在生成Pdf的时候要注意,有时页面设置不当,控件的大小可能会超出范围,导致报表有一部分无法打印出来,在使用AcrobatReader预览的时候,要在Print窗口,通过调整Page Scaling为None,看看右边Preview部分,有没有发生超出打印范围的情况。另外在作表格的时候要放大后看,因为经常会出现线条没有对齐或完全连接的情况,在预览的时候看不出来,但是在打印后会看到线条错位等情况。
(七)--事件
上篇随笔介绍了在ActievReport中导出报表,本篇随笔简单介绍ActiveReport中的重要事件。
1. 只触发一次的事件:
ReportStart:在报表启动时触发。该事件在DataInitialize之前,在这里可以整个报表都要用到的对象或变量作初始化,也可以设置子报表。
DataInitialize:这个事件在前面的几篇随笔中经常出现,经常在这里取数据,绑定数据源,设置报表的Fileds属性等。
ReportEnd :在报表加载完成后触发。
2. 多次触发的事件:
FetchData:在处理每一条数据时都会触发,如果是采用绑定数据源的方式,就不需要再作对Fields中每个Field的Value赋值。如果是从自定义的对象集合中提取数据,就要在这里给Fields赋值。而且,使用自定义集合的时候要自己设置事件的eArgs参数的EOF属性,该属性用来判断是否显示到了最后一条记录,如果是,就设置为true,并且直接返回。具体的代码可以参看以前的随笔。
PageStart:在报表的每页生成的时候触发,在这里作针对每个页的处理,最常见的就是显示页码。
PageEnd:在报表的每也生成完成的时候触发。
其他的文件格式的限制都比较多,每种文件格式的限制可以在ActiveReport的帮助中搜索“Limitations in Export Formats”,其中有详细的列表。
将报表导出的步骤也很简单,先要在工具栏上添加导出要用的控件,这组控件有:HtmlExport,PdfExport,RtfExport,TextExport,TiffExport,XlsExport六种。这里以PdfExport为例:
拖放一个PdfExport控件到窗体上,就可以进行导出操作了,代码很简单,我们假设有一个报表文件和一个Viewer:
窗体加载的时候:
ActiveReports1 rpt = new ActiveReports1();
rpt.Run();
this.viewer1.Document = rpt.Document;
在一个Button的Click中:
this.pdfExport1.Export(this.viewer1.Document,@"z:\123.pdf");
很简单吧,其他格式的导出也一样,例如Excel格式:
this.xlsExport1.Export(this.viewer1.Document, @"z:\123.xls");
在生成Pdf的时候要注意,有时页面设置不当,控件的大小可能会超出范围,导致报表有一部分无法打印出来,在使用AcrobatReader预览的时候,要在Print窗口,通过调整Page Scaling为None,看看右边Preview部分,有没有发生超出打印范围的情况。另外在作表格的时候要放大后看,因为经常会出现线条没有对齐或完全连接的情况,在预览的时候看不出来,但是在打印后会看到线条错位等情况。
(七)--事件
上篇随笔介绍了在ActievReport中导出报表,本篇随笔简单介绍ActiveReport中的重要事件。
1. 只触发一次的事件:
ReportStart:在报表启动时触发。该事件在DataInitialize之前,在这里可以整个报表都要用到的对象或变量作初始化,也可以设置子报表。
DataInitialize:这个事件在前面的几篇随笔中经常出现,经常在这里取数据,绑定数据源,设置报表的Fileds属性等。
ReportEnd :在报表加载完成后触发。
2. 多次触发的事件:
FetchData:在处理每一条数据时都会触发,如果是采用绑定数据源的方式,就不需要再作对Fields中每个Field的Value赋值。如果是从自定义的对象集合中提取数据,就要在这里给Fields赋值。而且,使用自定义集合的时候要自己设置事件的eArgs参数的EOF属性,该属性用来判断是否显示到了最后一条记录,如果是,就设置为true,并且直接返回。具体的代码可以参看以前的随笔。
PageStart:在报表的每页生成的时候触发,在这里作针对每个页的处理,最常见的就是显示页码。
PageEnd:在报表的每也生成完成的时候触发。
浙公网安备 33010602011771号