RPG as400 заголовки напечатать 2x? - PullRequest
0 голосов
/ 08 марта 2012

заголовки печатаются в начале и в конце отчета.Я думаю, что мой 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

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Для RPG нет никакого реального различия между типами записей "H" и "D".Оба обрабатываются одинаково.Чтобы понять, почему вы дважды получаете заголовки, вам нужно понять логический цикл RPG.Короче говоря, логический цикл начинается с печати строк заголовка и деталей перед выполнением любых вычислений c-spec.Затем он печатает любые строки заголовка и детали после каждого логического цикла.Итак, у нас есть:

  1. Печать заголовков и деталей
  2. Проверка * INLR.Если * ON, то end.
  3. Выполнить подробные расчеты
  4. Вернитесь к шагу 1

Чтобы предотвратить это, ваша F-спецификация должна обозначить индикатор переполнения.Тогда ваши O-спецификации должны быть обработаны с использованием того же индикатора переполнения.

0 голосов
/ 08 марта 2012

Добро пожаловать в RPG!

Видите ли вы, как распечатка исключений происходит при определенных условиях?Детали будут распечатаны, только если операция EXCEPT указывает PRINTLINE.Если бы у вас был другой КРОМЕ, скажем, PRINTLINE2, PRINTLINE не печатал бы.

Что обусловливает ваши строки заголовка?Подсказка: строки 'H' обусловлены индикаторами, а не такими именами, как PRINTLINE.

...