打印表单

表单部件中引入了表单及其类型。当前页概述如何显示打印表单。

打印过程

打印是一个两步骤过程:
  • 首先,您编写 print 语句,每个语句都向运行时缓冲区中添加一个表单
  • 接着,EGL 运行时添加开始新页所需的符号、将所有缓存表单发送至打印设备并擦除缓冲区内容。那些服务是作为对下列任何情况的响应而提供的:
    • 程序对去往同一打印设备的打印表单运行 close 语句;或者
    • 程序处于分段方式(如分段中所述)并运行 converse 语句;或者
    • 程序已被非 EGL 程序(并且是非 VisualAge Generator 程序)调用,并且被调用程序结束;或者
    • 运行单元中的主程序结束
对于多表单输出,必须按照所需的表单显示顺序来调用 print 语句。请参照以下示例:
  • 在输出的顶部,一个固定表单标识了采购公司和订单号
  • 在后续的浮动区域中,一系列格式完全相同的浮动表单标识了公司订单中的每件商品
  • 在输出的底部,一个固定表单指示了浏览整个商品列表所需的屏幕数或页数
可以通过提交一系列全都对打印表单执行操作的 print 语句来得到该输出。那些语句按照以下顺序引用表单:
  1. 顶部表单
  2. 浮动表单,由一个循环中重复调用的 print 语句显示
  3. 底部表单

在各种情况下,会插入开始新页所需的符号,但在发出 print 语句之前,可以通过调用系统函数 ConverseLib.pageEject 来插入那些符号。

固定表单注意事项

下列情况适用于固定表单:
  • 如果对一个固定表单发出 print 语句,而该表单的开始行大于当前行,则 EGL 将插入使打印设备前进至指定行所需的符号。同样,如果对一个固定表单发出 print 语句,而该表单的开始行小于当前行,则 EGL 将插入开始新页所需的符号。
  • 如果一个固定表单覆盖了另一固定表单中的某些而非全部行,则 EGL 自动插入开始新页所需的符号并将第二个固定表单放置在新页上。
  • 如果一个固定表单覆盖了另一固定表单的所有行,则 EGL 将替换现有表单,而不从缓冲区中清除其余输出。要保留现有输出并将新表单放在下一页上,请在对新表单发出 print 语句之前调用系统函数 ConverseLib.pageEject。

浮动表单注意事项

如果使用浮动表单,则可能会发生下列错误:
  • 您发出 print 语句来将浮动表单置于浮动区域末尾之后;或者
  • 您发出使浮动区域至少部分地覆盖固定表单的 print 语句,然后发出 print 语句来将浮动表单添加至浮动区域。

在任何一种情况下,结果都会导致 EGL 插入开始新页所需的符号,并且浮动表单被置于新页上浮动区域的第一行。例如,如果该页与上面描述的订单与商品输出类似,则新页不包含最顶部的固定表单。

打印目标

当 EGL 处理 close 语句以显示打印文件时,将把输出发送至打印机或数据集。可以在下列三个时间中的任何一个时间指定目标:
  • 在测试时(如 EGL 调试器中所述)
  • 在生成时(如资源关联和文件类型中所述)
  • 在运行时(如“关于系统变量 ConverseVar.printerAssociation”所述)
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.