PANEL グループ

19. SFLを表示する混合リスト・パネル

SFL(サブ・ファイル)を表示するタイプのパネル・グループを「混合リスト・パネル」と
呼ぶ。

[例: 商品マスターを表示するパネル・グループ]

                             商品マスターの照会                               
                                                                              
                                                                              
                                                                              
 №    商品コード    商品名                      単価    品種    品種名       
0001   NV-BS30S      目次ビデオ                 165000   0002    ビデオデッキ 
0002   NV-BS50S      ビデオ画王                 200000   0002    ビデオデッキ 
0003   NV-CF1        Cカセット編集ビデオ        58000   0002    ビデオデッキ 
0004   NV-CF2        薄型テレビ                  98000   0003    コンポ       
0005   NV-CF81       更新テスト                  58000   0004    エレクトーン 
0006   NV-CF9        漢字テスト                  19000   0002    ビデオデッキ 
0007   NV-F850       音声録画ビデオ             140000   0002    ビデオデッキ 
0008   NV-HK1        歌えるビデオ                90000   0002    ビデオデッキ 
0009   NV-H1T-S      みんなのビデオ              69800   0002    ビデオデッキ 
0010   NV-SX10       ビデオ画王                 115000   0002    ビデオデッキ 
0011   NV-W1         世界放送方式ビデオ         350000   0002    ビデオデッキ 
0012   RX-AZ1        液晶テレビ 80 インチ       300000   0001    カラーTV   
0013   RX-BZ1        液晶テレビ 55 インチ       100000   0002    ビデオデッキ 
0014   RX-DT75       CDラジオカセット          53800   0003    コンポ       
0015   SC-CH150      超ミニ・コンポ              70000   0003    コンポ       
0016   SC-CH505      パーソナル・ミニコンポ     100000   0003    コンポ       
                                                                      続く ...
F3= 終了                                                                      

混合リスト・パネルは

:LISTDEF タグによる次のようなリストの定義が必要になる。

0112.00 .*            -------------------------                            
0113.00 .*                 リストの定義                                    
0114.00 .*            -------------------------                            
0115.00 :LISTDEF NAME=SFL                                                  
0116.00  VARS='CHGVAR BDYHND LSTHND NO SHCODE SHNAME SHTANK SHSCOD HNSNAM' 
0117.00          CHGVAR=CHGVAR                                             
0118.00          MSGID=PNL0001                                             
0119.00          MSGF='PANELWKR/PNLMSG'.                                   

さらに表示部分は :DATAではなく:LIST を使って次のように定義する。

0213.00 .*    ------------------------               
0214.00 .*      リスト域の定義                       
0215.00 .*    ------------------------               
0216.00 :LIST    DEPTH='*'                           
0217.00          LISTDEF=SFL                         
0218.00          MAXHEAD=2                           
0219.00          BOTSEP=SPACE.                       
0220.00 .* STRLISTCOL     :  DO NOT REMOVE THIS LINE 
0221.00 :LISTCOL VAR=NO                              
0222.00          USAGE=OUT                           
0223.00          HELP=NOH                            
0224.00          MAXWIDTH=4.                         
0225.00  №                                          
0226.00 :LISTCOL VAR=SHCODE                          
0227.00          MAXWIDTH=0012                       
0228.00          HELP=ZHCODEH                        
0229.00          USAGE=OUT.                          
0230.00  商品コード                                  
0231.00 :LISTCOL VAR=SHNAME                          
0232.00          MAXWIDTH=0024                       
0233.00          HELP=SHNAMEH                        
0234.00          USAGE=OUT.        
0235.00  商品名                    
0236.00 :LISTCOL VAR=SHTANK        
0237.00          MAXWIDTH=0008     
0238.00          JUSTIFY=RIGHT     
0239.00          HELP=HZSURH       
0240.00          USAGE=OUT.        
0241.00  単価                      
0242.00 :LISTCOL VAR=SHSCOD        
0243.00          MAXWIDTH=0006     
0244.00          HELP=HZSURH       
0245.00          USAGE=OUT.        
0246.00  品種                      
0247.00 :LISTCOL VAR=HNSNAM        
0248.00          MAXWIDTH=0014     
0249.00          HELP=HZSURH       
0250.00          USAGE=OUT.        
0251.00  品種名                    
0252.00 :LISTVIEW LAYOUT=1         
0253.00          COLS='NO'         
0254.00          COLS='SHCODE'     
0255.00          COLS='SHNAME'     
0256.00          COLS='SHTANK'     
0257.00          COLS='SHSCOD'     
0258.00          COLS='HNSNAM'.
0259.00 :ELIST.                

のようにして定義する。
 全体のソースは次のとおりである。

[ 混合リスト・パネル: PNL003PNL :

ソースはこちらから

0001.00 :PNLGRP.                                           
0002.00 :COPYR .(C) COPYRIGHT OFFICE QUATTRO 2020.         
0003.00 :IMPORT  NAME='*' PNLGRP='QTRSRC/CMDHLP'.          
0004.00 .*            -------------------------            
0005.00 .*                 クラスの定義                    
0006.00 .*            -------------------------            
0007.00 :CLASS   NAME=EXITPGMCL                            
0008.00          BASETYPE='CHAR 20'.                       
0009.00 :ECLASS.                                           
0010.00 :CLASS   NAME=WNDPMTCL                             
0011.00          BASETYPE='CHAR 20'.                       
0012.00 :ECLASS.                                           
0013.00 :CLASS   NAME=TFRPNLCL                             
0014.00          BASETYPE='CHAR 20'.                       
0015.00 :ECLASS.                                           
0016.00 :CLASS   NAME=NOCL                                 
0017.00          BASETYPE='CHAR 4'.                        
0018.00 :ECLASS.                                           
0019.00 :CLASS   NAME=BDYHNDCL                             
0020.00          CHRID=NONE                                
0021.00          BASETYPE='CHAR 8'.                        
0022.00 :ECLASS.                                           
0023.00 :CLASS   NAME=LSTHNDCL                             
0024.00          CHRID=NONE                  
0025.00          BASETYPE='BIN 31'.          
0026.00 :ECLASS.                             
0027.00 :CLASS   NAME=CHGVARCL               
0028.00          BASETYPE='CHAR 1'.          
0029.00 :ECLASS.                             
0030.00 :CLASS   NAME=PNL003CL               
0031.00          BASETYPE='CHAR 20'.         
0032.00 :ECLASS.                             
0033.00 :CLASS   NAME=ANSCL                  
0034.00          BASETYPE='CHAR 1'.          
0035.00 :ECLASS.                             
0036.00 :CLASS   NAME=PNLNAMCL               
0037.00          BASETYPE='CHAR 10'.         
0038.00 :ECLASS.                             
0039.00 :CLASS   NAME=CSRLSTCL               
0040.00          BASETYPE='CHAR 10'.         
0041.00 :ECLASS.                             
0042.00 :CLASS   NAME=CSRVARCL               
0043.00          BASETYPE='CHAR 10'.         
0044.00 :ECLASS.                             
0045.00 :CLASS   NAME=CSRPOSCL               
0046.00          BASETYPE='BIN  15'.         
0047.00 :ECLASS.                             
0048.00 :CLASS   NAME=CSREIDCL                   
0049.00          BASETYPE='CHAR 4'.              
0050.00 :ECLASS.                                 
0051.00 :CLASS   NAME=CSRNAMECL                  
0052.00          BASETYPE='CHAR 10'.             
0053.00 :ECLASS.                                 
0054.00 :CLASS   NAME=ADDRCDCL                   
0055.00          BASETYPE='ZONED 8 0'.           
0056.00 :ECLASS.                                 
0057.00 :CLASS   NAME=CHGRCDCL                   
0058.00          BASETYPE='ZONED 8 0'.           
0059.00 :ECLASS.                                 
0060.00 :CLASS   NAME=DLTRCDCL                   
0061.00          BASETYPE='ZONED 8 0'.           
0062.00 :ECLASS.                                 
0063.00 :CLASS   NAME=CHA010                     
0064.00          BASETYPE='CHAR    10'.          
0065.00 :ECLASS.                                 
0066.00 :CLASS   NAME=IGC024                     
0067.00          BASETYPE='IGC    24 OPEN'.      
0068.00 :ECLASS.                                 
0069.00 :CLASS   NAME=ZON070                     
0070.00          BASETYPE='ZONED   7 0'.         
0071.00 :ECLASS.                                 
0072.00 :CLASS   NAME=CHA004                          
0073.00          BASETYPE='CHAR     4'.               
0074.00 :ECLASS.                                      
0075.00 :CLASS   NAME=IGC014                          
0076.00          BASETYPE='IGC    14 OPEN'.           
0077.00 :ECLASS.                                      
0078.00 .*            -------------------------       
0079.00 .*                 変数の定義                 
0080.00 .*            -------------------------       
0081.00 :VAR     NAME=EXITPGM  CLASS=EXITPGMCL.       
0082.00 :VAR     NAME=WNDPMT   CLASS=WNDPMTCL.        
0083.00 :VAR     NAME=TFRPNL   CLASS=WNDPMTCL.        
0084.00 :VAR     NAME=NO       CLASS=NOCL.            
0085.00 :VAR     NAME=PNL003   CLASS=PNL003CL.        
0086.00 :VAR     NAME=PNLNAM   CLASS=PNLNAMCL.        
0087.00 :VAR     NAME=BDYHND   CLASS=BDYHNDCL.        
0088.00 :VAR     NAME=LSTHND   CLASS=LSTHNDCL.        
0089.00 :VAR     NAME=CHGVAR   CLASS=CHGVARCL.        
0090.00 :VAR     NAME=CSRLST   CLASS=CSRLSTCL.        
0091.00 :VAR     NAME=CSRPOS   CLASS=CSRPOSCL.        
0092.00 :VAR     NAME=CSRVAR   CLASS=CSRVARCL.        
0093.00 :VAR     NAME=CSREID   CLASS=CSREIDCL.        
0094.00 :VAR     NAME=CSRNAME  CLASS=CSRNAMECL.       
0095.00 :VAR     NAME=ADDRCD   CLASS=ADDRCDCL.        
0096.00 :VAR     NAME=CHGRCD   CLASS=CHGRCDCL.                             
0097.00 :VAR     NAME=DLTRCD   CLASS=DLTRCDCL.                             
0098.00 .*...( ユーザー変数定義 )...                                       
0099.00 :VAR     NAME=SHCODE   CLASS=CHA010.                               
0100.00 :VAR     NAME=SHNAME   CLASS=IGC024.                               
0101.00 :VAR     NAME=SHTANK   CLASS=ZON070.                               
0102.00 :VAR     NAME=SHSCOD   CLASS=CHA004.                               
0103.00 :VAR     NAME=HNSNAM   CLASS=IGC014.                               
0104.00 .*            -------------------------                            
0105.00 .*                 レコードの定義                                  
0106.00 .*            -------------------------                            
0107.00 :VARRCD  NAME=EXITRCD VARS='EXITPGM WNDPMT TFRPNL'.                
0108.00 :VARRCD  NAME=PGMRCD  VARS='PNL003'.                               
0109.00 :VARRCD  NAME=NORCD   VARS='NO'.                                   
0110.00 :VARRCD  NAME=SFLRCD  VARS='SHCODE SHNAME SHTANK SHSCOD HNSNAM'.   
0111.00 :VARRCD  NAME=HNSRCD  VARS=HNSNAM.                                 
0112.00 .*            -------------------------                            
0113.00 .*                 リストの定義                                    
0114.00 .*            -------------------------                            
0115.00 :LISTDEF NAME=SFL                                                  
0116.00  VARS='CHGVAR BDYHND LSTHND NO SHCODE SHNAME SHTANK SHSCOD HNSNAM' 
0117.00          CHGVAR=CHGVAR                                             
0118.00          MSGID=PNL0001                                             
0119.00          MSGF='PANELWKR/PNLMSG'.                                   
0120.00 .*            -------------------------       
0121.00 .*                 機能キーの定義             
0122.00 .*            -------------------------       
0123.00 :KEYL    NAME=DSPKEYL.                        
0124.00 :KEYI    KEY=ENTER                            
0125.00          HELP=ENTER                           
0126.00          VARUPD=YES                           
0127.00          ACTION=ENTER.                        
0128.00 :KEYI    KEY=HELP                             
0129.00          HELP=HELP                            
0130.00          ACTION=HELP.                         
0131.00 :KEYI    KEY=F3                               
0132.00          HELP=F3                              
0133.00          ACTION='EXIT SET'                    
0134.00          VARUPD=YES.                          
0135.00 F3= 終了                                      
0136.00 :KEYI    KEY=PAGEUP                           
0137.00          HELP=PAGEUP                          
0138.00          ACTION=PAGEUP.                       
0139.00 :KEYI    KEY=PAGEDOWN                         
0140.00          HELP=PAGEDOWN                        
0141.00          ACTION=PAGEDOWN.                     
0142.00 :EKEYL.                                       
0143.00 .*            -------------------------       
0144.00 .*                 ヘルプの定義                  
0145.00 .*            -------------------------          
0146.00 :HELP    NAME=DSPHEADH. 商品マスターの登録       
0147.00 :PC.                                             
0148.00  初期画面                                        
0149.00 :EHELP.                                          
0150.00 :HELP    NAME=DSPDTAH. 商品マスターの登録        
0151.00 :PC.                                             
0152.00  明細画面                                        
0153.00 :EHELP.                                          
0154.00 :HELP    NAME=DSPENDH. 商品マスターの登録        
0155.00 :PC.                                             
0156.00  終了画面                                        
0157.00 :EHELP.                                          
0158.00 .* STRHLPDFN      :  DO NOT REMOVE THIS LINE     
0159.00 :HELP    NAME=SHCODEH. 商品コード                
0160.00 :PC.                                             
0161.00  商品コード                                      
0162.00 :EHELP.                                          
0163.00 :HELP    NAME=SHNAMEH. 商品名                    
0164.00 :PC.                                             
0165.00  商品名                                          
0166.00 :EHELP.                                          
0167.00 :HELP    NAME=SHTANKH. 単価                      
0168.00 :PC.                                           
0169.00  単価                                          
0170.00 :EHELP.                                        
0171.00 :HELP    NAME=SHSCODH. 品種コード              
0172.00 :PC.                                           
0173.00  品種コード                                    
0174.00 :EHELP.                                        
0175.00 :HELP    NAME=HNSNAMH. 品種名                  
0176.00 :PC.                                           
0177.00  品種名                                        
0178.00 :EHELP.                                        
0179.00 .* ENDHLPDFN      :  DO NOT REMOVE THIS LINE   
0180.00 .*            -------------------------        
0181.00 .*               表 示 パ ネ ル            
0182.00 .*            -------------------------        
0183.00 .*    ------------------------                 
0184.00 .*    SFLCTL   : 明細画面                      
0185.00 .*    ------------------------                 
0186.00 :PANEL   NAME=SFLCTL                           
0187.00          HELP='DSPDTAH'                        
0188.00          KEYL=DSPKEYL                          
0189.00          PANELID=PNLNAM                        
0190.00          ENTER='RETURN 27'                     
0191.00          CSRVAR=CSRVAR                         
0192.00          CSRPOS=CSRPOS                          
0193.00          CSRLST=CSRLST                          
0194.00          CSREID=CSREID                          
0195.00          CSRNAME=CSRNAME                        
0196.00          TOPSEP=NONE.                           
0197.00  商品マスターの照会                             
0198.00 .* データ項目の表示                             
0199.00 :DATA    DEPTH=03                               
0200.00          HELP='DSPTOPH'                         
0201.00          SCROLL=NO                              
0202.00          LAYOUT=2                               
0203.00          BOTSEP=SPACE.                          
0204.00 :DATACOL WIDTH=14.                              
0205.00 :DATACOL WIDTH='*'.                             
0206.00 .*                                              
0207.00 :DATAGRP GRPSEP=NONE                            
0208.00          COMPACT.                               
0209.00 .* STRDTADATAI    :  DO NOT REMOVE THIS LINE    
0210.00 .* ENDDTADATAI    :  DO NOT REMOVE THIS LINE    
0211.00 :EDATAGRP.                                      
0212.00 :EDATA.                                         
0213.00 .*    ------------------------                  
0214.00 .*      リスト域の定義                          
0215.00 .*    ------------------------                  
0216.00 :LIST    DEPTH='*'                                
0217.00          LISTDEF=SFL                              
0218.00          MAXHEAD=2                                
0219.00          BOTSEP=SPACE.                            
0220.00 .* STRLISTCOL     :  DO NOT REMOVE THIS LINE      
0221.00 :LISTCOL VAR=NO                                   
0222.00          USAGE=OUT                                
0223.00          HELP=NOH                                 
0224.00          MAXWIDTH=4.                              
0225.00  №                                               
0226.00 :LISTCOL VAR=SHCODE                               
0227.00          MAXWIDTH=0012                            
0228.00          HELP=ZHCODEH                             
0229.00          USAGE=OUT.                               
0230.00  商品コード                                       
0231.00 :LISTCOL VAR=SHNAME                               
0232.00          MAXWIDTH=0024                            
0233.00          HELP=SHNAMEH                             
0234.00          USAGE=OUT.                               
0235.00  商品名                                           
0236.00 :LISTCOL VAR=SHTANK                               
0237.00          MAXWIDTH=0008                            
0238.00          JUSTIFY=RIGHT                            
0239.00          HELP=HZSURH                              
0240.00          USAGE=OUT.            
0241.00  単価                          
0242.00 :LISTCOL VAR=SHSCOD            
0243.00          MAXWIDTH=0006         
0244.00          HELP=HZSURH           
0245.00          USAGE=OUT.            
0246.00  品種                          
0247.00 :LISTCOL VAR=HNSNAM            
0248.00          MAXWIDTH=0014         
0249.00          HELP=HZSURH           
0250.00          USAGE=OUT.            
0251.00  品種名                        
0252.00 :LISTVIEW LAYOUT=1             
0253.00          COLS='NO'             
0254.00          COLS='SHCODE'         
0255.00          COLS='SHNAME'         
0256.00          COLS='SHTANK'         
0257.00          COLS='SHSCOD'         
0258.00          COLS='HNSNAM'.        
0259.00 :ELIST.                        
0260.00 :EPANEL.                       
0261.00                                
0262.00 :EPNLGRP.   


                    

[コンパイル]

CRTPNLGRP PNLGRP(QTROBJ/PNL003PNL) SRCFILE(QTRSRC/QPNLSRC) AUT(*ALL)

それではオブジェクト指向によるSFL