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

时间:2018-10-15 15:00:05

标签: ibm-midrange rpgle

我在同一屏幕上遇到多个子文件的问题。我水平显示两个子文件,我只能在第二个加载的文件上使用上一页和下一页。我读过某个地方,您可以更改“活动”子文件,但未找到任何进一步的内容。

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)

2 个答案:

答案 0 :(得分:0)

不要READ特定的格式...

代替读取文件。您可以设置指示器来告诉您用户按下命令键时所使用的子格式。

答案 1 :(得分:0)

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

摘自this博客文章:

  

并排子文件必须通过编程处理,因为OS / 400不会自动处理它。

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