1

如果意图是有条件地跳过一行,有Detail.Visible = False什么区别?LayoutAction = LayoutAction.NextRecord

4

2 回答 2

1

好问题!LayoutAction属性是一种控制记录导航和页面上部分布局的方法。一般情况下,在不修改LayoutAction设置的情况下,每条记录的处理过程中都会采取三个动作(左边是LayoutAction枚举值的名称,右边是我自己的描述):

  1. PrintSection:在页面的当前位置打印当前部分的详细信息。
  2. MoveLayout:将布局移动到下一个位置,以便下一个记录将打印在下一个位置而不是当前记录的顶部。
  3. NextRecord:将记录光标/指针移动到下一条记录。同样,这样该部分的下一个实例将绑定到下一个记录。

所以通常情况下,如果您不弄乱 LayoutAction 属性,则会执行所有三个操作。LayoutAction 属性允许您阻止任何这些操作的发生。

不过坦率地说,这是从旧时代遗留下来的,用于解决非常复杂的布局场景。例如,在 VB6 的 ActiveReports-ActiveX 时代,我们使用它(连同一些非常复杂的代码)来打印数据绑定日历。由于现在可以将日历控件嵌入到报表中,并且 ActiveReports 包括许多其他复杂的布局设置 LayoutAction 几乎从未使用过。

显然,Section 的 Visible 属性只是隐藏了该部分并且不为它占用空间(因此它不会移动布局,也不会打印它)。通常 Visible 很有用 LayoutAction 不是。

于 2013-05-01T05:06:49.143 回答
0

我正在设置 LayoutAction 但它似乎不起作用。

布局动作 = 7

错误:(ActiveReport)5800:来源:报告,事件:OnFetchData,行号:564 说明:变量未定义:'LayoutAction'

Me.LayoutAction = 7

错误:(ActiveReport)5800:来源:报告,事件:OnFetchData,行号:564 说明:对象不支持此属性或方法:'Me.LayoutAction'

我在 ERP 应用程序(Agresso 5.5)中使用“嵌入”vbscript activereports 2

于 2014-06-30T08:55:30.077 回答