1..动态布局
在创建报表时可能经常会遇到不知道具体文本大小的情况。例如,产品的描述。这种情况下,可通过以下方法来解决:
- 计算对象的高度使其可以包住整个文本;
- 计算band的高度,使其可以包住文本数量可变的对象;
- 移除或修改包含在同一band中其它对象的高度,而不影响报表的整体设计。
该解决方法通过以下属性完成:
- "CanGrow"和"CanShrink"属性自动计算对象的高度;
- "ShiftMode"属性移除位于扩展对象下面的对象;
- "GrowToBottom"属性将对象调整到band的底部边缘;
- "Anchor"和"Dock" 属性根据band的大小控制其对象的大小。
下面将逐个介绍每个属性。
1.1.CanGrow和CanShrink 属性
所有的band和报表对象都具有该属性。这两个属性在不知道文本大小的情况下设计文本时是非常有用的,若禁用该属性,对象将永远保持在设计器中指定的大小,当启用该属性后,根据实际的文本内容自动调整对象的大小。效果如下图所示:


能影响band高度的对象有以下几个:
- "Text";
- "Rich Text";
- "Picture" ("AutoSize"属性已启用);
- "Table".
1.2.ShiftMode属性
每一个报表对象都具有这个属性。此属性仅可在“Properties”窗口访问。当“ShiftMode”属性被启用,该对象将上可以下移动。

"ShiftMode"属性值有以下几种:
- Always (默认)
- Never
- WhenOverlapped
这个属性在打印具有文本信息的表时非常方便。
1.3.GrowToBottom属性
每一个报表对象都具有该属性。当打印启用此属性的对象时,它将会延伸到band的底边缘,如下图所示:
这在打印在表格形式的信息时是非常有必要的,可以将所有对象的高度设置到band的最大高度。
1.4.Anchor属性
每一个报表对象都具该属性。通过使用锚,对象根据其容器进行同步扩展或移动。在“Table”和“Matrix”对象中很常用。“Anchor”属性值有以下几种,并且它们可以任意组合:
- Left
- Top
- Right
- Bottom
该属性的默认值是Left, Top-当容器的大小被改变而对象将不会随之改变。
1.5. Dock属性
每个报表对象都具有该属性。此属性确定容器中的对象将扩充在哪一边。
“Dock”属性有以下几种值:
None(默认值) | 对象不扩充 |
Left | 扩充在容器的左边,其高度与容器高度一致 |
Top | 扩充在容器的上边,其宽度与容器宽度一致 |
Right | 扩充在容器的右边,其高度与容器高度一致 |
Bottom | 扩充在容器的下边,其宽度与容器宽度一致 |
Fill | 扩充在容器的所有自由空间 |

扩充行为取决于对象的创建顺序,可在对象的上下文菜单中选择"Bring to front"或"Send to back"修改其顺序。
2.Formatting 格式
修改数据外观和格式的工具。
2.1.边框和填充
FastReport的大多数对象都可以有框架和填充。

你可以使用"Home"选项卡中的"Borders"工具栏来给组件添加边框,每个边框的颜色、宽度和样式都可在属性窗口单独设置。

2.2.文本格式
位于"Home"选项卡中的"Font"和"Alignment"工具栏:

在这里你可以:选择和自定义字体,垂直或水平更改组件中文本的位置(左,右,中),设置文本颜色。
2.3.数据格式
文本组件显示存储在数据源中的数据格式,但它并不总是很方便,例如包含时间的日期,若只需显示日期部分还得重新读取数据的格式。在FastReport Online Designer中可以通过使用系统函数String.Format来完成。
2.4.隐藏数值
"Text"对象具有"HideZeros" 属性。
Total elements: [CountOfElements]
如果CountOfElements变量的值为0,HideZeros属性则设置为true,该对象将打印结果如下:
Total elements:
"Text"对象的" HideValue"属性也可用于隐藏给定表达式的值,如:
Total elements: [CountOfElements]
若CountOfElements为空,且NullValue属性设置为--,那么该对象的打印结果将如下:
Total elements: --
"Text"对象具有控制重复值打印的"Duplicates"属性。该属性用在"Data" band中的"Text"对象。
"Duplicates"属性有以下几种值:
- Show-显示重复值(默认)
- Hide-隐藏重复值对象
- Clear-显示对象,但清除其文本
- Merge-使用相同的值合并多个对象
这些模式之间的差别如下图所示:

3.子报表
通常在开发复杂的报表时结构变得非常混乱,为防止进一步的开发。在这种情况下,可以适当的使用"Subreport"组件。通过将"Subreport"组件拖入"data" band,从而得到一个新的报表,在这里我们可以专心开发报告的其中一部分而不必受主报表结构的影响。
"Subreport"组件如下:

带有子报表的报表创建方法如下:
- 先打印主报表band,直到"Subreport"组件出现
- 打印子报表band
- 继续打印主报表
>>立即在线体验FastReport Online Designer
为了回馈新老客户,FastReport Online Designer现在6.5折抄底促销!现在购买只需: ¥1940
如有任何疑问请咨询"在线客服"。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/1258.html