FastReport .Net 功能实现——每条数据重复显示

FastReport .Net 功能实现——每条数据重复显示

在程序的使用过程中,我们可能会遇到这样的需求:
两条数据记录:A和B,希望A可以打印2次,B可以打印3次。
当然,我们有一个固定的字段用来表示这条数据需要打印几次。
那么我们应该怎么去实现这个需求呢?

方法1,直接处理数据:

要知道,FastReport的数据区 显示多少数据 都是 数据源 决定的,那么我们就可以在数据传入报表之前,提前处理好这些数据,让这些数据根据要打印的次数进行重复,就可以直接实现这个需求。

处理前我们的数据是这样的:

数据重复次数
A2
B3

处理之后我们的数据是这样的:

数据重复次数
A2
A2
B3
B3
B3

我们将处理后的数据传入报表,就可以实现所谓的“重复显示”了。

方法2,通过代码修改数据区的重复次数属性:

随着对FastReport的深入了解,我发现了数据区有一个属性:RepeatBandNTimes,这个属性指示了数据区的重复次数,但是在设计器上只能是一个固定的数字。

我就考虑,是否可以通过代码脚本的方式对这个属性的值进行修改,以实现每行数据重复不同的次数呢?

说干就干,绑定数据区的BeforePrint事件,并写入以下代码:

private void Data1_BeforePrint(object sender, EventArgs e)
{
  TableDataSource tds = (TableDataSource)this.Report.GetDataSource("Dt1");
  DataRow currentRow = tds.CurrentRow as DataRow;
  Data1.RepeatBandNTimes = (int)currentRow["repeatCount"];
}

其中,Dt1 是数据表的名称,repeatCount 是重复次数所在的列名。

预览后得到了预期的报表结果,此方法可行。

方法3,通过代码加载表格控件的数据:

首先说明,此方法需要对 FastReport 的底层原理有一定的了解,至少要读懂 DemoRow Datasource 加载数据的原理

直接在该 Demo 下进行修改代码:

private void Table1_ManualBuild(object sender, EventArgs e)
{
  // get the data source by its name
  DataSourceBase rowData = Report.GetDataSource("Products");
  // init the data source
  rowData.Init();
  
  // print the first table row - it is a header
  Table1.PrintRow(0);
  // each PrintRow call must be followed by either PrintColumn or PrintColumns call
  // to print cells on the row
  Table1.PrintColumns();
      
  // 用于记录数据行打印次数
  int printTimes = 0;
  // now enumerate the data source and print the table body
  while (rowData.HasMoreRows)
  {
    // print the table body  
    Table1.PrintRow(1);
    Table1.PrintColumns();  
    // 数据行打印次数 +1
    printTimes ++;       
    // 如果没有到重复的次数,不进入下一个数据行,继续打印当前数据行
    if (Convert.ToInt32((rowData.CurrentRow as DataRow)["CategoryID"]) > printTimes)
    {
      continue;
    }      
    // go next data source row
    rowData.Next();
    // 重置数据行打印次数
    printTimes = 0;
  }
    
  // print the last table row - it is a footer
  Table1.PrintRow(2);
  Table1.PrintColumns();
}

预览,对 Demo 魔改成功,实现了根据 CategoryID 列的数值进行重复打印的想法。

总结

以上三种方法中,建议使用 方法1 的方式实现重复打印的需求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
这个指南让你熟悉报表设计器和了解报表设计的基本概念(各种区域,数据源,二次表,等等)。指南将帮助你开始用FastReport创建报表,但它不能告诉你怎样使用其它基本的报表设计器。 如果你不熟悉报表设计器,我们建议你参考QuickReport的帮助系统。QuickReport的指南已经包含在你的Delphi拷贝中。QuickReport的大部分基本概念也适用于FastReport,然而,FastReport能提供更多的弹性和最终用户的自定义。 关于FastReport的说明 FastReport是高弹性的报表设计器,用于报表数据可以从任何类型的数据源获取,包含字符列表,BDE数据库,ADO数据源(不使用BDE),Interbase(使用IBO),Pascal数组和记录,以及一些不常用的数据源。 整个FastReport系统是用Delphi的Pascal编写的。FastReport不需要动态链接库,但需在你的项目中占用大约400kb(Delphi 5)。如果你想最终用户拥有设计能力,这将在你的.EXE中增加大约500kb。虽然这看上去比较大,但这只是其它设计的几分之一。你同样应该考虑到FastReport不仅仅只是包含最终用户更改报表设计的能力,还能够适应查询和数据库的变化。FastReport还包含自己的脚本语言,让应用程序和最终用户能够更容易地改变报表。如果你的大部分应用使用FastReport,你可以简单地配置FastReport BPL(大约1400kb)而所有你的应用程序只需要保留很少的一部分。 你可以发现FastReport有一个非常吸引人的用户界面,使用最新的用户界面组件,例如可停靠的工具栏。你的最终用户将会非常愿意使用这个设计器,只需使用鼠标就可以创建大多数报表FastReport是名副其实的快速报表:较其它一些Delphi报表设计器而言,你可以发现没有什么可以接近于它的开发速度。报表预览窗口一直是大多数报表设计器的弱点,高品质的外观,赋于你的应用程序非常专业的用户界面。 FastReport是一个已经拥有三年历史的非常成熟的报表设计器,成长使它拥有其它Delphi报表设计器所不能相比的诸多先进特性。
### 回答1: FastReport.Net 4.0 是一款功能强大的报表生成工具,适用于 .Net 平台。它提供了丰富的报表设计功能和灵活的数据源支持,让开发人员能够快速轻松地生成各种复杂的报表。 首先,FastReport.Net 4.0 具备强大的报表设计功能。它提供了丰富的报表元素和控件,包括文本框、图像、表格、图表等。用户可以通过直观的拖放操作,将这些报表元素添加到报表中,并设置其属性和样式。同时,还可以对这些元素进行排列和布局,以满足各种不同的报表需求。此外,FastReport.Net 4.0 还支持自定义报表模板,用户可以根据特定的需求,设计出符合自己品牌形象和要求的报表模板。 其次,FastReport.Net 4.0 支持多种数据源。用户可以从各种数据源中获取数据,如数据库、XML 文件等。FastReport.Net 4.0 提供了内置的数据源控件和设计器,使用户能够方便地连接到数据源,并使用 SQL 查询语言或 LINQ 进行数据查询。同时,FastReport.Net 4.0 还支持数据过滤和排序,以及数据分组和汇总等高级数据处理功能,使用户能够更好地充分利用数据,生成更加准确和有用的报表。 最后,FastReport.Net 4.0 提供了多种报表输出格式的支持。用户可以将报表输出为 PDF、Excel、HTML、图片等多种格式,以方便地进行分享和传播。同时,FastReport.Net 4.0 还支持打印和预览功能,用户可以在设计和生成报表后,直接对其进行打印和预览,以确保报表的质量和准确性。 综上所述,FastReport.Net 4.0 是一款功能强大、易于使用的报表生成工具,它具备丰富的报表设计功能、灵活的数据源支持以及多种输出格式的选择。无论是企业还是个人,都可以通过 FastReport.Net 4.0 快速轻松地生成各种复杂的报表,提高工作效率和数据分析能力。 ### 回答2: FastReport.Net 4.0是一款.NET平台上的报表生成工具。它为开发人员提供了在应用程序中创建和生成定制化报表功能FastReport.Net 4.0具有以下主要特点: 1.报表设计器:FastReport.Net 4.0提供了一个直观易用的报表设计器,开发人员可以使用设计器来创建报表模板,设计报表布局、添加数据源和字段。 2.数据源支持:FastReport.Net 4.0支持多种数据源,包括数据库、XML文件和对象集合等。开发人员可以轻松地将数据源与报表模板进行关联,并获取、处理和显示数据。 3.报表输出:FastReport.Net 4.0支持多种报表输出格式,包括PDF、Excel、HTML、Word和图像等。开发人员可以根据需求选择合适的输出格式,方便地将报表导出到不同的目标。 4.报表展示:FastReport.Net 4.0提供了详细的报表展示功能,可以在应用程序中显示和打印报表。开发人员可以自定义报表的展示方式和样式,以满足不同用户的需求。 5.数据处理:FastReport.Net 4.0提供了丰富的数据处理功能,开发人员可以对报表中的数据进行排序、过滤、分组和汇总等操作。这样可以从海量数据中提取需要的信息,并按照不同的维度进行分析。 综上所述,FastReport.Net 4.0是一款功能强大、易用灵活的报表生成工具,适用于.NET开发人员在应用程序中生成、展示和处理报表。它可以大幅提高开发人员的工作效率,同时满足不同用户对报表展示和数据处理的需求。 ### 回答3: FastReport.Net 4.0 是用于开发和设计报表的一个功能强大的工具。它提供了丰富的报表设计功能,可以与 .Net 平台完美集成。 FastReport.Net 4.0 支持多种数据源,包括数据库、XML 文件、JSON 数据和对象集合等。它可以轻松连接到不同类型的数据库,如 SQL Server、Oracle、MySQL 等,并且可以执行复杂的查询操作。它还支持与 LINQ 查询和 Entity Framework 的集成,方便了数据的筛选和排序。 FastReport.Net 4.0 提供了一套丰富的报表控件,如表格、图表、文本框、图片等。用户可以根据自己的需要进行布局和设计,实现复杂的报表展示效果。同时,它还支持报表的分页和分组,可以对数据进行更详细的分类和汇总。 FastReport.Net 4.0 还提供了强大的计算和数据处理功能。用户可以使用内置的函数和表达式进行数据计算和条件判断,支持各种数学运算、字符串操作和逻辑运算。此外,用户还可以自定义函数和变量,以满足特定的业务需求。 FastReport.Net 4.0 的设计界面简单直观,用户可以快速上手使用。它提供了丰富的报表设计器工具,包括对齐、调整大小、层叠排列等功能。用户可以通过拖拽控件和设置属性来设计自己的报表,实时预览效果。 总之,FastReport.Net 4.0 是一个功能强大、易于使用的报表工具,能够帮助开发人员快速设计和生成各种复杂的报表。无论是企业的经营报表、统计报表还是个人的数据分析报告,FastReport.Net 4.0 都能够满足需求,并提供高质量的输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腐骨穿心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值