0

标题打印在报告的开头和结尾。我觉得我的LR错了。有什么帮助吗?

ft1prlc    if   e             disk
fqsysprt   o    f  132        printer
d heading1        c                   'Salary Report'
d heading2        c                   'SSN      Last Name    Salary'
c                   read      t1prlc                                 lr
c                   dow       *inlr=*off
c                   except    printline
c                   read      t1prlc                                 lr
c                   enddo
oqsysprt   H                           2
O                                              Heading1
O          h                           2
O                                              Heading2 
oqsysprt   e            printline      2
4

2 回答 2

1

对于 RPG,记录类型“H”和“D”之间没有任何真正的区别。两者的处理方式相同。要了解为什么要获得两次标题行,您需要了解 RPG 逻辑循环。简而言之,逻辑循环从打印标题和细节行开始,然后再进行任何 c-spec 计算。然后它在每次逻辑循环之后打印任何标题和详细信息行。所以我们有:

  1. 打印标题和详细信息
  2. 检查 *INLR。如果 *ON,则结束。
  3. 执行详细计算
  4. 返回步骤 1

为了防止这种情况,您的 F-spec 应该指定一个溢出指示器。然后,您的 O 规格应使用相同的溢出指示器进行调节。

于 2012-03-08T19:49:30.297 回答
0

欢迎来到 RPG!

您是否看到异常打印是如何在特定条件下发生的?只有当 EXCEPT 操作指定 PRINTLINE 时,才会打印详细信息。如果您有另一个 EXCEPT,例如 PRINTLINE2,则 PRINTLINE 将不会打印。

什么在调节你的标题线?提示:“H”行以指标为条件,而不是以 PRINTLINE 之类的名称为条件。

于 2012-03-08T16:06:35.147 回答