Appearance
为什么需要学习这个技术
在我们需要设计一些复杂的定制化的报表,会需要使用这些控件和技术,所谓的复杂定制化报表 和 普通报表的区别是什么?
普通报表
在烘焙ERP系统里面,你在软件界面里面看到表格数据和界面数据,我们都可以很容易的在报表设计器里面简单拖拉控件和设计调整属性,就使用报表打印预览来展现出来。
复杂报表
在烘焙ERP系统里面,你在软件界面里面看到表格数据和界面数据,并不是 我们需要打印在报表里面的数据,而是需要额外创建对话框,在对话框里面拖放一些可视化控件,结合使用SQL代码来处理出我们需要的数据,然后把数据打印到报表上。

我们需要写SQL代码来生成相应的数据

第36章 介绍
ReportMachine可以让你:
- 创建或修改报表
- 创建数据源用于报表生成
- 为用户创建输入报表参数的对话框
- 使用内嵌的Pascal脚本语言处理报表数据和管理对话框
设计器工具栏的按钮用于创建新对话框。
第37章 对话框窗体控件
所有对话框控件都从TRMStdControl类继承,拥有公共属性和方法。
公共属性:
| 属性 | 缺省值 | 描述 |
|---|---|---|
| Color | clBtnFace | 对象的背景颜色 |
| Enabled | True | 激活或未激活对象 |
| Font | - | 设置对象文本的字体 |
| Height | - | 设置对象的垂直高度 |
| Left | - | 设置对象的左边坐标 |
| Name | - | 设置对象可以在代码中使用的名称 |
| OnClick | - | 点击时触发,可输入Pascal代码 |
| Restrictions | - | 设置用户修改对象时的限制标志集 |
| Top | - | 设置对象的顶边坐标 |
| Visible | True | 确定对象是否在屏幕上显示 |
| Width | - | 设置对象的宽度 |
37.1 Label控件
显示静态文本,用户不能修改。
| 属性 | 缺省值 | 描述 |
|---|---|---|
| Alignment | taLeftJustify | 文本水平对齐位置 |
| AutoSize | True | 宽度是否根据文本自动调整 |
| Caption | - | 显示的文本字符 |
| WordWrap | False | 是否换行(True时AutoSize必须为False) |
37.2 Edit控件
显示并通过键盘编辑单行文本。
| 属性 | 缺省值 | 描述 |
|---|---|---|
| ReadOnly | False | 用户是否可以编辑文本 |
| Text | - | 显示的文本 |
37.3 Memo控件
显示并通过键盘编辑多行文本。
| 属性 | 缺省值 | 描述 |
|---|---|---|
| Lines | - | 文本行 |
| ReadOnly | False | 用户是否可以编辑文本 |
37.4 Button控件
命令按钮控件。
| 属性 | 缺省值 | 描述 |
|---|---|---|
| Caption | - | 按钮上显示的文本 |
| ModalResult | mrNone | 父对话框的按钮关闭方式及返回值 |
37.5 CheckBox控件
逻辑型选项按钮。
| 属性 | 缺省值 | 描述 |
|---|---|---|
| Alignment | taRightJustify | 标题的位置 |
| Caption | - | 显示的标题内容 |
| Checked | False | 选项是否被选中 |
37.6 RadioButton控件
互斥选项按钮。
| 属性 | 缺省值 | 描述 |
|---|---|---|
| Alignment | taRightJustify | 标题的位置 |
| Caption | - | 显示的标题内容 |
| Checked | False | 选项是否被选中 |
37.7 ListBox控件
项目滚动列表。
| 属性 | 缺省值 | 描述 |
|---|---|---|
| Items | - | 需要显示的单个项目 |
37.8 ComboBox控件
下拉项目滚动列表。
| 属性 | 缺省值 | 描述 |
|---|---|---|
| Items | - | 需要显示的单个项目 |
| Style | csDropDown | 显示类型 |
| Text | - | 选择的文本 |
Style属性值:
- csDropDown —— 可编辑的下拉列表
- csDropDownList —— 不可编辑的下拉列表
- csLookup —— 字符串有两部分:String1显示,String2返回
第38章 输入信息到报表中
方法一:使用变量
pascal
// OK按钮的OnClick事件
begin
TitleText := Edit1.Text;
end在报表标题的Text对象中包含[TitleText]。
方法二:直接调用
