如何在同一屏幕上控制多个子文件?

How can I control multiple subfiles on the same screen?

我在同一屏幕上遇到多个子文件的问题。我水平显示两个子文件,我只能在第二个加载的子文件上使用向上翻页和向下翻页。我在某处读到您可以更改 "active" 子文件,但没有找到任何进一步的信息。

RPG代码:

     // display screen
     if #rrn02 <> 0 and #rrn03 <> 0;

       write msgctlw;
       write win01;
       write ctl03;
       write ctl02;
       read  ctl02;
       read  ctl03;

     else;

       *in02   = *on;
       @err00  = *on;
       @errmsg = '*Error: No Records Retrieved';
       @errmsgs1(@errmsg);


     ENDIF;               

第一个子文件:

 A          R SFL02                     SFL
 A            WINCD1         5      2  1
 A                                      COLOR(YLW)
 A            WINST1         2      2  7
 A                                      COLOR(YLW)
 A            WINCITY1      15      2 11
 A                                      COLOR(YLW)

 A                                  3  1'*-----------------------*'
 A          R CTL02                     SFLCTL(SFL02)
 A N61                                  SFLDSPCTL
 A N60                                  SFLDSP
 A                                      SFLPAG(5)
 A                                      SFLSIZ(500)
 A                                      WINDOW(4 8 13 25)
 A                                      OVERLAY
 A N60                                  SFLEND(*MORE)
 A  62                                  SFLCLR
 A                                      SFLCSRRRN(&#CSR02)
 A                                      SFLFOLD(CA11)
 A                                      CF06
 A                                      CF15
 A                                      WDWBORDER((*DSPATR ND))
 A
 A            #RRN02         4S 0H      SFLRCDNBR(CURSOR)
 A            #CSR02         5S 0H
 A            @CURRCD       10A  H
 A            @CURFLD       10A  H
 A            @CURPOS        4S 0H
 A                                  1  1'Zip  '
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)
 A                                  1  7'St'
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)
 A                                  1 11'City           '
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)              

第二个子文件:

 A          R SFL03                     SFL
 A            WINCD2         5      2  1
 A                                      COLOR(YLW)
 A            WINST2         2      2  7
 A                                      COLOR(YLW)
 A            WINCITY2      15      2 11
 A                                      COLOR(YLW)

 A                                  3  1'*-----------------------*'
 A          R CTL03                     SFLCTL(SFL03)
 A N61                                  SFLDSPCTL
 A N60                                  SFLDSP
 A                                      SFLPAG(5)
 A                                      SFLSIZ(500)
 A                                      WINDOW(4 41 13 25)
 A                                      OVERLAY
 A N60                                  SFLEND(*MORE)
 A  62                                  SFLCLR
 A                                      SFLCSRRRN(&#CSR03)
 A                                      SFLFOLD(CA11)
 A                                      CF06
 A                                      CF15
 A                                      WDWBORDER((*DSPATR ND))
 A
 A            #RRN03         4S 0H      SFLRCDNBR(CURSOR)
 A            #CSR03         5S 0H
 A            @CURRCD       10A  H
 A            @CURFLD       10A  H
 A            @CURPOS        4S 0H
 A                                  1  1'Zip  '
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)
 A                                  1  7'St'
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)
 A                                  1 11'City           '
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)

不要READ特定格式...

改为阅读文件。您可以设置指示器来告诉您用户按下命令键时所处的 subf 格式。

经过更多的研究,我发现了问题的根源。当 OS 只能处理垂直堆叠的两个子文件时,我试图并排放置两个子文件。

摘自 this 博客 post:

Side by side subfile has to be handled by programming as OS/400 will not handle it automatically.

为了达到我想要的结果(两个并排的列表),我将把我的数据放入一个子文件中,并在我的 DDS 中使用 SFLLN(2) 将其分成两行。