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