FastReport.Net v2016.6 FastScript安装 安装 VCL mvc FastReport.Net 报表 FastReport.Net v2016.2 TeeChart,图表开发 FastReport FMX 2.3 FastReport.Net v2016.1 FastReport.Net更新 FastCube VCL v2.5 FastReport VCL FastReport Online Designer教程 FastReport Online Designer组件 FastReport在线报表设计器:组件简介 FastReport在线报表设计器:界面结构简介 FastReport在线报表设计器:工作原理 FastReport Online Designer简介 FastReport Online Designer促销 FastReport Online Designer FastReport.Net授权促销 数据库查询构建 使用技巧 fastreport,报表 脚本引擎 FastScript FastScript, 脚本引擎 OLAP控件
作者:zhuhm 来源:本站原创 浏览:Loading... 日期:2012-11-06
实际应用中常常需要打印一个不确定栏数的分栏报表或栏数在执行阶段会改变。例如在开发一个可能需要打印一个数据表数据的数据库编辑器中就需要它。这种情况报表只能使用程序代码创建,但FastReport提供了一种更简单的方法来解决这个难题。
就是使用交叉表来达到这个目的。这种报表的与众不同的特点就是在栏中打印数据。在此之前不需要知道分栏数。特别是这种类型的报表交叉部分是垂直放置,而不是水平的。这些区域的“Text”对象被放在水平(例如“主项数据”)和垂直(例如“交叉表”)区域的交叉点上。这种情况报表通过下面的原理创建:对水平区域数据源中的所有记录全部被正确从垂直区域数据源的记录中查找并指定。
因而,对于“主项数据”打印数据源数据表的内容时包含的是数据表自身,各个单独记录的字段列表是“交叉表”区域的数据源。
一个交叉表报表的简单例子可以从PRNTBL1子目录中找到。从这个例子中看到的报表在这个图象中显示。
这个图象显示“Text”对象放置在“主项数据”和“交叉表”区域的交叉点上,分别属于“主项数据”和“交叉表”区域。如果报表使用CUSTOMER.DB中的记录,就将它作为“主项数据”的数据源。报表中的栏目数由两个TfrUserDataset虚拟数据源,将CUSTOMER.DB的字段数与“记录”数连接。字段的值在TfrReport 对象的OnGetValue事件中设定:
procedure TForm1.frReport1GetValue(const ParName: String; var ParValue: Variant);
begin
if ParName = 'Cell' then
ParValue := Table1.Fields[frUserDataset1.RecNo].Value;
if ParName = 'Header' then
ParValue := Table1.Fields[frUserDataset2.RecNo].FieldName;
end;
当这个例子执行时,CUSTOMER.DB的所有记录将被预览。下面就是预览看到的图象:
慧都科技旗下网站-FastReport中文网版权所有 Copyright 2012
FastReport,报表控件,FastReport报表,VCL报表,.NET报表,COM/ActiveX报表,OLAP控件,联机分析处理