彩票走势图

FastReport报表示例:打印可变栏数或未知栏数的报表

原创|其它|编辑:郝浩|2012-11-06 15:57:19.000|阅读 537 次

概述:实际应用中常常需要打印一个不确定栏数的分栏报表或栏数在执行阶段会改变。例如在开发一个可能需要打印一个数据表数据的数据库编辑器中就需要它。这种情况报表只能使用程序代码创建,但FastReport提供了一种更简单的方法来解决这个难题。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

实际应用中常常需要打印一个不确定栏数的分栏报表或栏数在执行阶段会改变。例如在开发一个可能需要打印一个数据表数据的数据库编辑器中就需要它。这种情况报表只能使用程序代码创建,但提供了一种更简单的方法来解决这个难题。

就是使用交叉表来达到这个目的。这种报表的与众不同的特点就是在栏中打印数据。在此之前不需要知道分栏数。特别是这种类型的报表交叉部分是垂直放置,而不是水平的。这些区域的“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的所有记录将被预览。下面就是预览看到的图象:


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
FastReport VCL

用于快速高效地生成报表的附加组件

FASTREPORT SERVER

FastReport Server是一个全方位的公司报表解决方案,它包括所有创建和提供报表的必要工具。

FASTREPORT for COM/ActiveX

FastReport Studio是一款功能强大的报表设计方案并包含众多报表事例的控件。

FastReport .Net

一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案。

FastReport FMX

报表生成器FastReport FMX 是第一个支持苹果Mac OC X 和Microsoft Windows的跨平台报表生成器,并且它与Embarcadero公司的RAD Studio XE2 (FMX库)兼容。

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP