PANEL グループ

16. パネル・グループの構造

パネル・グループ(*PNLGRP)のソースなど見たこともない人が多いはずなので
最初にパネル・グループのソースから紹介する。
パネル・グループも SEU で QPNLSRC のような名前のソース・ファイルに
登録しておいてから CRTPNLGRP(パネル・グループの作成)というコマンドによって
オブジェクト: *PNLGRPを作成する。

それではパネル・グループのソースを紹介しよう。

[サンプル・パネル・グループのソース: PNL001PNL ]

ソースはこちらから

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=ANSCL                               
0008.00          BASETYPE='CHAR 1'.                       
0009.00 :ECLASS.                                          
0010.00 :CLASS   NAME=PNLNAMCL                            
0011.00          BASETYPE='CHAR 10'.                      
0012.00 :ECLASS.                                          
0013.00 :CLASS   NAME=CSRLSTCL                            
0014.00          BASETYPE='CHAR 10'.                      
0015.00 :ECLASS.                                          
0016.00 :CLASS   NAME=CSRVARCL                            
0017.00          BASETYPE='CHAR 10'.                      
0018.00 :ECLASS.                                          
0019.00 :CLASS   NAME=CSRPOSCL                            
0020.00          BASETYPE='BIN  15'.                      
0021.00 :ECLASS.                                          
0022.00 :CLASS   NAME=CSREIDCL                            
0023.00          BASETYPE='CHAR 4'.                       
0024.00 :ECLASS.                              
0025.00 :CLASS   NAME=CSRNAMECL               
0026.00          BASETYPE='CHAR 10'.          
0027.00 :ECLASS.                              
0028.00 :CLASS   NAME=ADDRCDCL                
0029.00          BASETYPE='ZONED 8 0'.        
0030.00 :ECLASS.                              
0031.00 :CLASS   NAME=CHGRCDCL                
0032.00          BASETYPE='ZONED 8 0'.        
0033.00 :ECLASS.                              
0034.00 :CLASS   NAME=DLTRCDCL                
0035.00          BASETYPE='ZONED 8 0'.        
0036.00 :ECLASS.                              
0037.00 :CLASS   NAME=CHA010                  
0038.00          BASETYPE='CHAR    10'.       
0039.00 :ECLASS.                              
0040.00 :CLASS   NAME=IGC024                  
0041.00          BASETYPE='IGC    24 OPEN'.   
0042.00 :ECLASS.                              
0043.00 :CLASS   NAME=ZON070                  
0044.00          BASETYPE='ZONED   7 0'.      
0045.00 :ECLASS.                              
0046.00 :CLASS   NAME=CHA004                  
0047.00          BASETYPE='CHAR     4'.       
0048.00 :ECLASS.                                          
0049.00 :CLASS   NAME=IGC014                              
0050.00          BASETYPE='IGC    14 OPEN'.               
0051.00 :ECLASS.                                          
0052.00 .*            -------------------------           
0053.00 .*                 変数の定義                     
0054.00 .*            -------------------------           
0055.00 :VAR     NAME=PNLNAM   CLASS=PNLNAMCL.            
0056.00 :VAR     NAME=ANS      CLASS=ANSCL.               
0057.00 :VAR     NAME=CSRLST   CLASS=CSRLSTCL.            
0058.00 :VAR     NAME=CSRPOS   CLASS=CSRPOSCL.            
0059.00 :VAR     NAME=CSRVAR   CLASS=CSRVARCL.            
0060.00 :VAR     NAME=CSREID   CLASS=CSREIDCL.            
0061.00 :VAR     NAME=CSRNAME  CLASS=CSRNAMECL.           
0062.00 :VAR     NAME=ADDRCD   CLASS=ADDRCDCL.            
0063.00 :VAR     NAME=CHGRCD   CLASS=CHGRCDCL.            
0064.00 :VAR     NAME=DLTRCD   CLASS=DLTRCDCL.            
0065.00 .*...( ユーザー変数定義 )...                      
0066.00 :VAR     NAME=SHCODE   CLASS=CHA010.              
0067.00 :VAR     NAME=SHNAME   CLASS=IGC024.              
0068.00 :VAR     NAME=SHTANK   CLASS=ZON070.              
0069.00 :VAR     NAME=SHSCOD   CLASS=CHA004.              
0070.00 :VAR     NAME=HNSNAM   CLASS=IGC014.              
0071.00 .*            -------------------------           
0072.00 .*                 レコードの定義                               
0073.00 .*            -------------------------                         
0074.00 :VARRCD  NAME=HEDRCD  VARS='SHCODE'.                            
0075.00 :VARRCD  NAME=DSPRCD  VARS='SHCODE SHNAME SHTANK SHSCOD HNSNAM'.
0076.00 :VARRCD  NAME=HNSRCD  VARS=HNSNAM.                              
0077.00 .*            -------------------------                         
0078.00 .*                 機能キーの定義                               
0079.00 .*            -------------------------                         
0080.00 :KEYL    NAME=HEDKEYL.                                          
0081.00 :KEYI    KEY=ENTER                                              
0082.00          HELP=ENTER                                             
0083.00          VARUPD=YES                                             
0084.00          ACTION=ENTER.                                          
0085.00 :KEYI    KEY=HELP                                               
0086.00          HELP=HELP                                              
0087.00          ACTION=HELP.                                           
0088.00 :KEYI    KEY=F3                                                 
0089.00          HELP=F3                                                
0090.00          ACTION='EXIT SET'                                      
0091.00          VARUPD=YES.                                            
0092.00 F3= 終了                                                        
0093.00 :EKEYL.                                                         
0094.00 :KEYL    NAME=DSPKEYL.                                          
0095.00 :KEYI    KEY=ENTER                                              
0096.00          HELP=ENTER                
0097.00          VARUPD=YES                
0098.00          ACTION=ENTER.             
0099.00 :KEYI    KEY=HELP                  
0100.00          HELP=HELP                 
0101.00          ACTION=HELP.              
0102.00 :KEYI    KEY=F3                    
0103.00          HELP=F3                   
0104.00          ACTION='EXIT SET'         
0105.00          VARUPD=NO.                
0106.00 F3= 終了                           
0107.00 :KEYI    KEY=F12                   
0108.00          HELP=F12                  
0109.00          ACTION='CANCEL SET'       
0110.00          VARUPD=NO.                
0111.00 F12= 取消し                        
0112.00 :KEYI    KEY=PAGEUP                
0113.00          HELP=PAGEUP               
0114.00          ACTION=PAGEUP.            
0115.00 :KEYI    KEY=PAGEDOWN              
0116.00          HELP=PAGEDOWN             
0117.00          ACTION=PAGEDOWN.          
0118.00 :EKEYL.                            
0119.00 :KEYL    NAME=ENDKEYL.             
0120.00 :KEYI    KEY=ENTER                                
0121.00          HELP=ENTER                               
0122.00          ACTION=ENTER.                            
0123.00 :KEYI    KEY=HELP                                 
0124.00          HELP=HELP                                
0125.00          ACTION=HELP.                             
0126.00 :KEYI    KEY=F3                                   
0127.00          HELP=F3                                  
0128.00          ACTION='EXIT SET'                        
0129.00          VARUPD=NO.                               
0130.00 F3= 終了                                          
0131.00 :KEYI    KEY=F12                                  
0132.00          HELP=F12                                 
0133.00          ACTION='CANCEL SET'                      
0134.00          VARUPD=NO.                               
0135.00 F12= 取消し                                       
0136.00 :EKEYL.                                           
0137.00 .*            -------------------------           
0138.00 .*                 ヘルプの定義                   
0139.00 .*            -------------------------           
0140.00 :HELP    NAME=DSPHEADH. 商品マスターの登録        
0141.00 :PC.                                              
0142.00  初期画面                                         
0143.00 :EHELP.                                           
0144.00 :HELP    NAME=DSPDTAH. 商品マスターの登録       
0145.00 :PC.                                            
0146.00  明細画面                                       
0147.00 :EHELP.                                         
0148.00 :HELP    NAME=DSPENDH. 商品マスターの登録       
0149.00 :PC.                                            
0150.00  終了画面                                       
0151.00 :EHELP.                                         
0152.00 .* STRHLPDFN      :  DO NOT REMOVE THIS LINE    
0153.00 :HELP    NAME=SHCODEH. 商品コード               
0154.00 :PC.                                            
0155.00  商品コード                                     
0156.00 :EHELP.                                         
0157.00 :HELP    NAME=SHNAMEH. 商品名                   
0158.00 :PC.                                            
0159.00  商品名                                         
0160.00 :EHELP.                                         
0161.00 :HELP    NAME=SHTANKH. 単価                     
0162.00 :PC.                                            
0163.00  単価                                           
0164.00 :EHELP.                                         
0165.00 :HELP    NAME=SHSCODH. 品種コード               
0166.00 :PC.                                            
0167.00  品種コード                                     
0168.00 :EHELP.                                       
0169.00 :HELP    NAME=HNSNAMH. 品種名                 
0170.00 :PC.                                          
0171.00  品種名                                       
0172.00 :EHELP.                                       
0173.00 .* ENDHLPDFN      :  DO NOT REMOVE THIS LINE  
0174.00 .*            -------------------------       
0175.00 .*               表 示 パ ネ ル           
0176.00 .*            -------------------------       
0177.00 .*    ------------------------                
0178.00 .*    DSPHEAD : 初期画面                      
0179.00 .*    ------------------------                
0180.00 :PANEL   NAME=DSPHEAD                         
0181.00          HELP='DSPHEADH'                      
0182.00          KEYL=HEDKEYL                         
0183.00          PANELID=PNLNAM                       
0184.00          ENTER='RETURN 27'                    
0185.00          CSRVAR=CSRVAR                        
0186.00          CSRPOS=CSRPOS                        
0187.00          CSRLST=CSRLST                        
0188.00          CSREID=CSREID                        
0189.00          CSRNAME=CSRNAME                      
0190.00          TOPSEP=NONE.                         
0191.00  商品マスターの登録                           
0192.00 :DATA    DEPTH=2                                                       
0193.00          HELP='DSPHEADH'                                               
0194.00          BOTSEP=NONE.                                                  
0195.00 :DATACOL WIDTH=58.                                                     
0196.00 :DATACOL WIDTH='*'.                                                    
0197.00 :EDATA.                                                                
0198.00 :DATA    DEPTH=10                                                      
0199.00          SCROLL=NO                                                     
0200.00          LAYOUT=1                                                      
0201.00          BOTSEP=SPACE.                                                 
0202.00 :DATACOL WIDTH=20.                                                     
0203.00 :DATACOL WIDTH='*'.                                                    
0204.00 .*                                                                     
0205.00 :DATAGRP GRPSEP=NONE                                                   
0206.00          COMPACT.                                                      
0207.00 .* DO                                                                  
0208.00 :DATAI   VAR=SHCODE                                                    
0209.00          HELP=SHCODEH                                                  
0210.00          USAGE=INOUT.                                                  
0211.00  商品コード                                                            
0212.00 .* END                                                                 
0213.00 :EDATAGRP.                                                             
0214.00 :BOTINST. 登録または変更するコードを打鍵して実行キーを押してください。 
0215.00 :EDATA.                                                                
0216.00 :EPANEL.                         
0217.00 .*    ------------------------   
0218.00 .*    DSPDTA01 : 明細画面        
0219.00 .*    ------------------------   
0220.00 :PANEL   NAME=DSPDTA01           
0221.00          HELP='DSPDTAH'          
0222.00          KEYL=DSPKEYL            
0223.00          PANELID=PNLNAM          
0224.00          ENTER='RETURN 27'       
0225.00          CSRVAR=CSRVAR           
0226.00          CSRPOS=CSRPOS           
0227.00          CSRLST=CSRLST           
0228.00          CSREID=CSREID           
0229.00          CSRNAME=CSRNAME         
0230.00          TOPSEP=NONE.            
0231.00  商品マスターの登録              
0232.00 :DATA    DEPTH=2                 
0233.00          HELP='DSPHEADH'         
0234.00          BOTSEP=NONE.            
0235.00 :DATACOL WIDTH=58.               
0236.00 :DATACOL WIDTH='*'.              
0237.00 :EDATA.                          
0238.00 :DATA    DEPTH=01                
0239.00          SCROLL=NO               
0240.00          LAYOUT=2               
0241.00          BOTSEP=NONE            
0242.00          COMPACT.               
0243.00 :DATACOL WIDTH=20.              
0244.00 :DATACOL WIDTH='*'.             
0245.00 .*                              
0246.00 :DATAGRP GRPSEP=NONE            
0247.00          COMPACT.               
0248.00 :DATAI   VAR=SHCODE             
0249.00          HELP=SHCODEH           
0250.00          USAGE=OUT.             
0251.00  商品コード                     
0252.00 :EDATAGRP.                      
0253.00 :EDATA.                         
0254.00 :DATA    DEPTH='*'              
0255.00          SCROLL=YES             
0256.00          LAYOUT=1               
0257.00          BOTSEP=NONE            
0258.00          COMPACT.               
0259.00 :DATACOL WIDTH=20.              
0260.00 :DATACOL WIDTH='*'.             
0261.00 :DATAI   VAR=SHNAME             
0262.00          HELP=SHNAMEH           
0263.00          USAGE=OUT.             
0264.00  商品名                                           
0265.00 :DATAI   VAR=SHTANK                               
0266.00          JUSTIFY=RIGHT                            
0267.00          HELP=SHTANKH                             
0268.00          USAGE=OUT.                               
0269.00  単価                                             
0270.00 :DATAI   VAR=SHSCOD                               
0271.00          HELP=SHSCODH                             
0272.00          USAGE=OUT.                               
0273.00  品種コード                                       
0274.00 :DATAIX  VAR=HNSNAM                               
0275.00          USAGE=OUT.                               
0276.00 :EDATA.                                           
0277.00 :EPANEL.                                          
0278.00                                                   
0279.00 :EPNLGRP.                                         
0280.00 .*      * * *    END   OF   PANEL GROUP     * * * 

[解説]

パネル・グループは HTMLと同じタグ言語でありHTMLの前からのものである。

パネル・グループのタグ名は :(ダブル・コロン)に始まり .(コロン)に終わる。
例えば

:PNLGRP. のような書き方である。

HTMLであれば のように表現する。

パネル・グループは開始は :PNLGRP. に始まって :EPNLGRP. で終わる。
画面は :PANEL から :EPANEL. のあいだに画面レコードを記述する。
いくつかの画面レコード(:PANEL.)を記述する前に前提として

 :CLASS. クラス記述 (変数の大きさとタイプを定義する)
:VAR 変数の定義 (CLASSを基盤として変数を定義する)
:VARRCD.変数レコード (プログラムとの変数値の受け渡しを定義する)
:KEYL. 機能キーの定義
:HELP. ヘルプの定義

という過程を経て :PANEL を定義する。
:HELP.まで定義するのは面倒だが :HELP.も仕様上、必須となっている。

[コンバイル]

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