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」の間に実際の区別はありません。どちらも同じように処理されます。見出しが2回表示される理由を理解するには、RPGの論理サイクルを理解する必要があります。つまり、ロジックサイクルは、c-spec計算を実行する前に、見出しと詳細行を印刷することから始まります。次に、ロジックサイクルを実行するたびに、見出しと詳細行を印刷します。だから私たちは持っています:

  1. 見出しと詳細を印刷する
  2. *INLRを確認してください。* ONの場合、終了します。
  3. 詳細計算を実行する
  4. 手順1に戻ります

これを防ぐには、Fスペックでオーバーフローインジケーターを指定する必要があります。次に、同じオーバーフローインジケーターを使用してOスペックを調整する必要があります。

于 2012-03-08T19:49:30.297 に答える
0

RPGへようこそ!

特定の条件で例外印刷が発生するように設定されていることがわかりますか? 詳細は、EXCEPT 操作で PRINTLINE が指定されている場合にのみ印刷されます。PRINTLINE2 などの別の EXCEPT がある場合、PRINTLINE は印刷されません。

見出し行を調整しているのは何ですか? ヒント: 'H' 行は、PRINTLINE のような名前ではなく、インジケーターで条件付けされます。

于 2012-03-08T16:06:35.147 に答える