パネル・グループ(*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)