Доступ к внешним (DSPF) полям с использованием массивов в RPGLE free - PullRequest
0 голосов
/ 13 декабря 2018

В старых RPG III и несвободных RPGLE/RPG IV вы могли "переименовывать" поля, которые вы получаете либо из записи PF/LF, либо из записи DSPF.

Это приводит к таким возможностям, как группировка нескольких строк ввода (дополнительный текст заказа) в массив.Поэтому мне не нужно было MOVEL или EVAL ottxt1 для внешнего описанного поля x1txt1, ottxt2 до x1txt2 и так далее.

Мне нужно было только переименовать запись LF и поля записи DSPF в поля массива, прочитать запись и переместить их из одного массива в другой и отобразить мою DSPF запись

 H DECEDIT('0,') DATEDIT(*DMY.) dftactgrp(*no)

 Fsls001    cf   e             workstn
 Fordtxtl0  if   e           k disk

 D ot              s             20a   dim(6)
 D x1              s             20a   dim(6)

 Iordtxtr
 I              ottxt1                      ot(1)
 I              ottxt2                      ot(2)
 I              ottxt3                      ot(3)
 I              ottxt4                      ot(4)
 I              ottxt5                      ot(5)
 I              ottxt6                      ot(6)
 Isls00101
 I              x1txt1                      x1(1)
 I              x1txt2                      x1(2)
 I              x1txt3                      x1(3)
 I              x1txt4                      x1(4)
 I              x1txt5                      x1(5)
 I              x1txt6                      x1(6)

 C     k$or00        klist
 C                   kfld                    otonbr
 C                   kfld                    otopos

 C                   eval      otonbr = 2
 C                   eval      otopos = 2
 C     k$or00        chain     ordtxtr
 C                   if        %found(ordtxtl0)
 C                   eval      x1 = ot
 C                   endif
 C
 C                   exfmt     sls00101
 C
 C                   move      *on           *inlr 

Но возможно ли это и в *FREE RPGLE?И если да, то как?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете определить структуры данных, содержащие поля из файлов, и наложить их на массив.

Заменить свои спецификации I и определения массива этими структурами данных.Вам не нужно ничего указывать, кроме имен полей для полей из описанного извне файла.

dcl-ds otDs;
   ottxt1;
   ottxt2;
   ottxt3;
   ottxt4;
   ottxt5;
   ottxt6;
   ot like(ottxt1) dim(6) pos(1);
end-ds;

dcl-ds x1Ds;
   x1txt1;
   x1txt2;
   x1txt3;
   x1txt4;
   x1txt5;
   x1txt6;
   x1 like(x1txt1) dim(6) pos(1);
end-ds;
...