Skip to content

非DELPHI开发人员,本文无需学习。这里的 内核 指的是 —— 这些控件都是在 DELPHI开发环境下才可见,在设计器环境下是看不到的。

第6章 Delphi控件面板

安装ReportMachine后,在Delphi控件面板中增加两页:“ReportMachine”页和“FRTools”页。

6.1 “ReportMachine”页

名称描述
TRMReport主要的报表生成控件。用于编辑报表,设计时双击打开报表设计器窗口。所有报表都必需
TRMCompositeReport复合报表控件。用于在单个报表中联合多个TRMReport对象
TRMDBDataSet为报表提供数据源连接。数据源可以是TTable或TDataSource。报表中的每个数据区域必须有一个此控件的实例
TRMUserDataSet为报表提供数据源。与TRMDBDataSet不同,您必须通过事件提供数据项目。允许打印数组、字符网格或文本文件
TRMOLEObject附加的ReportMachine对象(OLE)
TRMRichObject附加的ReportMachine对象(RichText)
TRMCheckBoxObject附加的ReportMachine对象(CheckBox)
TRMShapeObject附加的ReportMachine对象(Shape)
TRMBarcodeObject附加的ReportMachine对象(Barcode)
TRMChartObject附加的ReportMachine对象(Chart)
TRMRoundRectObject附加的ReportMachine对象(RoundRect)
TRMTextExport输出转换器——Text格式
TRMRTFExport输出转换器——RTF格式
TRMCSVExport输出转换器——CSV格式
TRMHTMExport输出转换器——HTML格式
TRMDesigner最终用户、运行期间的报表设计器
TRMDataStorage允许最终用户创建表和查询(已淘汰,用TRMDialogControls和TRMBDEComponents替代)
TRMPreview创建自己的预览窗口时使用
TRMPrintTable直接打印表和查询的内容
TRMPrintGrid直接打印TDBGrid所包含的内容
TRMDialogControls包含一组对话框控件,用于在运行时创建对话框
TRMBDEComponents包含一组数据库存取对象(TTable、TQuery、TDataBase)

6.2 “FRTools”页

名称描述
TRMSpeedButton增强的TSpeedButton,拥有“浮动”外观
TRMDock用于创建停靠工具栏
TRMToolBar模拟MS Office工具栏的工具栏控件
TRMTBButton工具栏按钮
TRMTBSeparator工具栏隔离带
TRMTBPanel包含其它Delphi控件的工具栏区域
TRMOpenDBDialog“打开数据表”对话框
TRMComboBox浮动TComboBox
TRMFontComboBox包含已安装字体列表的浮动TComboBox
TRMComboEdit右边有自定义按钮的编辑框

第7章 TRMReport控件详解

这是ReportMachine的主控件,包含调入、保存、预览和打印报表的方法。每个TRMReport控件只能包含一个单独报表。

7.1 TRMReport属性

属性缺省值描述
DataSet-联接到一个TRMxxxDataSet。数据源的记录将被默认报表主数据带打印
GrayedButtonsFalse若为True,设计器和预览窗口的工具栏显示为灰色
InitialZoompzDefault定义预览的初始缩放值
MDIPreviewFalse显示预览窗口为一个MDI子窗口
ModalPreviewTrue若为True,预览窗口为模式方式
ModifyPreparedTrue若为True,在预览窗口中双击页面可修改准备好的报表
Preview-连接到一个TRMPreview
PreviewButtonsAll定义预览窗口中可用的按钮集
ReportTypeRtSimple定义怎样解释数据源。若为rtMultiple,报表在打印主数据带时强制从头开始打印
ShowProgressTrue若为True,准备、打印或输出报表时显示过度窗口
StoreInDFMFalse若为True,存储报表在DFM文件中(报表存入EXE中不能被修改)
Title-报表标题,显示在预览窗口和打印任务列表中

注意:TRMReport.StoreInDFM属性缺省为False,意思是报表必须存入可执行文件或转换到数据库的BLOB或二进制字段中。若想保存报表到DFM资源,设置此属性为True,但任何报表被修改时都必须重新编译应用程序。

7.2 TRMReport事件

事件描述
OnBeforePrint打印报表之前被激活
OnBeginBand打印一个区域前被激活
OnBeginColumn打印透视表栏前被激活
OnBeginDoc打印一个报表前被激活
OnBeginPage开始打印一个页面时被激活
OnEndBand打印一个区域结束后被激活
OnEndDoc结束一个报表的打印时被激活
OnEndPage结束一个页面的打印时被激活
OnGetValueReportMachine在表达式中查找不明变量时被激活
OnManualBuild允许手工构建报表(用代码显示需要的区域)
OnMouseOverObject预览窗口中鼠标移到某个对象时被激活
OnObjectClick预览窗口中点击某个对象时被激活
OnPrintColumn打印透视表栏前被激活,可返回栏宽
OnProgress长时间运行中被激活,可显示工作进度
OnUserFunctionReportMachine在表达式中查找不明函数时被激活

7.3 TRMReport基本方法

方法描述
LoadFromFile, LoadFromStream, LoadFromBlobField从外部文件、流或BLOB字段中调入报表
SaveToFile, SaveToStream, SaveToBlobField保存报表到外部文件、流或BLOB字段
DesignReport运行报表设计器
ShowReport构建报表并在预览窗口中显示
PrepareReport构建报表而不预览
LoadPreparedReport从外部文件中调用以前准备好的报表(.FRP文件)
SavePreparedReport保存准备好的报表到外部文件
ShowPreparedReport显示一个准备好的报表
PrintPreparedReport打印一个准备好的报表
PrintPreparedReportDlg打印前显示打印对话框
ExportTo使用输出转换器输出一个准备好的报表

第8章 TRMDBDataSet控件

非可视控件,用于使用First、Next和Prior方法遍历整个数据源。类似于ReportBuilder的TppBDEPipeline控件,但只能用导航而不能提供字段数据给报表。

属性描述
CloseDataSource报表构建后关闭相关数据源
DataSet一个像TTable或TQuery的数据集
OpenDataSource构建报表前打开数据源
RangeBegin数据集中的首记录(rbFirst从首记录开始;rbCurrent从当前记录开始)
RangeEnd数据集中的末记录(reLast在末记录停止;reCurrent在当前记录停止;reCount在N条记录后停止)

这个控件的DataSet属性连接到一个像Ttable或Tquery这样的TdataSet控件(可以理解为特定数据集合TDataset的代理)。设置OpenDataSource和CloseDataSource为True,用于自动打开或关闭相关数据集。

RangeBegin和RangeEnd用于设置记录范围。

RangeBegin可以接受下列值:

l rbFirst——从首记录开始选择记录;

l rbCurrent——从当前记录开始选择记录。

RangeEnd可以接受下列值:

l reLast——在末记录停止记录选择;

l recurrent——当你开始报表时在当前记录处停止记录选择;

l recount——在选择N条记录后停止。记录选择数保存在RangeEndCount属性中。

第9章 TRMUserDataSet控件

同样用于导航数据,但用于数据结构(如数组、字符网格、外部文件等)作为数据来源。(可以理解为对非标准数据,我们模拟出一个数据集合用来支持打印)

事件描述
OnCheckEOF监视EOF布尔值参数,设为True停止导航
OnFirst必须指定首记录指针
OnNext必须指定下一记录的指针
OnPrior必须指定前一记录的指针