RPG

99. 2つの SFL を上下に表示するには ?

2つの SFL を上下に2つ同時に表示するにはどのようにすればよいのだろうか?

下記のような表示を実現したい。

これは難しい問題ではない。ポイントは OVERLAYキーワードを使うことと

お互いの SFL の記述行が重なり合わないように記述するだけでよい。

下記にこの例でのサンプル・ソースを示す。

【 DSPF ソース】
A*%%TS  SD  20060216  122451  QTR         REL-V3R7M0  5716-PW1   
A*  91/10/14  21:54:59    QUATTRO     REL-R03M00  5728-PW1       
A*-----------------------------------------------*               
A*   サブファイル表示     SFLDSPFM               *               
A*                                                               
A*        商品マスター照会                                       
A*                                                               
A*-----------------------------------------------*               
A*            11:25:43    QUATTRO     REL-R06M00  5714-UT1       
A*%%EC                                                           
A                                      DSPSIZ(24 80 *DS3)        
A                                      MSGLOC(24)                
A                                      PRINT                     
A*-----------------------------------------------*               
A          R DSPHEAD                                             
A*-----------------------------------------------*               
A                                      TEXT(' 初期画面 ')        
A                                      CF03(03 ' 終了 ')         
A                                      SETOF(99)                 
A                                      BLINK                     
A                                      CSRLOC(LIN        POS)      
A                                  1 27' 商品マスター照会 '        
A                                      DSPATR(RI)                  
A                                      COLOR(PNK)                  
A                                  2  2' 商品コード '              
A            STRSHCOD      10A  B  2 15TEXT(' 商品コード ')        
A                                 11 15' 必要な項目を打鍵して実行  
A                                       して下さい。 '             
A                                      DSPATR(HI)                  
A                                 23  2'F3= 終了 '                 
A                                      COLOR(BLU)                  
A            LIN            3S 0H                                  
A            POS            3S 0H                                  
A          R SFREC01                   SFL                         
A                                      TEXT(' SFL明細行 1')     
A*%%TS  SD  19930612  144015  QUATTRO     REL-V3R2M0  5738-PW1     
A*------------------------------------------------*                
A  20                                                              
AO 99                                  SFLNXTCHG                   
A            GYO1           4A  O  5  2TEXT(' № ')                
A            SHCODE        10A  O  5  7TEXT(' 商品コード ')        
A            SHNAME        24O  O  5 20TEXT(' 商品名 ')            
A            SHTANK         7Y 0O  5 45TEXT(' 単価 ')              
A                                      EDTCDE(K)                   
A            SHSCOD         4A  O  5 56TEXT(' 品種コード ')        
A*------------------------------------------------*                
A          R SFCTL01                   SFLCTL(SFREC01)             
A                                      TEXT(' SFL制御見出 1')   
A*------------------------------------------------*                
A                                      OVERLAY                     
A* SFLPAG :1 画面での表示行数                                      
A* SFLSIZ :ナボホヲbモ 全体の大きさ                                    
A                                      SFLSIZ(7)                   
A                                      SFLPAG(6)                   
A  41                                  SFLDSPCTL                   
A  42                                  SFLDSP                      
A  43                                  SFLINZ                      
A                                      SFLRNA                      
A  44                                  SFLCLR                      
A  45                                  SFLEND(*MORE)               
A  46                                  SFLDLT                      
A                                      ROLLUP(14 ' 次頁 ')         
A                                      ROLLDOWN(15 ' 前頁 ')       
A                                      CF03(03 ' 終了 ')           
A                                      CF12(12 ' 前画面 ')         
A                                      SETOF(99)                   
A                                      BLINK                       
A            DMYFLD         1A  O  1 72                            
A* 61 : IMPOSSIBLE TO ROLLUP                                       
A  61                                  ERRMSGID(EDT0411 QPDA/QEDTM 
A* 62 : IMPOSSIBLE TO ROLLDOWN                                     
A  62                                  ERRMSGID(EDT0410 QPDA/QEDTM 
A            DSPREC1        4S 0H      SFLRCDNBR(CURSOR)           
A                                      TEXT('SFL 表示 ロテーn゙ № ')  
A                                  1 27' 商品マスター照会 '        
A                                      DSPATR(RI)                  
A                                      COLOR(PNK)                  
A*( 見出しの項目 )                                                 
A                                  2  2' 商品コード '              
A            STRSHCOD      10A  O  2 15TEXT(' 商品コード ')        
A*( 明細行の桁見出し )                                             
A                                  4  2' № '                      
A                                      DSPATR(HI)                  
A                                  4  7' 商品コード '              
A                                      DSPATR(HI)                  
A                                  4 20' 商品名 '                  
A                                      DSPATR(HI)                  
A                                  4 45' 単価 '                    
A                                      DSPATR(HI)                  
A                                  4 56' 品種コード '              
A                                      DSPATR(HI)                  
A          R SFREC02                   SFL                         
A                                      TEXT(' SFL明細行 2')     
A*%%TS  SD  19930612  144015  QUATTRO     REL-V3R2M0  5738-PW1     
A*------------------------------------------------*                
A  20                                                              
AO 99                                  SFLNXTCHG                   
A            GYO2           4A  O 16  2TEXT(' № ')                
A            HNSCOD         4A  O 16  7TEXT(' 品種コード ')        
A            HNSNAM        14A  O 16 20TEXT(' 品種名 ')            
A*------------------------------------------------*                
A          R SFCTL02                   SFLCTL(SFREC02)             
A*%%TS  SD  20060216  122451  QTR         REL-V3R7M0  5716-PW1     
A                                      SFLSIZ(0007)                
A                                      SFLPAG(0006)                
A                                      TEXT(' SFL制御見出 2')   
A                                      OVERLAY                     
A  41                                  SFLDSPCTL                   
A  42                                  SFLDSP                      
A  43                                  SFLINZ                      
A                                      SFLRNA                      
A  44                                  SFLCLR                      
A  45                                  SFLEND(*MORE)               
A  46                                  SFLDLT                      
A                                      ROLLUP(14 ' 次頁 ')         
A                                      ROLLDOWN(15 ' 前頁 ')       
A                                      CF03(03 ' 終了 ')           
A                                      CF12(12 ' 前画面 ')         
A                                      SETOF(99)                   
A                                      BLINK                       
A            DMYFLD2        1A  O 13 72                            
A  61                                  ERRMSGID(EDT0411 QPDA/QEDTM 
A  62                                  ERRMSGID(EDT0410 QPDA/QEDTM 
A            DSPREC2        4S 0H      SFLRCDNBR(CURSOR)           
A                                      TEXT('SFL 表示 レコード № ')  
A                                 13 27' 品種マスター照会 '       
A                                      DSPATR(RI)                 
A                                      COLOR(PNK)                 
A                                 15  2' № '                     
A                                      DSPATR(HI)                 
A                                 15  7' 品種コード '             
A                                      DSPATR(HI)                 
A                                 15 20' 品種名 '                 
A                                      DSPATR(HI)                 
A                                 12  3'                          
A                                                                 
A                                             '                   
A                                      DSPATR(UL)                 
A*----------------------------------------------------*           
A          R DSPEND01                                             
A                                      TEXT(' 機能キーの表示 ')   
A*----------------------------------------------------*           
A                                      OVERLAY                    
A                                      CF03(03 ' 終了 ')          
A                                 23  2'F3= 終了 '                
A                                      COLOR(BLU)                 
A                                 23 41'F12= 前画面 '  
A                                      COLOR(BLU)
【 RPG ソース 】
H DFTNAME(PGMID) DATEDIT(*YMD/)                                       
F**********  商品マスター照会 ************************************    
FDSPSFL2FM CF   E             WORKSTN                                 
F                                     SFILE(SFREC01:RRN1)             
F                                     SFILE(SFREC02:RRN2)             
F                                     INFDS(INFDS)                    
FSHOHIN    IF   E           K DISK                                    
FHINSHU    IF   E           K DISK                                    
F*****************************************************************    
D DATADS        E DS                  EXTNAME(SHOHIN)                 
D INFDS           DS                                                  
D*  TOPRRN: 今表示している ナボ、ホヲbモ の先頭の RRN                      
D  TOPRRN               378    379B 0                                 
C*( 初期画面 )                                                        
C*----------------------------------------------------+               
C     START         TAG                                               
C                   EXFMT     DSPHEAD                                 
C*----------------------------------------------------+               
C                   SETOFF                                       99   
C*( CF03 )- 終了                                                      
C     *IN03         IFEQ      *ON                                     
C                   SETON                                        LR   
C   LR              RETURN                                            
C                   END                                               
C*( 実行キー )                                                        
C*   : KEYをファイルにセット                                       
C*----------------------------------------------------+               
C     SETKEY        KLIST                                             
C                   KFLD                    SHCODE                    
C*----------------------------------------------------+               
C                   MOVEL     STRSHCOD      SHCODE                    
C     SETKEY        SETLL     SHOHIN                                  
C                   EXSR      SFLCLR                                  
C*   : ファイルの読み取り                                             
C                   Z-ADD     1             TOPRRN                    
C                   EXSR      READ1                                   
C                   EXSR      READ2                                   
C                   Z-ADD     1             DSPREC1                   
C                   Z-ADD     1             DSPREC2                   
C*( サブ・ファイルの表示 )                                            
C                   WRITE     DSPEND01                                
C*----------------------------------------------------+                
C     DSPLY         TAG                                                
C                   SETON                                        4142  
C                   WRITE     SFCTL02                                  
C                   EXFMT     SFCTL01                                  
C                   SETOFF                                       4142  
C*----------------------------------------------------+                
C                   SETOFF                                       99    
C*( CF03 )- 終了                                                       
C     *IN03         IFEQ      *ON                                      
C                   SETON                                        LR    
C   LR              RETURN                                             
C                   END                                                
C*                                                                     
C*( CF12 )- 前画面                                                     
C     *IN12         IFEQ      *ON                                      
C                   SETOFF                                       12    
C                   GOTO      START                                    
C                   END                                                
C*( 実行キー )                                                         
C                   GOTO      DSPLY                                    
C*                                                                      
C     END           TAG                                                 
C******************************************************                 
C     *INZSR        BEGSR                                               
C******************************************************                 
C                   SETON                                        45     
C                   ENDSR                                               
C******************************************************                 
C     READ1         BEGSR                                               
C******************************************************                 
C     1             DO        *HIVAL        RRN1              4 0       
C                   SETOFF                                       50     
C                   READ      SHOHIN                                 50 
C*( 終り )                                                              
C     *IN50         IFEQ      *ON                                       
C                   SETON                                        91     
C                   LEAVE                                               
C                   END                                                 
C                   MOVE      RRN1          GYO1                        
C*----------------------------------------------------+                 
C                   WRITE     SFREC01                                   
C*----------------------------------------------------+                 
C                   Z-ADD     RRN1          DSPREC1                     
C                   END                                                 
C     REDEND1       ENDSR                                               
C******************************************************                 
C     READ2         BEGSR                                               
C******************************************************                 
C     *LOVAL        SETLL     HINSHU                                    
C     1             DO        *HIVAL        RRN2              4 0       
C                   SETOFF                                       50     
C                   READ      HINSHU                                 50 
C*( 終り )                                                              
C     *IN50         IFEQ      *ON                                       
C                   SETON                                        91     
C                   LEAVE                                               
C                   END                                                 
C                   MOVE      RRN2          GYO2                        
C*----------------------------------------------------+                 
C                   WRITE     SFREC02                                   
C*----------------------------------------------------+                 
C                   Z-ADD     RRN2          DSPREC2                     
C                   END                                                
C     REDEND        ENDSR                                              
C******************************************************                
C     SFLCLR        BEGSR                                              
C******************************************************                
C*( サブファイル の クリヤー )                                                  
C*----------------------------------------------------+                
C                   SETON                                        44    
C                   WRITE     SFCTL01                                  
C                   WRITE     SFCTL02                                  
C                   SETOFF                                       4491  
C*----------------------------------------------------+                
C                   ENDSR                                              
C******************************************************                
C     SFLDLT        BEGSR                                              
C******************************************************                
C*( サブファイル の削除 )                                                   
C*----------------------------------------------------+                
C                   SETON                                        46    
C                   WRITE     SFCTL01                                  
C                   WRITE     SFCTL02                                  
C                   SETOFF                                       46 
C*----------------------------------------------------+             
C                   ENDSR