报表生成器FastReport .Net用户指南:报告中的动态布局属性

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。

在创建报告时,经常需要打印一个尺寸未知的文本在这种情况下,需要解决以下任务:

  • 计算对象的高度,使其适合于整个文本;
  • 计算带子的高度,使其适合于带有可变数量文本的对象;
  • 移动或改变其他对象的高度,这样它们就不会干扰报告的总体设计。

这些任务可以通过使用一些对象和条带属性来解决:

  • "CanGrow "和 "CanShrink "属性允许自动计算对象的高度;
  • "ShiftMode "属性允许移动位于扩张的对象下面的对象;
  • "GrowToBottom "属性允许将一个物体的大小调整到带子的底部边缘;
  • "Anchor "和 "Dock "属性允许根据带子的大小来控制对象的大小。

所有这些属性都将在下面讨论(qun:585577353)

可增长、可收缩的属性

每个带子和报告对象都有这些属性。它们决定了一个对象是否可以根据其内容的大小而增长或缩小。如果这两个属性都被禁用,对象就只具有指定的尺寸。

如果需要打印一个在设计时未定尺寸的文本,这些属性就非常有用。为了让一个对象能够容纳整个文本,它需要启用 "CanGrow "和 "CanShrink":

1

以下对象可以影响一个带子的高度:

  • "Text";
  • "Rich Text";
  • "Picture" (以及能正确使用的 "AutoSize");
  • "Table".
ShiftMode属性

每个报告对象都有这个属性。这个属性只能在 "Properties "窗口中访问。一个对象,其 "ShiftMode "属性被启用,如果上面的对象可以增长或缩小,将被向上或向下移动。

扫描二维码关注公众号,回复: 16241286 查看本文章

1

“ShiftMode "属性可以有以下值:

  • 始终(默认)。表明该对象需要一直移位。
  • 从不。表明该对象不需要移位。
  • WhenOverlapped.表明在这种情况下,如果展开的对象正好位于它的上方(也就是说,两个对象在水平方向上重叠),对象需要移动。

这个属性在打印表格中的信息时很方便,表格的几个单元格位于彼此的上面,并且可以有不同数量的文本。

GrowToBottom属性

每个报告对象都有这个属性。当打印具有此属性的对象时,它最多可拉伸到一个带子的底部边缘:

1

在打印表格中的信息时,在一个表格行中,可能有几个对象可以拉伸。这个属性可以将所有对象的高度设置为带子的最大高度。

锚定属性

每个报告对象都有这个属性。它决定了当它所在的容器改变其大小时,该对象将如何改变其位置和/或其大小。通过使用Anchor,对象的扩展或移动可以与它的容器同步。

在许多情况下,被提及的容器是一个带子。但这并不是必须的--它也可以是 "Table "或 "Matrix "对象。

“Anchor"属性可以有以下值之一,也可以是它们的任何组合:

Value Description
Left 锚定对象的左边缘。当容器的大小发生变化时,对象不会向左/右移动。
Top 锚定对象的顶部边缘。当容器的高度被改变时,对象不会向上/向下移动。
Right 锚定对象的右边缘。当容器的宽度变化时,对象的右边缘和容器之间的距离是恒定的。如果容器的左边缘也被锚定,那么对象将与容器同步增长和收缩。
Bottom A锚定对象的底边。当容器的高度变化时,物体的底边和容器之间的距离是恒定的。如果对象的顶部边缘也被锚定,对象将与容器同步增长和收缩。

默认情况下,这个属性的值是左、顶部。表明当容器的尺寸发生变化时,该对象不会发生变化。在下面的表格中,给出了一些经常使用的值的组合:

Value Description
Left, Top 默认值。当容器的大小改变时,该对象不会改变。
Left, Bottom 当容器的高度发生变化时,物体会向上/向下移动。物体相对于容器底边的位置没有变化。
Left, Top, Bottom 当容器的高度变化时,对象的高度也随之同步变化。
Left, Top, Right, Bottom 当容器的宽度和高度发生变化时,对象也随之同步增长或缩小。
Dock 属性

每个报告对象都有这个属性。这个属性决定了该对象将停靠在容器的哪一侧。

”Dock "属性可能是以下值:

Value Description
None 默认值。该对象没有被停靠。
Left 该对象被停靠在容器的左边缘。对象的高度将等于容器的高度*。
Top 该对象被停靠在容器的顶部边缘。对象的宽度将等于容器的宽度*。
Right 该对象被停靠在容器的右边缘。对象的高度将等于容器的高度*。
Bottom 该对象被停靠在容器的下边缘。对象的宽度将等于容器的宽度*。
Fill 该物体占据了容器的所有自由空间。
  • 如果几个对象同时被停靠,情况就不一样了。下图显示了两个对象,第一个对象被停靠在容器的顶部边缘,第二个对象被停靠在左侧:

1

正如所见,第二个物体的高度等于自由空间的高度,这是与第一个物体对接后留下的。

The docking behavior depends on the object's creation order. You can change the order in the context menu of an object. To do this, select either the "Bring to front" or "Send to back" menu items.

猜你喜欢

转载自blog.csdn.net/m0_67129275/article/details/132337957