事件
目前所讲都是在主过程中处理的脚本,这些脚本在报表开始运行时被执行。在主过程中,可以执行任选初始化设置,初始化变量。然后想在报表的整个处理过程中都能控制,仅仅一个主过程还远远不能满足需求。出于此原因,每个报表对象都带了几个事件,在脚本中可以给对象赋值事件句柄。例如在数据栏的事件中可以对记录进行过滤(根据指定条件显示或隐藏栏)。
下面是一个带事件的报表示例,在这个简单的示例中包含一个主数据栏及两个文本对象:
报表运行时首先执行主过程,然后是构建报表的相关过程。在构建报表过程中,首先访问“Report”对象的“OnStartReport”事件。在报表页面生成前,页面的“OnBeforePrint”将被执行。对于报表模板设计的页面,这些事件将被执行一次。在示例中,报表仅只有一页,事件也只被访问一次。
输出数据栏时,遵循下列顺序:
- 执行数据栏的“OnBeforePrint”事件;
- 执行数据栏中所有对象的“OnBeforePrint”事件;
- 所有对象填充数据(在示例中,填充“Company”和“Addr1”字段