Skip to content

以下是《报表机器开发指南》的全量在线帮助文档,涵盖从入门概念到高级开发的完整内容,供实施人员学习参考。


ReportMachine控件 在线帮助

本手册主要目的是帮助软件开发人员及实施人员了解《报表机器》控件的使用方法。因该控件经较大修改,如有与网络上流行的“FastReport”、“ReportMachine”技巧冲突之处,以本手册为准。

为了方便开发人员和提高开发效率,公司开发框架针对报表机器进行了大量二次开发。因此,在公司的软件体系下开发一般报表,若您会使用Quick Report和简单的报表机器,可直接浏览后面的《管理之星系列软件报表开发体系》;有技术难题时再回到前面查找答案。


第一篇:入门 (DELPHI开发)

如果我们不需要在DELPHI下开发(例如只是做项目落地实施),本文可以无需阅读。

第1章 绪言

本指南让您熟悉报表设计器,了解报表设计的基本概念(各种区域、数据源、二次表等),帮助您开始用ReportMachine创建报表。

如果您不熟悉报表设计器,建议参考QuickReport的帮助系统。QuickReport的大部分基本概念也适用于ReportMachine,但ReportMachine能提供更多的弹性和最终用户自定义功能。

第2章 关于ReportMachine的说明

ReportMachine是高弹性的报表设计器,用于报表的数据可从任何类型的数据源获取,包含字符列表、BDE数据库、ADO数据源(不使用BDE)、Interbase(使用IBO)、ASTA数据源、Pascal数组和记录等。

整个ReportMachine系统用Delphi的Pascal编写,不需要动态链接库,但在您的项目中占用大约400kb(Delphi 5)。若需最终用户拥有设计能力,这将在.EXE中增加大约500kb。

ReportMachine拥有非常吸引人的用户界面,使用最新的用户界面组件(如可停靠的工具栏),最终用户会非常愿意使用这个设计器,只需使用鼠标即可创建大多数报表。

ReportMachine是名副其实的快速报表——较其它Delphi报表设计器而言,没有什么可以接近它的开发速度。

第3章 ReportMachine的特点

ReportMachine的基本思想来源于Windows版的“1S-Bookkeeping”6.0——报表的基本元素是包含多行文本的矩形,这些文本既包含标准文本又包含变量,变量(像数据字段)用方括号突出显示。

主要特点:

  • 构建报表的生成器,也可在运行时使用
  • 类似于MS Word的打印预览
  • 直接编译在Delphi EXE中,不需要动态链接库
  • 支持JPEG(使用Delphi类库)和GIF(使用RX类库)
  • 拥有比QuickReport更快速的性能
  • 简洁、纯Delphi代码,比QR3有更小的设计器
  • 类似QuickReport和ReportBuild的强大的区域导向报表生成器
  • 包含许多非常有用的组件:文本、线段、图像、图形、OLE对象、格式文本、RX Rich2.0、图表、条形码、带阴影的文本
  • 报表生成的页数无限制
  • 多页报表;复合报表;子报表;分组;多栏报表;主从报表;透视表;二次开发表
  • 打印过程全控制;支持所有纸张尺寸
  • TXT、RTF(用于图形)、CSV、HTML(用于图像)输出转换器
  • 在报表预览中查找文本
  • 附加的TRMDataStorage组件允许在运行时创建数据表和查询
  • 报表生成的页面可以被修改
  • 内置的Pascal解释器可用于非常灵活的报告
  • 报表数据可保存于Delphi的DFM文件、外部文件、数据表的BLOB字段或数据流
  • 报表文件非常小,一般在1K-10K之间

第4章 创建报表(基本流程)

构建报表由下面几步构成:

image.png

4.1 数据

大多数报表从数据库中查找数据。Delphi本身提供了高效的数据库访问机制(TTable和TQuery组件),同样适用于ReportMachine。总的来说,可以使用任何一个从TDataSet组件继承的子类。

除了数据库中的数据,ReportMachine事实上可以使用任何数据源(数组、文件、字符网格等)。在这种情况下,程序必须自己控制非数据库源的存取,通过ReportMachine中的事件集允许程序传递数据到核心。

在ReportMachine中创建的数据感知控件足以与Delphi IDE中的相提并论——您在窗体上放置控件,在对象观察器中改变它的属性。

我们通过数据字典这个菜单,去定义当前报表使用什么数据源。

image.png

4.2 参数

用户可以输入参数,如数据范围、公司名称、发票编号等。

ReportMachine允许最终用户开发对话框,就像在Delphi的IDE中一样——有一组标准控件,能被拖放到对话框窗体上。ReportMachine内置语言允许使用仿Delphi脚本语言创建对话框,并输入变量到核心部分。

4.3 窗体

报表窗体描述报表的版面。为分组数据,ReportMachine使用了“区域”(Band)。有两种类型的区域:服务器型区域(报表头、页码等)和用于多行格式化数据的区域(数据区域)。数据区域联接到数据源,内容是数据源中的记录。

通过添加对话框,我们可以设计更复杂的报表。

image.png

报表开发的可视化环境——设计器——用于构建报表。设计器界面由工具栏组成,使用对象观察器可控制对象的属性,类似于Delphi中的使用方式。

下图,就是一个对话框的例子。

image.png


4.4 处理

在构建报表时处理输入的数据、报表窗体或控件的修改。例如用红色显示负数,或在分组脚中进行处理。

在ReportMachine中内置了脚本语言(类似于Pascal但更简单),用这个脚本语言编写事件处理代码。这可以创建复杂的处理而无需在Delphi中编写代码,因而不需要为项目联接一个报表。

在脚本中可使用所有对报表有用的属性和方法,以及变量和数据字段,也可创建变量和数组。

4.5 准备报表

准备报表是激活ReportMachine的核心处理并在点击“预览”按钮后进行预览的过程。

与大多数报表生成器不同(它们的报表页面内容保存在图元文件中),在ReportMachine中准备好的报表是一组对象的集合,描述报表处理后各页面所包含的内容。这允许修改生成的报表页面。

ReportMachine预览文档类似于Microsoft Word:在一个窗口中可立即看到多个页面,并可在整个报表页面中查找文本。

第5章 举例:设计一个简单报表

如果你在DELPHI开发环境下,使用ReportMachine构建一个简单报表:

  1. 在一个窗体上放置三个控件:TTable(或TQuery)、TRMDBDataSet和TRMReport
  2. 联接TTable控件到一个数据库(设置DatabaseName和TableName属性)
  3. 打开报表设计器(双击TRMReport控件)
  4. 点击工具栏上的“插入数据字段”按钮
  5. 在对话框中选择所需字段并按“确认”键

报表现在包含所选的所有字段,可自动生成报表模板,也可包括图像、标题或页脚、页码等。

要运行报表,按工具栏的“预览”按钮。ReportMachine构建报表并在预览窗口中显示内容。


我们只需要学会使用这个报表设计环境

下图是一个标准化的报表设计器环境,除非你脱离了安仕达ERP软件的框架单独去开发报表,否则,你不需要额外在代码里面去拖放报表机器控件,单独去写打印实现的代码,直接调用标准化打印服务即可,然后在报表里面去绑定当前的窗口对象和窗口数据集合。

image.png