Appearance
非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。数据源的记录将被默认报表主数据带打印 |
| GrayedButtons | False | 若为True,设计器和预览窗口的工具栏显示为灰色 |
| InitialZoom | pzDefault | 定义预览的初始缩放值 |
| MDIPreview | False | 显示预览窗口为一个MDI子窗口 |
| ModalPreview | True | 若为True,预览窗口为模式方式 |
| ModifyPrepared | True | 若为True,在预览窗口中双击页面可修改准备好的报表 |
| Preview | - | 连接到一个TRMPreview |
| PreviewButtons | All | 定义预览窗口中可用的按钮集 |
| ReportType | RtSimple | 定义怎样解释数据源。若为rtMultiple,报表在打印主数据带时强制从头开始打印 |
| ShowProgress | True | 若为True,准备、打印或输出报表时显示过度窗口 |
| StoreInDFM | False | 若为True,存储报表在DFM文件中(报表存入EXE中不能被修改) |
| Title | - | 报表标题,显示在预览窗口和打印任务列表中 |
注意:TRMReport.StoreInDFM属性缺省为False,意思是报表必须存入可执行文件或转换到数据库的BLOB或二进制字段中。若想保存报表到DFM资源,设置此属性为True,但任何报表被修改时都必须重新编译应用程序。
7.2 TRMReport事件
| 事件 | 描述 |
|---|---|
| OnBeforePrint | 打印报表之前被激活 |
| OnBeginBand | 打印一个区域前被激活 |
| OnBeginColumn | 打印透视表栏前被激活 |
| OnBeginDoc | 打印一个报表前被激活 |
| OnBeginPage | 开始打印一个页面时被激活 |
| OnEndBand | 打印一个区域结束后被激活 |
| OnEndDoc | 结束一个报表的打印时被激活 |
| OnEndPage | 结束一个页面的打印时被激活 |
| OnGetValue | ReportMachine在表达式中查找不明变量时被激活 |
| OnManualBuild | 允许手工构建报表(用代码显示需要的区域) |
| OnMouseOverObject | 预览窗口中鼠标移到某个对象时被激活 |
| OnObjectClick | 预览窗口中点击某个对象时被激活 |
| OnPrintColumn | 打印透视表栏前被激活,可返回栏宽 |
| OnProgress | 长时间运行中被激活,可显示工作进度 |
| OnUserFunction | ReportMachine在表达式中查找不明函数时被激活 |
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 | 必须指定前一记录的指针 |
