RPG

383. GRDBOXによる罫線の表示方法

画面の罫線と言えばTOOLBOXによる対話式で罫線を設計する方法が
一般的であったがそれ以外にも IBM i ではDDSキー・ワード GRDBOX によって
罫線を表示する手段も提供されているので紹介する。

[DSPF: SMP106FM ]

ソースはこちらから

0001.00      A*%%TS  SD  20150410  145737  QTR         REL-V6R1M0  5761-WDS              
0002.00      A*  91/10/14  21:54:59    QUATTRO     REL-R03M00  5728-PW1                  
0003.00      A*-----------------------------------------------*                          
0004.00      A*   サブファイル表示     SFLDSPFM               *                          
0005.00      A*                                                                          
0006.00      A*        振替伝票の入力                                                    
0007.00      A*                                                                          
0008.00      A*-----------------------------------------------*                          
0009.00      A*            11:25:43    QUATTRO     REL-R06M00  5714-UT1                  
0010.00      A*%%EC                                                                      
0011.00      A                                      DSPSIZ(27 132 *DS4                 - 
0012.00      A                                             24 80 *DS3)                   
0013.00      A  *DS4                                MSGLOC(27)                           
0014.00      A  *DS3                                MSGLOC(24)                           
0015.00      A                                      PRINT                                
0016.00      A*-----------------------------------------------*                          
0017.00      A          R DSPHEAD                                                        
0018.00      A*-----------------------------------------------*                          
0019.00      A                                      TEXT(' 初期画面 ')                   
0020.00      A*%%TS  SD  19930612  135725  QUATTRO     REL-V3R2M0  5738-PW1              
0021.00      A                                      CF03(03 ' 終了 ')                    
0022.00      A                                      SETOF(99)                            
0023.00      A                                      BLINK                                
0024.00      A                                      CSRLOC(LIN        POS)               
0025.00      A                                  1 50' 振替伝票の入力 '                   
0026.00      A  *DS3                            1 27                                     
0027.00      A                                      DSPATR(RI)                           
0028.00      A                                      COLOR(PNK)                           
0029.00      A                                  2114' 日付 '                             
0030.00      A  *DS3                            2 62                                     
0031.00      A                                  2123DATE(*JOB *YY)                       
0032.00      A                                      EDTCDE(W)                            
0033.00      A  *DS3                            2 71                                     
0034.00      A                                  3  2' 伝票№ '                           
0035.00      A            FRDENN    R        B  3 15REFFLD(FRIKAER/FRDENN  QTRFIL/FRI-   
0036.00      A                                      KAE)                                 
0037.00      A                                  3114' 時刻 '                             
0038.00      A  *DS3                            3 62                                     
0039.00      A                                  3123TIME                                 
0040.00      A  *DS3                            3 71                                     
0041.00      A                                  4114' システム '                         
0042.00      A  *DS3                            4 62                                     
0043.00      A                                  4125SYSNAME                              
0044.00      A  *DS3                            4 73                                     
0045.00      A                                 11 15' 必要な項目を打鍵して実行キーを押 + 
0046.00      A                                       して下さい。 '                      
0047.00      A                                      DSPATR(HI)                           
0048.00      A                                 23  2'F3= 終了 '                          
0049.00      A                                      COLOR(BLU)                           
0050.00      A            LIN            3S 0H                                           
0051.00      A            POS            3S 0H                                           
0052.00      A          R SFREC01                   SFL                                  
0053.00      A*%%TS  SD  20150409  172552  QTR         REL-V6R1M0  5761-WDS              
0054.00      A                                      TEXT(' SFL明細行 ')               
0055.00      A  20                                                                       
0056.00      AO 99                                  SFLNXTCHG                            
0057.00      A            GYO            4A  O  9  2TEXT(' № ')                         
0058.00      A  03                                  DSPATR(UL)                           
0059.00      A            FRKRCD    R        B  9  7REFFLD(FRIKAER/FRKRCD QTRFIL/FRIKAE) 
0060.00      A                                      TEXT('*POPUP KMCODE,KMNAME')         
0061.00      A  66                                  DSPATR(RI PC)                        
0062.00      A            FRKRNM    R        O  9 14REFFLD(KAMOKUR/KMNAME QTRFIL/KAMOKU) 
0063.00      A                                      TEXT(' 科目名 ')                     
0064.00      A            FRKING    R        B  9 37REFFLD(FRIKAER/FRKING QTRFIL/FRIKAE) 
0065.00      A                                      CHECK(RB)                            
0066.00      A                                      DSPATR(CS)                           
0067.00      A                                      TEXT(' 金額 ')                       
0068.00      A            FRKSCD    R        B  9 50REFFLD(FRIKAER/FRKSCD QTRFIL/FRIKAE) 
0069.00      A                                      TEXT('*POPUP KMCODE,KMNAME')         
0070.00      A  67                                  DSPATR(RI PC)                        
0071.00      A            FRKSNM    R        O  9 57REFFLD(KAMOKUR/KMNAME QTRFIL/KAMOKU) 
0072.00      A                                      TEXT(' 科目名 ')                     
0073.00      A            FRTEKI    R        B  9 80REFFLD(FRIKAER/FRTEKI  QTRFIL/FRIKA- 
0074.00      A                                      E)                                   
0075.00      A  *DS3                           10 48                                     
0076.00      A*(  修正のための BACKUP を保存しておく )                                   
0077.00      A            FBKING    R        H      REFFLD(FRIKAER/FRKING QTRFIL/FRIKAE) 
0078.00      A          R SFCTL01                   SFLCTL(SFREC01)                      
0079.00      A*%%TS  SD  20150409  174603  QTR         REL-V6R1M0  5761-WDS              
0080.00      A                                      SFLSIZ(0011)                         
0081.00      A  *DS3                                SFLSIZ(0006)                         
0082.00      A                                      SFLPAG(0010)                         
0083.00      A  *DS3                                SFLPAG(0005)                         
0084.00      A                                      TEXT(' SFL制御見出し ')           
0085.00      A                                      OVERLAY                              
0086.00      A  41                                  SFLDSPCTL                            
0087.00      A  42                                  SFLDSP                               
0088.00      A  43                                  SFLINZ                               
0089.00      A                                      SFLRNA                               
0090.00      A  44                                  SFLCLR                               
0091.00      A  45                                  SFLEND(*MORE)                        
0092.00      A  46                                  SFLDLT                               
0093.00      A  61                                  SFLMSGID(EDT0411 QPDA/QEDTMSG 61)    
0094.00      A  62                                  SFLMSGID(EDT0410 QPDA/QEDTMSG 62)    
0095.00      A  66                                  SFLMSG(' 借方科目コードの誤りです -  
0096.00      A                                       。 ' 66)                             
0097.00      A  67                                  SFLMSG(' 貸方科目コードの誤りです -   
0098.00      A                                       。 ' 67)                             
0099.00      A                                      ROLLUP(14 ' 次頁 ')                   
0100.00      A                                      ROLLDOWN(15 ' 前頁 ')                 
0101.00      A                                      CF03(03 ' 終了 ')                     
0102.00      A                                      CF10(10 ' 更新 ')                     
0103.00      A                                      CF23(23 ' 削除 ')                     
0104.00      A                                      CF12(12 ' 前画面 ')                   
0105.00      A                                      SETOF(99)                             
0106.00      A                                      BLINK                                 
0107.00      A*( SFLEND(*MORE)... 続く / 終りの使用のために SFLMSG は                     
0108.00      A*  使用しません。 )                                                         
0109.00      A            DSPREC         4S 0H      SFLRCDNBR(CURSOR)                     
0110.00      A                                      TEXT('SFL 表示 レコード № ')            
0111.00      A            LIN            3S 0H      TEXT('カーソル 位置合せ - 行 ')           
0112.00      A            POS            3S 0H      TEXT('カーソル 位置合せ - 桁 ')           
0113.00      A                                  1 50' 振替伝票の入力 '                    
0114.00      A  *DS3                            1 27                                      
0115.00      A                                      DSPATR(RI)                            
0116.00      A                                      COLOR(PNK)                            
0117.00      A*( 見出しの項目 )                                                           
0118.00      A                                  2114' 日付 '                              
0119.00      A  *DS3                            2 62                                      
0120.00      A                                  2123DATE(*JOB *YY)                       
0121.00      A                                      EDTCDE(W)                            
0122.00      A  *DS3                            2 71                                     
0123.00      A                                  3114' 時刻 '                             
0124.00      A  *DS3                            3 62                                     
0125.00      A                                  3123TIME                                 
0126.00      A  *DS3                            3 71                                     
0127.00      A                                  4114' システム '                         
0128.00      A  *DS3                            4 62                                     
0129.00      A                                  4125SYSNAME                              
0130.00      A  *DS3                            4 73                                     
0131.00      A                                  3  2' 伝票№ '                           
0132.00      A            FRDENN    R        O  3 15REFFLD(FRIKAER/FRDENN  QTRFIL/FRIKA- 
0133.00      A                                      E)                                   
0134.00      A                                  4  2' 日付 '                             
0135.00      A            FRDATE    R        B  4 15REFFLD(FRIKAER/FRDATE QTRFIL/FRIKAE) 
0136.00      A                                      EDTCDE(W)                            
0137.00      A  63                                  ERRMSG(' 伝票日付の誤りです。 ' 63)  
0138.00      A                                  5  2' 部門 '                             
0139.00      A            FRBKCD    R        B  5 15REFFLD(@BUKAM/BKCODE QTRFIL/BUKAM)   
0140.00      A  64                                  ERRMSG(' 部門コードの誤りです。 ' -  
0141.00      A                                       64)                                 
0142.00      A                                      TEXT('*COMBO *KEY')                  
0143.00      A            BKNAME    R        O  5 20REFFLD(@BUKAM/BKNAME QTRFIL/BUKAM)   
0144.00      A  65                                  ERRMSG(' 担当者コードの誤りです。 '- 
0145.00      A                                       65)                                 
0146.00      A                                      TEXT('*COMBO *DATA')                 
0147.00      A                                  6  2' 担当者 '                           
0148.00      A            FRTANC    R        B  6 15REFFLD(@TANTOM/TACODE QTRFIL/TANTOM) 
0149.00      A                                      TEXT('*COMBO *KEY')                  
0150.00      A            TTNAMJ    R        O  6 20REFFLD(@TANTOM/TTNAMJ QTRFIL/TANTOM) 
0151.00      A                                      TEXT('*COMBO *DATA')                 
0152.00      A*( 明細行の桁見出し )                                                      
0153.00      A*  *DS3 では「摘要」は TTNAMJ と重なって表示されません。                   
0154.00      A                                  6 22' 摘要 '                             
0155.00      A                                      DSPATR(HI)                           
0156.00      A  *DS3                            6 48                                     
0157.00      A                                  8  2' № '                               
0158.00      A  *DS3                            7  2                                     
0159.00      A                                      DSPATR(HI)                           
0160.00      A                                  8  7' 借方コード '                       
0161.00      A  *DS3                            7  7                                     
0162.00      A                                      DSPATR(HI)                           
0163.00      A                                  8 20' 科目名 '                           
0164.00      A  *DS3                            7 20                                     
0165.00      A                                      DSPATR(HI)                           
0166.00      A                                  8 39' 金額 '                             
0167.00      A  *DS3                            7 39                                     
0168.00      A                                      DSPATR(HI)                            
0169.00      A                                  8 48' 貸方コード '                        
0170.00      A  *DS3                            7 48                                      
0171.00      A                                      DSPATR(HI)                            
0172.00      A                                  8 62' 科目名 '                            
0173.00      A  *DS3                            7 62                                      
0174.00      A                                      DSPATR(HI)                            
0175.00      A*  *DS4 では「摘要」は科目名と重なって表示されません。                      
0176.00      A                                  8 82' 摘要 '                              
0177.00      A  *DS3                            7 62                                      
0178.00      A                                      DSPATR(HI)                            
0179.00      A          R NOREC                                                           
0180.00      A                                      TEXT(' MSG : レコードなし ')       
0181.00      A*%%TS  SD  19930612  144015  QUATTRO     REL-V2R1M0  5738-PW1               
0182.00      A                                      OVERLAY                               
0183.00      A                                      CF03(03 ' 終了 ')                     
0184.00      A                                 10  5'( 検索されて見つかったレコードが -   
0185.00      A                                       ない。 )'                            
0186.00      A                                      DSPATR(HI)                            
0187.00      A                                 16  5' 処理を続けるために実行キーを押し -  
0188.00      A                                       なさい。 '                           
0189.00      A                                      DSPATR(HI)                            
0190.00      A          R DSPEND01                                                        
0191.00      A*%%TS  SD  20150410  145737  QTR         REL-V6R1M0  5761-WDS               
0192.00      A                                      TEXT(' 機能キーの表示 ')            
0193.00      A                                      OVERLAY                             
0194.00      A                                      CF03(03 ' 終了 ')                   
0195.00      A                                 20 27' 合計 '                            
0196.00      A                                      DSPATR(RI)                          
0197.00      A            GOKEI     R        O 20 37REFFLD(FRIKAER/FRKING QTRFIL/FRIKAE)
0198.00      A                                      EDTCDE(J)                           
0199.00      A                                      TEXT(' 合計金額 ')                  
0200.00      A                                 20 50' 円 '                              
0201.00      A                                 23  2'F3= 終了 '                         
0202.00      A                                      COLOR(BLU)                          
0203.00      A                                 23 34'F10= 更新 '                        
0204.00      A                                      COLOR(BLU)                          
0205.00      A                                 23 51'F23= 削除 '                        
0206.00      A                                      COLOR(BLU)                          
0207.00      A                                 23 68'F12= 前画面 '                      
0208.00      A                                      COLOR(BLU)                          
0209.00      A                                 20 70' '                                 
0210.00      A*                                                                         
0211.00      A          R ENDOPT                                                        
0212.00      A*%%TS  SD  19930612  150356  NIK         REL-V2R1M0  5738-PW1             
0213.00      A                                      TEXT(' 終了画面 ')                  
0214.00      A                                      CF03(03 ' 終了 ')                   
0215.00      A                                      CF12(12 ' 前画面 ')                 
0216.00      A                                      CSRLOC(LIN        POS)               
0217.00      A                                  1 64' 終了 '                             
0218.00      A  *DS3                            1 34                                     
0219.00      A                                      COLOR(PNK)                           
0220.00      A                                      DSPATR(HI)                           
0221.00      A                                  3  2' 処理されたレコード数 '             
0222.00      A                                  5 10' 追加  . . . . . :'                 
0223.00      A            ADDREC         5Y 0O  5 35EDTCDE(1)                            
0224.00      A                                  6 10' 変更  . . . . . :'                 
0225.00      A            CHGREC         5Y 0O  6 35EDTCDE(1)                            
0226.00      A                                  7 10' 削除  . . . . . :'                 
0227.00      A            DLTREC         5Y 0O  7 35EDTCDE(1)                            
0228.00      A                                 11  2' 選択項目を打鍵して,実行キーを押 + 
0229.00      A                                       してください。 '                    
0230.00      A                                      COLOR(BLU)                           
0231.00      A                                 13  5' データ入力の終了  . . . . . .'     
0232.00      A            ANS            1A  B 13 39VALUES('Y' 'N')                      
0233.00      A                                 13 53'Y=YES, N=NO'                        
0234.00      A                                 23  2'F3= 終了 '                          
0235.00      A                                      COLOR(BLU)                           
0236.00      A                                 23 15'F12= 前画面 '                       
0237.00      A                                      COLOR(BLU)                           
0238.00      A            LIN            3S 0H                                           
0239.00      A            POS            3S 0H                                           
0240.00      A*( 罫線クリヤー )                                                        
0241.00      A          R GRDCLR                    GRDRCD                             
0242.00      A                                      GRDCLR                             
0243.00      A*( 罫線バッファー )                                                      
0244.00      A          R GRDREC                    GRDRCD                             
0245.00      A                                      GRDATR((*COLOR WHT) (*LINTYP SLD)) 
0246.00      A                                      GRDBOX((*POS (*DS3 7 2 12 78) +    
0247.00      A                                      (*DS4 8 2 11 111)) +               
0248.00      A                                      (*TYPE PLAIN))                     
0249.00      A                                      GRDLIN((*POS (*DS3 7 2 78) +       
0250.00      A                                      (*DS4 8 2 111)) +                  
0251.00      A                                      (*TYPE LOWER))                     
0252.00      A                                      GRDLIN((*POS (*DS3 8 6 11) +       
0253.00      A                                      (*DS4 9 6 10)) +                   
0254.00      A                                      (*TYPE LEFT))                      
0255.00      A*( 縦線 )                                                                
0256.00      A                                      GRDLIN((*POS (*DS3 8 14 11) +      
0257.00      A                                      (*DS4 9 14 10)) +                  
0258.00      A                                      (*TYPE LEFT))                      
0259.00      A                                      GRDLIN((*POS (*DS3 8 36 11) +      
0260.00      A                                      (*DS4 9 36 10)) +                  
0261.00      A                                      (*TYPE LEFT))    


                 

[解説]

赤字の部分が罫線キー・ワードである。

罫線を表示するレコードは一般の表示レコードとは別に
GRDRCD として定義したレコードするする必要がある。

罫線をクリヤーするのは次の GRDCLR キー・ワードによって消去する。

0240.00      A*( 罫線クリヤー )                                                        
0241.00      A          R GRDCLR                    GRDRCD                             
0242.00      A
0242.00      A                                      GRDCLR

罫線を表示するのは次のレコードである。

0243.00      A*( 罫線バッファー )                                                      
0244.00      A          R GRDREC                    GRDRCD                             
0245.00      A                                      GRDATR((*COLOR WHT) (*LINTYP SLD)) 
0246.00      A                                      GRDBOX((*POS (*DS3 7 2 12 78) +    
0247.00      A                                      (*DS4 8 2 11 111)) +               
0248.00      A                                      (*TYPE PLAIN))                     
0249.00      A                                      GRDLIN((*POS (*DS3 7 2 78) +       
0250.00      A                                      (*DS4 8 2 111)) +                  
0251.00      A                                      (*TYPE LOWER))                     
0252.00      A                                      GRDLIN((*POS (*DS3 8 6 11) +       
0253.00      A                                      (*DS4 9 6 10)) +                   
0254.00      A                                      (*TYPE LEFT))                      
0255.00      A*( 縦線 )                                                                
0256.00      A                                      GRDLIN((*POS (*DS3 8 14 11) +      
0257.00      A                                      (*DS4 9 14 10)) +                  
0258.00      A                                      (*TYPE LEFT))                      
0259.00      A                                      GRDLIN((*POS (*DS3 8 36 11) +      
0260.00      A                                      (*DS4 9 36 10)) +                  
0261.00      A                                      (*TYPE LEFT))

詳細は IBM Knowledge Center
RPG でこれらを表示するには

[ RPG : SMP106 ]

ソースはこちらから

0001.00 H DFTNAME(SMP106) DATEDIT(*YMD/)                                                      
0002.00 F**********  振替伝票の入力 **************************************                    
0003.00 FSMP106FM  CF   E             WORKSTN                                                 
0004.00 F                                     SFILE(SFREC01:RRN1)                             
0005.00 F                                     INFDS(INFDS)                                    
0006.00 F                                     MAXDEV(*FILE)                                   
0007.00 FFRIKAE    UF A E           K DISK                                                    
0008.00 FBUKAM     IF   E           K DISK                                                    
0009.00 FTANTOM    IF   E           K DISK                                                    
0010.00 FKAMOKU    IF   E           K DISK                                                    
0011.00 F*****************************************************************                    
0012.00 D SAVDTA          S              1    DIM(1024)                             SAVE-データ 
0013.00 D*       読み取り ファイル の FORMAT を外部 DS として READ                                
0014.00 D DATADS        E DS                  EXTNAME(FRIKAE)                                 
0015.00 D  MIDDTA                 1     22                                                    
0016.00 D  DSPDTA                 1   1024                                                    
0017.00 D                                     DIM(1024)                             入力 データ 
0018.00 D*                                                                                    
0019.00 D*         -( サブ・ファイル の ファイル 情報 )-                                                
0020.00 D*                                                                                    
0021.00 D INFDS           DS                                                                  
0022.00 D  NUMROW               152    153B 0                                                 
0023.00 D  NUMCOL               154    155B 0                                                 
0024.00 D*( カーソル の行と桁の取り込み )                         
0025.00 D  LINE                 370    371B 0                 
0026.00 D*  TOPRRN: 今表示している サブ・ファイル の先頭の RRN      
0027.00 D  TOPRRN               378    379B 0                 
0028.00 D* BRRN : サブファイル の レコードNO ( 2 進数 )               
0029.00 D  BRRN                 376    377B 0                 
0030.00 D*( WORK 日付 YYMMDD データ 構造  )                     
0031.00 D DATEDS          DS                                  
0032.00 D  SRY                    1      2  0                 
0033.00 D  SRYMD                  1      8  0                 
0034.00 D  YYMMDD                 3      8  0                 
0035.00 D  YYMM                   3      6  0                 
0036.00 D  MMDD                   5      8  0                 
0037.00 D  YY                     3      4  0                 
0038.00 D  MM                     5      6  0                 
0039.00 D  DD                     7      8  0                 
0040.00 D                 DS                                  
0041.00 D  RRN1                   1      4  0                 
0042.00 D  EOF                    5      5                    
0043.00 D  FLD1                   6      6                    
0044.00 D  DATE                   7     12  0                 
0045.00 D  DENNO                 13     18  0                 
0046.00 C*( 初期画面 )                                        
0047.00 C                   MOVE      '000001'      FRDENN    
0048.00 C                   GOTO      HEDSTR                                            
0049.00 C*----------------------------------------------------+                         
0050.00 C     START         TAG                                                    |    
0051.00 C                   EXFMT     DSPHEAD                                      |    
0052.00 C*----------------------------------------------------+                         
0053.00 C                   SETOFF                                       99             
0054.00 C*( CF03 )- 終了                                                                
0055.00 C     *IN03         IFEQ      *ON                                          CF03 
0056.00 C                   EXSR      LRRTN                                             
0057.00 C   LR              RETURN                                                      
0058.00 C                   GOTO      START                                             
0059.00 C                   END                                                    CF03 
0060.00 C*( 実行キー )                                                                  
0061.00 C*                     |                                                        
0062.00 C*                     |                                                        
0063.00 C*   : 初期画面のチエック                                                       
0064.00 C     HEDSTR        TAG                                                         
0065.00 C                   EXSR      HEDCHK                                            
0066.00 C   99              GOTO      START                                             
0067.00 C*                     |                                                        
0068.00 C*   : KEYをファイルにセット                                                 
0069.00 C*----------------------------------------------------+                         
0070.00 C     SETKEY        KLIST                                                  |    
0071.00 C                   KFLD                    FRDENN                         |    
0072.00 C                   KFLD                    FRGYO                          | 
0073.00 C*----------------------------------------------------+                      
0074.00 C*( *LOVAL のセット )                                                        
0075.00 C                   MOVE      *ZEROS        FRGYO                            
0076.00 C                   EXSR      SFLCLR                                         
0077.00 C     SETKEY        SETLL     FRIKAE                                         
0078.00 C                   Z-ADD     0             GOKEI                            
0079.00 C*   : ファイルの読み取り                                                    
0080.00 C                   Z-ADD     1             TOPRRN                           
0081.00 C                   EXSR      READ                                           
0082.00 C                   Z-ADD     1             DSPREC                           
0083.00 C*( サブ・ファイルの表示 )                                                   
0084.00 C*----------------------------------------------------+                      
0085.00 C     DSPLY         TAG                                                    | 
0086.00 C                   SETON                                        41        | 
0087.00 C     BRRN          IFGT      *ZEROS                                       | 
0088.00 C                   SETON                                        42        | 
0089.00 C                   WRITE     GRDREC                                       | 
0090.00 C                   ELSE                                                   | 
0091.00 C*   ( 検索した見つかったレコードがない )             |                      
0092.00 C                   WRITE     NOREC                                        | 
0093.00 C                   ENDIF                                                  | 
0094.00 C                   WRITE     DSPEND01                                     | 
0095.00 C                   EXFMT     SFCTL01                                      | 
0096.00 C                   SETOFF                                       4142      |      
0097.00 C*----------------------------------------------------+                           
0098.00 C                   SETOFF                                       99               
0099.00 C*( CF03 )- 終了                                                                  
0100.00 C     *IN03         IFEQ      *ON                                          CF03   
0101.00 C                   WRITE     GRDCLR                                              
0102.00 C                   EXSR      LRRTN                                               
0103.00 C   LR              RETURN                                                        
0104.00 C                   GOTO      DSPLY                                               
0105.00 C                   ENDIF                                                  CF03   
0106.00 C*                                                                                
0107.00 C*( CF12 )- 前画面                                                                
0108.00 C     *IN12         IFEQ      *ON                                          CF12   
0109.00 C                   SETOFF                                       12               
0110.00 C                   EXSR      SFLDLT                                              
0111.00 C                   WRITE     GRDCLR                                              
0112.00 C                   GOTO      START                                               
0113.00 C                   ENDIF                                                  CF12   
0114.00 C*                     |                                                          
0115.00 C*( ROLL UP )- 次ページ                                                           
0116.00 C     *IN14         IFEQ      *ON                                                 
0117.00 C                   EXSR      ROLLUP                                              
0118.00 C                   GOTO      DSPLY                                               
0119.00 C                   ENDIF                                                         
0120.00 C*( ROLL DOWN )- 前ページ                                                         
0121.00 C     *IN15         IFEQ      *ON                                                 
0122.00 C                   Z-ADD     1             DSPREC                                
0123.00 C                   SETON                                        6299      ERRMSG 
0124.00 C                   GOTO      DSPLY                                               
0125.00 C                   ENDIF                                                         
0126.00 C*                                                                                
0127.00 C     TOPRRN        IFNE      *ZEROS                                              
0128.00 C                   Z-ADD     TOPRRN        DSPREC                                
0129.00 C                   ENDIF                                                         
0130.00 C*( 実行キー )                                                                    
0131.00 C*   : 見出し画面のチエック                                                       
0132.00 C  N23              EXSR      MIDCHK                                              
0133.00 C   99              GOTO      DSPLY                                               
0134.00 C*   : 見出し項目のSAVE                                                       
0135.00 C                   MOVE      MIDDTA        MIDSAV                                
0136.00 C     *LIKE         DEFINE    MIDDTA        MIDSAV                                
0137.00 C*   : 明細画面のチエック                                                         
0138.00 C     1             DO        *HIVAL        RRN1                                  
0139.00 C*( 実行キー )                                                                    
0140.00 C  N10                                                                            
0141.00 CANN23              READC     SFREC01                                50           
0142.00 C*( CF10 )- 更新                                                                  
0143.00 C*( CF23 )- 削除                                                                  
0144.00 C   10                                                                            
0145.00 COR 23RRN1          CHAIN     SFREC01                            50               
0146.00 C   50              LEAVE                                                         
0147.00 C*   :  ブランク・キー入力のオミット                                              
0148.00 C     FRKRCD        IFEQ      *BLANKS                                             
0149.00 C     FRKSCD        ANDEQ     *BLANKS                                             
0150.00 C                   ITER                                                          
0151.00 C                   ENDIF                                                         
0152.00 C*                                                                                
0153.00 C                   Z-ADD     BRRN          DSPREC                                
0154.00 C*---------------------+                                                          
0155.00 C* 入力明細行のチエック                                                           
0156.00 C*---------------------+                                                          
0157.00 C                   MOVEL     GYO           FLD1                                  
0158.00 C     FLD1          IFNE      'D'                                           削除 ?
0159.00 C     *IN23         ANDEQ     *OFF                                                
0160.00 C                   EXSR      CHECK                                               
0161.00 C   99              GOTO      SFLWRT                                              
0162.00 C                   ENDIF                                                         
0163.00 C*---------------------+                                                          
0164.00 C* データ・ベース更新                                                             
0165.00 C*---------------------+                                                          
0166.00 C     *IN10         IFEQ      *ON                                          F10,F23
0167.00 C     *IN23         OREQ      *ON                                                 
0168.00 C*----------------------------------------------------+                          
0169.00 C     TRNKEY        KLIST                                                  |     
0170.00 C                   KFLD                    FRDENN                         |     
0171.00 C                   KFLD                    FRGYO                          |     
0172.00 C*----------------------------------------------------+                          
0173.00 C*   : 更新キーを生成                                                            
0174.00 C                   MOVE      RRN1          FRGYO                                
0175.00 C                   MOVE      DSPDTA        SAVDTA                               
0176.00 C*   : データ・ベース検索                                                        
0177.00 C     *NOKEY        CLEAR                   FRIKAER                              
0178.00 C                   SETOFF                                       90              
0179.00 C     TRNKEY        CHAIN     FRIKAE                             90              
0180.00 C                   MOVE      SAVDTA        DSPDTA                               
0181.00 C*   : データ・ベースへ追加・更新                                                
0182.00 C                   MOVEL     GYO           FLD1              1                  
0183.00 C     FLD1          COMP      'D'                                    50          
0184.00 C   23              SETON                                        50              
0185.00 C*----------------------------------------------------+                          
0186.00 C   90                                                                           
0187.00 CANN50              WRITE     FRIKAER                                      | ADD 
0188.00 C  N90                                                                           
0189.00 CANN50              UPDATE    FRIKAER                                      | CHG 
0190.00 C  N90                                                                           
0191.00 CAN 50              DELETE    FRIKAER                                      | DLT 
0192.00 C*----------------------------------------------------+                           
0193.00 C   90              ADD       1             ADDREC            5 0                 
0194.00 C  N90                                                                            
0195.00 CANN50              ADD       1             CHGREC            5 0                 
0196.00 C  N90                                                                            
0197.00 CAN 50              ADD       1             DLTREC            5 0                 
0198.00 C                   ENDIF                                                  F10,F23
0199.00 C*---------------------+                                                          
0200.00 C* サブ・ファイル更新                                                             
0201.00 C*---------------------+                                                          
0202.00 C     SFLWRT        TAG                                                           
0203.00 C                   MOVE      TOPRRN        TOPSAV                                
0204.00 C     *LIKE         DEFINE    TOPRRN        TOPSAV                                
0205.00 C*  ( 合計の加減を計算 )                                                          
0206.00 C                   SUB       FBKING        GOKEI                                 
0207.00 C                   ADD       FRKING        GOKEI                                 
0208.00 C                   Z-ADD     FRKING        FBKING                                
0209.00 C*----------------------------------------------------+                           
0210.00 C                   UPDATE    SFREC01                                      |      
0211.00 C*----------------------------------------------------+                           
0212.00 C                   Z-ADD     BRRN          DSPREC                                
0213.00 C                   MOVE      TOPSAV        TOPRRN                                
0214.00 C   99              GOTO      DSPLY                                         エラー
0215.00 C*                                                                                
0216.00 C                   ENDDO                                                           
0217.00 C*( CF10 )- 更新                                                                    
0218.00 C*( CF23 )- 削除                                                                    
0219.00 C     *IN10         IFEQ      *ON                                                   
0220.00 C     *IN23         OREQ      *ON                                                   
0221.00 C                   GOTO      START                                                 
0222.00 C*( 実行キー )                                                                      
0223.00 C                   ELSE                                                            
0224.00 C                   GOTO      DSPLY                                                 
0225.00 C                   ENDIF                                                           
0226.00 C*                                                                                  
0227.00 C     END           TAG                                                             
0228.00 C******************************************************                             
0229.00 C     *INZSR        BEGSR                                                           
0230.00 C******************************************************                             
0231.00 C*  初期サイクルのみの実行                                                          
0232.00 C*(  サブ・ファイル END-FLAG を ON にする )                                         
0233.00 C                   SETON                                        45                 
0234.00 C*( DS の数字 フィールド のクリヤー )                                                   
0235.00 C     *NOKEY        CLEAR                   FRIKAER                                 
0236.00 C                   Z-ADD     0             RRN1                                    
0237.00 C                   EXSR      SFLINZ                                                
0238.00 C                   MOVE      05            GYOSU             2 0           行数    
0239.00 C                   MOVE      09            STRGYO            2 0           開始行№
0240.00 C                   MOVE      20150101      SRYMD                       
0241.00 C                   MOVE      150101        DATE                        
0242.00 C                   SETON                                        11     
0243.00 C                   SETOFF                                       11     
0244.00 C                   ENDSR                                               
0245.00 C******************************************************                 
0246.00 C     HEDCHK        BEGSR                                               
0247.00 C******************************************************                 
0248.00 C*( 初期画面チエック )                                                  
0249.00 C*----------------------------------------------------*                 
0250.00 C*( FRDENN    :  伝票№                ( 自動発生 )                     
0251.00 C*----------------------------------------------------*                 
0252.00 C     FRDENN        IFEQ      *BLANKS                                   
0253.00 C     *HIVAL        SETGT     FRIKAE                                    
0254.00 C                   READP     FRIKAE                                 50 
0255.00 C     *IN50         IFEQ      *ON                                       
0256.00 C                   MOVE      '000001'      FRDENN                      
0257.00 C                   ELSE                                                
0258.00 C                   MOVE      FRDENN        DENNO                       
0259.00 C                   ADD       1             DENNO                       
0260.00 C                   MOVE      DENNO         FRDENN                      
0261.00 C                   ENDIF                                               
0262.00 C*----------------------------------------------------*                 
0263.00 C*( FRDATE    :  伝票日付             :( UDATE )                        
0264.00 C*----------------------------------------------------*             
0265.00 C                   MOVE      UDATE         YYMMDD                  
0266.00 C                   MOVE      SRYMD         FRDATE                  
0267.00 C*----------------------------------------------------*             
0268.00 C*( FRBKCD    :  部課コード         :( CHAIN ファイル )             
0269.00 C*----------------------------------------------------*             
0270.00 C                   MOVE      '92'          FRBKCD                  
0271.00 C*----------------------------------------------------*             
0272.00 C*( FRTANC    :  担当者コード       :( CHAIN ファイル )             
0273.00 C*----------------------------------------------------*             
0274.00 C                   MOVE      '1201'        FRTANC                  
0275.00 C                   EXSR      MIDCHK                                
0276.00 C                   ENDIF                                           
0277.00 C     HEDEND        ENDSR                                           
0278.00 C******************************************************             
0279.00 C     MIDCHK        BEGSR                                           
0280.00 C******************************************************             
0281.00 C*( 見出しチエック )                                                
0282.00 C*----------------------------------------------------*             
0283.00 C*( FRDATE    :  伝票日付             :( DATCHK 日付 )              
0284.00 C*----------------------------------------------------*             
0285.00 C                   MOVE      FRDATE        DATE                    
0286.00 C                   EXSR      DATCHK                                
0287.00 C   99              SETON                                        63 
0288.00 C   99              GOTO      MIDEND                                
0289.00 C*----------------------------------------------------*             
0290.00 C*( FRBKCD    :  部課コード         :( CHAIN ファイル )             
0291.00 C*----------------------------------------------------*             
0292.00 C                   MOVE      *BLANKS       BKNAME                  
0293.00 C                   SETOFF                                       99 
0294.00 C     FRBKCD        CHAIN     BUKAM                              99 
0295.00 C   99              SETON                                        64 
0296.00 C   99              GOTO      MIDEND                                
0297.00 C*----------------------------------------------------*             
0298.00 C*( FRTANC    :  担当者コード       :( CHAIN ファイル )             
0299.00 C*----------------------------------------------------*             
0300.00 C                   MOVE      *BLANKS       TTNAMJ                  
0301.00 C                   SETOFF                                       99 
0302.00 C     FRTANC        CHAIN     TANTOM                             99 
0303.00 C   99              SETON                                        65 
0304.00 C   99              GOTO      MIDEND                                
0305.00 C     MIDEND        ENDSR                                           
0306.00 C******************************************************             
0307.00 C     READ          BEGSR                                           
0308.00 C******************************************************             
0309.00 C                   MOVE      *BLANKS       EOF                     
0310.00 C                   SETOFF                                       45 
0311.00 C                   MOVE      MIDDTA        MIDSAV                  
0312.00 C*( データ・ベースの検索 )                                                       
0313.00 C*----------------------------------------------------+                          
0314.00 C     EQLKEY        KLIST                                                  |     
0315.00 C                   KFLD                    FRDENN                         |     
0316.00 C*----------------------------------------------------+                          
0317.00 C     TOPRRN        ADD       GYOSU         ENDRRN            4 0                
0318.00 C                   SUB       1             ENDRRN                               
0319.00 C*                                                                               
0320.00 C     TOPRRN        DO        ENDRRN        RRN1                           READ  
0321.00 C                   SETOFF                                       50              
0322.00 C     EQLKEY        READE     FRIKAE                                 50          
0323.00 C*( 終り )                                                                       
0324.00 C     *IN50         IFEQ      *ON                                          EOF   
0325.00 C                   MOVE      'E'           EOF                                  
0326.00 C                   SETOFF                                       1129            
0327.00 C                   SETON                                        45              
0328.00 C                   EXSR      SFLINZ                                             
0329.00 C                   ELSE                                                   EOF   
0330.00 C     RRN1          IFEQ      TOPRRN                                             
0331.00 C                   MOVE      MIDDTA        MIDSAV                               
0332.00 C                   Z-ADD     RRN1          DSPREC                               
0333.00 C                   EXSR      MIDCHK                                             
0334.00 C                   ENDIF                                                        
0335.00 C                   Z-ADD     FRKING        FBKING                               
0336.00 C                   ADD       FRKING        GOKEI                               
0337.00 C*( CHECK  : READ したレコードの妥当性検査 )                                    
0338.00 C                   EXSR      CHECK                                             
0339.00 C                   ENDIF                                                  EOF  
0340.00 C*( 行 NO に入れる )                                                            
0341.00 C                   MOVE      RRN1          GYO                                 
0342.00 C*( サブ・ファイルへ更新 )                                                      
0343.00 C*----------------------------------------------------+                         
0344.00 C                   WRITE     SFREC01                                      |    
0345.00 C*----------------------------------------------------+                         
0346.00 C                   ENDDO                                                  READ 
0347.00 C                   MOVE      MIDSAV        MIDDTA                              
0348.00 C     REDEND        ENDSR                                                       
0349.00 C******************************************************                         
0350.00 C     CHECK         BEGSR                                                       
0351.00 C******************************************************                         
0352.00 C*( 明細チエック )                                                              
0353.00 C*----------------------------------------------------*                         
0354.00 C*( FRKRCD    :  借方科目コード     :( CHAIN ファイル )                         
0355.00 C*----------------------------------------------------*                         
0356.00 C                   MOVE      *BLANKS       FRKRNM                              
0357.00 C                   SETOFF                                       99             
0358.00 C     FRKRCD        CHAIN     KAMOKU                             99             
0359.00 C   99              SETON                                        66             
0360.00 C   99              GOTO      CHKEND                                    
0361.00 C                   MOVE      KMNAME        FRKRNM                      
0362.00 C*----------------------------------------------------*                 
0363.00 C*( FRKSCD    :  貸方科目コード     :( CHAIN ファイル )                 
0364.00 C*----------------------------------------------------*                 
0365.00 C                   MOVE      *BLANKS       FRKSNM                      
0366.00 C                   SETOFF                                       99     
0367.00 C     FRKSCD        CHAIN     KAMOKU                             99     
0368.00 C   99              SETON                                        67     
0369.00 C   99              GOTO      CHKEND                                    
0370.00 C                   MOVE      KMNAME        FRKSNM                      
0371.00 C     CHKEND        ENDSR                                               
0372.00 C******************************************************                 
0373.00 C     DATCHK        BEGSR                                               
0374.00 C******************************************************                 
0375.00 C*( 日付 チエック サブ・ルーチン )       FOR YY/MM/DD                             
0376.00 C                   MOVE      *IN51         IN51              1         
0377.00 C                   MOVE      *IN52         IN52              1         
0378.00 C     DATE          MULT      .0001         #YEAR             2 0    99 
0379.00 C**                   SUB  88        #YEAR              平成            
0380.00 C  N99DATE          MULT      .01           #MONTH            2 0    99 
0381.00 C  N99              Z-ADD     DATE          #DAY              2 0    99 
0382.00 C  N99#MONTH        COMP      12                                 99     
0383.00 C  N99#YEAR         MULT      .25           #CHKLY            1 1    50 
0384.00 C  N99#MONTH        COMP      2                                      51     
0385.00 C  N99#MONTH        MULT(H)   1.07          #MONTH                          
0386.00 C  N99#MONTH        DIV       2             #CHKLY                   52     
0387.00 C  N99                                                                      
0388.00 CANN51                                                                      
0389.00 CAN 52#DAY          COMP      30                                 99         
0390.00 C  N99                                                                      
0391.00 CANN51                                                                      
0392.00 CANN52#DAY          COMP      31                                 99         
0393.00 C  N99                                                                      
0394.00 CAN 51                                                                      
0395.00 CANN50#DAY          COMP      28                                 99         
0396.00 C  N99                                                                      
0397.00 CAN 51                                                                      
0398.00 CAN 50#DAY          COMP      29                                 99         
0399.00 C                   MOVE      IN51          *IN51                           
0400.00 C                   MOVE      IN52          *IN52                           
0401.00 C     DATEND        ENDSR                                                   
0402.00 C******************************************************                     
0403.00 C     SFLCLR        BEGSR                                                   
0404.00 C******************************************************                     
0405.00 C*( サブ・ファイルのクリヤー )                                              
0406.00 C*----------------------------------------------------+                     
0407.00 C                   SETON                                        44        |
0408.00 C                   WRITE     SFCTL01                                      |      
0409.00 C                   SETOFF                                       44        |      
0410.00 C*----------------------------------------------------+                           
0411.00 C                   ENDSR                                                         
0412.00 C******************************************************                           
0413.00 C     SFLDLT        BEGSR                                                         
0414.00 C******************************************************                           
0415.00 C*( サブ・ファイルの削除 )                                                        
0416.00 C*----------------------------------------------------+                           
0417.00 C                   SETON                                        46        |      
0418.00 C                   WRITE     SFCTL01                                      |      
0419.00 C                   SETOFF                                       46        |      
0420.00 C*----------------------------------------------------+                           
0421.00 C                   ENDSR                                                         
0422.00 C******************************************************                           
0423.00 C     SFLINZ        BEGSR                                                         
0424.00 C******************************************************                           
0425.00 C*( サブ・ファイルの初期化 )                                                      
0426.00 C                   CLEAR                   SFREC01                               
0427.00 C                   EXSR      INZVAR                                        初期値
0428.00 C                   ENDSR                                                         
0429.00 C******************************************************                           
0430.00 C     INZVAR        BEGSR                                                         
0431.00 C******************************************************                           
0432.00 C*( 初期値 )                                                                
0433.00 C                   MOVE      RRN1          FRGYO                           
0434.00 C                   ENDSR                                                   
0435.00 C******************************************************                     
0436.00 C     ROLLUP        BEGSR                                                   
0437.00 C******************************************************                     
0438.00 C                   SETOFF                                       45         
0439.00 C     ENDRRN        ADD       1             TOPRRN                          
0440.00 C                   Z-ADD     TOPRRN        DSPREC                          
0441.00 C                   EXSR      READ                                          
0442.00 C                   SETON                                        45         
0443.00 C     UPEND         ENDSR                                                   
0444.00 C******************************************************                     
0445.00 C     LRRTN         BEGSR                                                   
0446.00 C******************************************************                     
0447.00 C*( 終了画面 )                                                              
0448.00 C                   MOVE      'Y'           ANS                             
0449.00 C*----------------------------------------------------+                     
0450.00 C                   EXFMT     ENDOPT                                       |
0451.00 C*----------------------------------------------------+                     
0452.00 C                   SETOFF                                       99         
0453.00 C*( CF12 )- 前画面                                                          
0454.00 C     *IN12         IFEQ      *ON                                           
0455.00 C                   GOTO      LREND                                         
0456.00 C                   ENDIF                                           
0457.00 C*( 実行キー )                                                      
0458.00 C     ANS           IFEQ      'N'                                   
0459.00 C                   GOTO      LREND                                 
0460.00 C                   ENDIF                                           
0461.00 C*( LR- 終了 )                                                      
0462.00 C                   SETON                                        LR 
0463.00 C                   RETURN                                          
0464.00 C     LREND         ENDSR      


                                       

[解説]

赤字で示した部分が罫線レコードを表示する部分である。
紹介したようにTOOLBOXを使わなくても画面罫線を表示することができる。
画面や印刷においても罫線表示は日本独特のものであり米国など海外では罫線はほとんど
使用する慣習はない。

タイプライターに白紙の用紙を挿入してタイプするところを映画で見かけたことがある人も
多いと思う。
つまり罫線のない白紙に印刷することがタイプライター時代からの慣習となっている。
とこで今でも納品書や請求書もIBM iでも白紙に印刷出力することが多い。
5250エミュレータの海外輸入ソフトでも罫線をサポートしていないものが
ほとんどであるのはこのためである。

ご参考までにA4とかB5とかいう用紙サイズも日本独自のものであって海外にはこのような用紙規格は
存在しない。従って海外での複合機にもこの用紙サイズの設定はない。

IBM iのDDS解説書でもGRDBOXキー・ワードは通常の機能とは別扱いになっている。
IBM KnowledgeCenter GRDBOXの解説はこちらから