Windows がこれほど普及している現在で RPG プログラムでも
マウスで操作させたいと思うのは当然である。
かのスティーブ・ジョブズは XEROX 社のマウスを初めて見たときに
「なぜマウスを商品化しないのか?!」と驚いたそうである。
Windows ではマウスを操作しない日はないが私達の 5250 エミュレータの
世界ではエンド・ユーザーにマウス操作を提供している機会は
少ないのではないだろうか?
例えば、項目を選択するのに 「1=選択」 のように入力させたり
機能キーを押させる操作よりはマウスでクリックするほうが
はるかにやさしく洗練されている操作であると言える。
5250 エミュレータで GUI コントロールを表現するには
仮想端末 API に 5250 表示装置が GUI コントロールをサポートしている端末であると
宣言しなければならない。
PCOMM や CA400 (=iAccess,= Client Access) では GUI コントロール・サポートの
フラグはオンではないので GUI コントロールを表現することができない。
AutoWeb ではGUI コントロール・サポートのフラグがオンであるので
様々な GUI コントロールを表現することができるのである。
ところがマウスに関しては DSPF の DDS キー・ワードだけで
マウスが使えるようになるのでここで紹介する。
IBM はマウス操作でロール・アップ / ダウンの操作を紹介しているが
マウスのクリックによるスクロール操作は Windows やブラウザでも例がないので
マウスを使うサンプルとしては説得力に欠けるのである。
ここではマウス・クリックによる POPUP 表示の例を紹介する。
あなたの適用業務をよりスタイリッシュなものにすることは間違いない。
マウスでクリックすると POPUP 表示される。
: A MOUBTN(*ULP CF04) :
これはレコード・レベルでマウスをクリックすると CF04 キーを押したことになり
なおかつマウス・カーソル (=正しくは) の位置もプログラムに伝える。
0001.00 A*%%TS SD 20070731 210529 QTR REL-V5R4M0 5722-WDS
0002.00 A*-----------------------------------------------*
0003.00 A* SFLENT : サブ・ファイル入力
0004.00 A*
0005.00 A* 受注の入力
0006.00 A*
0007.00 A* CRTEXDSPF QTROBJ/PGM201FM +
0008.00 A* SRCFILE(QTRSRC/QDSPSRC) LVLCHK(*NO) AUT(*ALL)
0009.00 A*-----------------------------------------------*
0010.00 A DSPSIZ(27 132 *DS4 24 80 *DS3)
0011.00 A *DS4 MSGLOC(27)
0012.00 A *DS3 MSGLOC(24)
0013.00 A PRINT
0014.00 A HELP
0015.00 A ALTHELP(CA01)
0016.00 A HLPPNLGRP(PGM201H QTROBJ/PGM201H)
0017.00 A HLPTITLE(' 受注の入力 ')
0018.00 A R DSPHEAD
0019.00 A TEXT(' 初期画面 ')
0020.00 A CF03(03 ' 終了 ')
0021.00 A SETOF(99)
0022.00 A BLINK
0023.00 A H HLPARA(2 12 2 17)
0024.00 A HLPPNLGRP('PGM201/JUCNO' -
0025.00 A QTROBJ/PGM201H)
0026.00 A 1 27' 受注の入力 '
0027.00 A DSPATR(HI)
0028.00 A* COLOR(PNK)
0029.00 A 2 2' 受注№ '
0030.00 A JUCNO 5Y 0B 2 12TEXT(' 受注№ ')
0031.00 A CHECK(RZ)
0032.00 A CHECK(ER)
0033.00 A 11 15' 必要な項目を打鍵して実行キーを押 +
0034.00 A して下さい。 '
0035.00 A* DSPATR(HI)
0036.00 A 11 63HTML('<IMG SRC="/AS400-NET.USR/IMAG+
0037.00 A E/AUTOWEB.GIF">')
0038.00 A 23 2'F3= 終了 '
0039.00 A COLOR(BLU)
0040.00 A 24 2' これはメッセージ・テストです '
0041.00 A R SFREC01 SFL
0042.00 A TEXT(' SFLレコード ')
0043.00 A 20
0044.00 AO 99 SFLNXTCHG
0045.00 A GYO 4A B 9 2TEXT(' № ')
0046.00 A 03 DSPATR(UL)
0047.00 A JHCODE R B 9 7REFFLD(SHOHINR/SHCODE QTRFIL/SHOHIN)
0048.00 A TEXT('*POPUP SHCODE,SHNAME,SHTANK')
0049.00 A 66 DSPATR(PC)
0050.00 A 66 DSPATR(RI)
0051.00 A SHNAME R O 9 18REFFLD(SHOHINR/SHNAME QTRFIL/SHOHIN)
0052.00 A TEXT(' 商品名 ')
0053.00 A JUSUR 3Y 0B 9 48TEXT(' 受注数 ')
0054.00 A EDTCDE(Z)
0055.00 A CHECK(RB)
0056.00 A DSPATR(CS)
0057.00 A 71 DSPATR(PC)
0058.00 A JUTANK R 7Y 0B 9 55REFFLD(SHOHINR/SHTANK QTRFIL/SHOHIN)
0059.00 A TEXT(' 単価 ')
0060.00 A EDTCDE(K)
0061.00 A CHECK(RB)
0062.00 A DSPATR(CS)
0063.00 A JUKING 7Y 0B 9 67TEXT(' 受注金額 ')
0064.00 A EDTCDE(K)
0065.00 A CHECK(RB)
0066.00 A DSPATR(CS)
0067.00 A ZKSU 5Y 0O 9 82TEXT(' 在庫数 ')
0068.00 A EDTCDE(K)
0069.00 A THSU 5Y 0O 9 92TEXT(' 手配数 ')
0070.00 A EDTCDE(K)
0071.00 A*
0072.00 A R SFCTL01 SFLCTL(SFREC01)
0073.00 A*%%TS SD 20070731 174853 QTR REL-V5R4M0 5722-WDS
0074.00 A SFLSIZ(0013)
0075.00 A *DS3 SFLSIZ(0011)
0076.00 A SFLPAG(0012)
0077.00 A *DS3 SFLPAG(0010)
0078.00 A TEXT(' SFLコントロール ')
0079.00 A ROLLUP(14 ' 次頁 ')
0080.00 A ROLLDOWN(15 ' 前頁 ')
0081.00 A CF03(03 ' 終了 ')
0082.00 A CF04(04 'プロンプト')
0083.00 A CF05(05 ' 照会 ')
0084.00 A CF10(10 ' 更新 ')
0085.00 A CF23(23 ' 削除 ')
0086.00 A CF12(12 ' 前画面 ')
0087.00 A SETOF(99)
0088.00 A BLINK
0089.00 A OVERLAY
0090.00 A 42 SFLDSP
0091.00 A 41 SFLDSPCTL
0092.00 A 43 SFLINZ
0093.00 A 46 SFLDLT
0094.00 A 44 SFLCLR
0095.00 A 45 SFLEND(*MORE)
0096.00 A* 45 SFLEND(*SCRBAR)
0097.00 A* SFLDROP(CF11)
0098.00 A MOUBTN(*ULP CF04)
0099.00 A 61 SFLMSGID(EDT0411 QPDA/QEDTMSG 61)
0100.00 A 62 SFLMSGID(EDT0410 QPDA/QEDTMSG 62)
0101.00 A 66 SFLMSGID(CPF9897 QSYS/QCPFMSG +
0102.00 A 66 &MSGDTA)
0103.00 A 67 SFLMSGID(CPD6A6D QSYS/QCPFMSG 67)
0104.00 A RTNCSRLOC(&RCD &FLD &CSRP)
0105.00 A H HLPARA(2 12 2 17)
0106.00 A HLPPNLGRP('PGM201/JUCNO' -
0107.00 A QTROBJ/PGM201H)
0108.00 A H HLPARA(4 17 4 20)
0109.00 A HLPPNLGRP('PGM201/JUTKCD' -
0110.00 A QTROBJ/PGM201H)
0111.00 A H HLPARA(3 71 3 78)
0112.00 A HLPPNLGRP('PGM201/JUDATE' -
0113.00 A QTROBJ/PGM201H)
0114.00 A H HLPARA(4 71 4 78)
0115.00 A HLPPNLGRP('PGM201/JUNOKI' -
0116.00 A QTROBJ/PGM201H)
0117.00 A H HLPARA(6 13 6 14)
0118.00 A HLPPNLGRP('PGM201/JUKBN' -
0119.00 A QTROBJ/PGM201H)
0120.00 A H HLPARA(6 45 6 46)
0121.00 A HLPPNLGRP('PGM201/JUSHOR' -
0122.00 A QTROBJ/PGM201H)
0123.00 A H HLPARA(6 68 6 71)
0124.00 A HLPPNLGRP('PGM201/JUTANT' -
0125.00 A QTROBJ/PGM201H)
0126.00 A H HLPARA(9 7 18 16)
0127.00 A HLPPNLGRP('PGM201/JHCODE' -
0128.00 A QTROBJ/PGM201H)
0129.00 A H HLPARA(9 48 18 50)
0130.00 A HLPPNLGRP('PGM201/JUSUR' -
0131.00 A QTROBJ/PGM201H)
0132.00 A H HLPARA(9 55 18 61)
0133.00 A HLPPNLGRP('PGM201/JUTANK' -
0134.00 A QTROBJ/PGM201H)
0135.00 A H HLPARA(9 67 18 73)
0136.00 A HLPPNLGRP('PGM201/JUKING' -
0137.00 A QTROBJ/PGM201H)
0138.00 A DSPREC 4S 0H SFLRCDNBR(CURSOR)
0139.00 A RCD 10A H
0140.00 A FLD 10A H
0141.00 A CSRP 4S 0H TEXT('SFL 表示 レコード № ')
0142.00 A MSGDTA 60A P
0143.00 A 1 27' 受注の入力 '
0144.00 A DSPATR(HI)
0145.00 A* COLOR(PNK)
0146.00 A DSPMOD 6A O 1 72DSPATR(HI)
0147.00 A 2 2' 受注№ '
0148.00 A JUCNO 5Y 0O 2 12TEXT(' 受注№ ')
0149.00 A 3 80' 受注日 '
0150.00 A *DS3 3 62
0151.00 A JUDATE 8Y 0B 3 89TEXT(' 受注日 ')
0152.00 A *DS3 3 71
0153.00 A 64 ERRMSG(' 受注日の誤りです。 -
0154.00 A ' 64)
0155.00 A* 編集コード :W を日付のフィールドとみなしてカレンダーを追加します。
0156.00 A EDTCDE(W)
0157.00 A 4 2' 得意先コード '
0158.00 A JUTKCD R 4A B 4 17TEXT('*POPUP TKCODE, TKNMJ, TKNM, -
0159.00 TKKBN')
0160.00 A REFFLD(TOKMASR/TKCODE QTRFIL/TOKMAS)
0161.00 A 63 ERRMSG(' 得意先コードの誤りです。 -
0162.00 A ' 63)
0163.00 A TKNAME R O 4 22REFFLD(TOKMASR/TKNMJ QTRFIL/TOKMAS)
0164.00 A 4 80' 納期 '
0165.00 A *DS3 4 62
0166.00 A JUNOKI 8Y 0B 4 89TEXT(' 納期 ')
0167.00 A *DS3 4 71
0168.00 A 65 ERRMSG(' 納期の誤りです。 -
0169.00 A ' 65)
0170.00 A* 編集コード :W を日付のフィールドとみなしてカレンダーを追加します。
0171.00 A EDTCDE(W)
0172.00 A 6 2' 受注区分 '
0173.00 A JUKBN 2 B 6 13
0174.00 A VALUES('01' '02')
0175.00 A TEXT('" 売上 " " 返品 "')
0176.00 A JUNAME 6A O 6 16
0177.00 A 08 DSPATR(ND)
0178.00 A 6 34' 処理区分 '
0179.00 A JUSHOR 2 B 6 45
0180.00 A VALUES('01' '02')
0181.00 A TEXT('" 今月 " " 来勘 "')
0182.00 A JSNAME 6A O 6 48
0183.00 A 08 DSPATR(ND)
0184.00 A 6 57' 担当者 '
0185.00 A JUTANT R 4A B 6 66REFFLD(TANTOMR/TACODE QTRFIL/TANTO)
0186.00 A TEXT('*COMBO *KEY')
0187.00 A TTNAM R 8A O 6 71REFFLD(TANTOMR/TTNAM QTRFIL/TANTO)
0188.00 A TEXT('*COMBO *DATA')
0189.00 A 8 2' № '
0190.00 A DSPATR(HI)
0191.00 A 8 7' 商品コード '
0192.00 A DSPATR(HI)
0193.00 A 8 21' 商品名 '
0194.00 A DSPATR(HI)
0195.00 A 8 45' 受注数 '
0196.00 A DSPATR(HI)
0197.00 A 8 57' 単価 '
0198.00 A DSPATR(HI)
0199.00 A 8 67' 受注金額 '
0200.00 A DSPATR(HI)
0201.00 A 8 81' 現在庫数 '
0202.00 A DSPATR(HI)
0203.00 A 8 92' 手配数 '
0204.00 A DSPATR(HI)
0205.00 A*
0206.00 A R DSPEND01
0207.00 A*%%TS SD 20070731 210529 QTR REL-V5R4M0 5722-WDS
0208.00 A TEXT(' 機能キーの表示 ')
0209.00 A OVERLAY
0210.00 A* PUTRETAIN
0211.00 A 23 2'F3= 終了 '
0212.00 A COLOR(BLU)
0213.00 A 23 17'F4= プロンプト '
0214.00 A COLOR(BLU)
0215.00 A 23 34'F10= 更新 '
0216.00 A COLOR(BLU)
0217.00 A 23 51'F23= 削除 '
0218.00 A COLOR(BLU)
0219.00 A 23 68'F12= 前画面 '
0220.00 A COLOR(BLU)
0221.00 A R ENDOPT
0222.00 A*%%TS SD 19930612 150356 NIK REL-V2R1M0 5738-PW1
0223.00 A TEXT(' 終了画面 ')
0224.00 A* CF03(03 ' 終了 ')
0225.00 A CSRLOC(LIN POS)
0226.00 A 1 34' 終了 '
0227.00 A COLOR(PNK)
0228.00 A DSPATR(HI)
0229.00 A 3 2' 処理されたレコード数 '
0230.00 A 5 10' 追加 . . . . . :'
0231.00 A ADDREC 5Y 0O 5 35EDTCDE(4)
0232.00 A 6 10' 変更 . . . . . :'
0233.00 A CHGREC 5Y 0O 6 35EDTCDE(4)
0234.00 A 7 10' 削除 . . . . . :'
0235.00 A DLTREC 5Y 0O 7 35EDTCDE(4)
0236.00 A 11 2' 選択項目を打鍵して,実行キーを押 +
0237.00 A してください。 '
0238.00 A COLOR(BLU)
0239.00 A 13 5' データ入力の終了 . . . . . .'
0240.00 A ANS 1A B 13 39VALUES('Y' 'N')
0241.00 A 13 53'Y=YES, N=NO'
0242.00 A 23 2'F3= 終了 '
0243.00 A COLOR(BLU)
0244.00 A 23 15'F12= 前画面 '
0245.00 A COLOR(BLU)
0246.00 A LIN 3S 0H
0247.00 A POS 3S 0H
注目はレコード : SFCTL01 に記述されている、
0098.00 A MOUBTN(*ULP CF04)
だけである。
0001.00 H DFTNAME(PGM201) DATEDIT(*YMD/)
0002.00 F********** 受注の入力 ******************************************
0003.00 FPGM201FM CF E WORKSTN
0004.00 F SFILE(SFREC01:RRN1)
0005.00 F INFDS(INFDS)
0006.00 FJUCHU UF A E K DISK
0007.00 FTOKMAS IF E K DISK
0008.00 FSHOHIN IF E K DISK
0009.00 FSHZAIKO IF E K DISK
0010.00 FTANTO IF E K DISK
0011.00 F*****************************************************************
0012.00
0013.00 * CRTBNDRPG QTROBJ/PGM201 SRCFILE(QTRSRC/QRPGLESRC)
0014.00 * DFTACTGRP(*NO) ACTGRP(*NEW) AUT(*ALL)
0015.00
0016.00 D AR S 1 DIM(80)
0017.00 D SAVDTA S 1 DIM(1024) SAVE-データ
0018.00 D*
0019.00 D* -( サブ・ファイル の ファイル 情報 )-
0020.00 D*
0021.00 D* SAVE-RESTORE のための ファイル の DATA-STRUCTURE
0022.00 D* 読み取り ファイル の FORMAT を外部 DS として READ
0023.00 D SAVEDS E DS EXTNAME(JUCHU)
0024.00 D DSPDTA 1 1024
0025.00 D DIM(1024) 入力 データ
0026.00 D INFDS DS
0027.00 D NUM_ROWS 152 153B 0
0028.00 D NUM_COLS 154 155B 0
0029.00 D NUM_RCDS 156 159I 0
0030.00 D*( カーソル の行と桁の取り込み )
0031.00 D LINE 370 371B 0
0032.00 D* TOPRRN: 今表示している サブ・ファイル の先頭の RRN
0033.00 D TOPRRN 378 379B 0
0034.00 D* BRRN : サブファイル の レコードNO ( 2 進数 )
0035.00 D BRRN 376 377B 0
0036.00 D*( WORK 日付 YYMMDD データ 構造 )
0037.00 D DATEDS DS
0038.00 D SRY 1 2 0
0039.00 D SRYMD 1 8 0
0040.00 D YYMMDD 3 8 0
0041.00 D YYMM 3 6 0
0042.00 D MMDD 5 8 0
0043.00 D YY 3 4 0
0044.00 D MM 5 6 0
0045.00 D DD 7 8 0
0046.00 D*( 在庫数の配列 )
0047.00 D DS
0048.00 D DDS001 E DS EXTNAME(TOKMAS)
0049.00 D DDS002 E DS EXTNAME(SHOHIN)
0050.00 D PNLOBJ DS
0051.00 D GRP 1 10
0052.00 D GRPLIB 11 20
0053.00 D* LIB名付きPGM名 *
0054.00 D JHCOD C CONST('JHCODE ')
0055.00 D ANS005 C CONST('QTROBJ/POP005')
0056.00 D WEBFAC C CONST('ASNET.COM/WEBFACE')
0057.00 D PGM101 C CONST('QTROBJ/PGM101')
0058.00 D MSG01 C CONST(' 商品コード ')
0059.00 D MSG02 C CONST(' の誤りです。 ')
0060.00
0061.00 C*
0062.00 C*( 初期画面 )
0063.00 C*----------------------------------------------------+
0064.00 C START TAG |
0065.00 C EXFMT DSPHEAD |
0066.00 C*----------------------------------------------------+
0067.00 C SETOFF 99
0068.00 C*( CF03 )- 終了
0069.00 C *IN03 IFEQ *ON CF03
0070.00 C SETON LR
0071.00 C LR EXSR LRRTN
0072.00 C LR RETURN
0073.00 C GOTO START
0074.00 C END CF03
0075.00 C*( CF05 )- 得意先マスターの登録
0076.00 C *IN05 IFEQ *ON CF05
0077.00 C CALL PGM101
0078.00 C GOTO START
0079.00 C END CF03
0080.00 C*( 実行キー )
0081.00 C* : KEYをファイルにセット
0082.00 C*----------------------------------------------------+
0083.00 C SETKEY KLIST |
0084.00 C KFLD JUCNO |
0085.00 C KFLD JUGYO |
0086.00 C*----------------------------------------------------+
0087.00 C MOVE *ZEROS JUGYO
0088.00 C EXSR SFLCLR
0089.00 C SETKEY SETLL JUCHU
0090.00 C* : ファイルの読み取り
0091.00 C MOVE ' 入力 ' DSPMOD 6
0092.00 C Z-ADD 1 TOPRRN
0093.00 C EXSR READ
0094.00 C Z-ADD 1 DSPREC
0095.00 C*( サブ・ファイルの表示 )
0096.00 C*----------------------------------------------------+
0097.00 C DSPLY TAG |
0098.00 C WRITE DSPEND01 |
0099.00 C SETON 4142 |SFL-DSPLY
0100.00 C EXFMT SFCTL01 |
0101.00 C SETOFF 4142 |
0102.00 C*----------------------------------------------------+
0103.00 C SETOFF 99
0104.00 C*( CF03 )- 終了
0105.00 C *IN03 IFEQ *ON CF03
0106.00 C SETON LR
0107.00 C LR EXSR LRRTN
0108.00 C LR RETURN
0109.00 C GOTO DSPLY
0110.00 C END CF03
0111.00 C*( CF04 )- プロンプト
0112.00 C *IN04 IFEQ *ON CF04
0113.00 C FLD IFEQ JHCOD
0114.00 C CSRP ANDGT *ZEROS
0115.00 C EXSR PROMPT
0116.00 C 99 GOTO DSPLY
0117.00 C ELSE
0118.00 C SETON 6799 ERR
0119.00 C GOTO DSPLY
0120.00 C END
0121.00 C END CF04
0122.00 C*
0123.00 C*( CF12 )- 前画面
0124.00 C *IN12 IFEQ *ON CF12
0125.00 C SETOFF 12
0126.00 C EXSR SFLDLT
0127.00 C EXSR CLEAR
0128.00 C GOTO START
0129.00 C END CF12
0130.00 C* |
0131.00 C*( ROLL UP )- 次ページ
0132.00 C *IN14 IFEQ *ON ROLLUP
0133.00 C EXSR ROLLUP
0134.00 C GOTO DSPLY
0135.00 C END ROLLUP
0136.00 C*-( ROLL DOWN )- 前ページ
0137.00 C *IN15 IFEQ *ON ROLLDOWN
0138.00 C Z-ADD 1 DSPREC
0139.00 C SETON 6299 ERRMSG
0140.00 C GOTO DSPLY
0141.00 C END ROLLDOWN
0142.00 C* |
0143.00 C TOPRRN IFNE *ZEROS
0144.00 C Z-ADD TOPRRN DSPREC
0145.00 C END
0146.00 C* : 見出し画面のチェック
0147.00 C N23 EXSR MIDCHK
0148.00 C 99 GOTO DSPLY
0149.00 C* : 見出し項目のSAVE
0150.00 C MOVE JUCNO MIB001
0151.00 C *LIKE DEFINE JUCNO MIB001
0152.00 C MOVE JUTKCD MIB002
0153.00 C *LIKE DEFINE JUTKCD MIB002
0154.00 C MOVE JUDATE MIB003
0155.00 C *LIKE DEFINE JUDATE MIB003
0156.00 C MOVE JUNOKI MIB004
0157.00 C *LIKE DEFINE JUNOKI MIB004
0158.00 C MOVE TKNAME MIB005
0159.00 C *LIKE DEFINE TKNAME MIB005
0160.00 C MOVE JUSHOR MIB006
0161.00 C *LIKE DEFINE JUSHOR MIB006
0162.00 C MOVE JSNAME MIB007
0163.00 C *LIKE DEFINE JSNAME MIB007
0164.00 C* : 明細画面のチェック
0165.00 C 1 DO *HIVAL RRN1 RRN1=1-*HIVAL
0166.00 C SETOFF 50
0167.00 C*( 実行キー )
0168.00 C N10
0169.00 CANN23 READC SFREC01 50
0170.00 C*
0171.00 C*( CF10 )- 更新
0172.00 C*( CF23 )- 削除
0173.00 C 10
0174.00 COR 23RRN1 CHAIN SFREC01 50
0175.00 C*
0176.00 C 50 GOTO RECEND
0177.00 C* : ブランク キー 入力の オミット
0178.00 C JHCODE IFEQ *BLANKS
0179.00 C JUKING ANDEQ *ZEROS
0180.00 C GOTO UPDBPS
0181.00 C END
0182.00 C Z-ADD BRRN DSPREC
0183.00 C MOVE MIB001 JUCNO
0184.00 C MOVE MIB002 JUTKCD
0185.00 C MOVE MIB003 JUDATE
0186.00 C MOVE MIB004 JUNOKI
0187.00 C MOVE MIB005 TKNAME
0188.00 C MOVE MIB006 JUSHOR
0189.00 C MOVE MIB006 JSNAME
0190.00 C N23 EXSR MIDCHK
0191.00 C* |
0192.00 C*---------------------+
0193.00 C* 入力明細行のチェック
0194.00 C*---------------------+
0195.00 C MOVEL GYO FLD1 1
0196.00 C FLD1 IFNE 'D' 削除 ?
0197.00 C *IN23 ANDNE '1'
0198.00 C MOVE RRN1 DSPREC 4 0 表示 RRN
0199.00 C EXSR CHECK
0200.00 C 99 GOTO SFLWRT
0201.00 C END
0202.00 C* |
0203.00 C*---------------------+
0204.00 C* データ・ベース更新
0205.00 C*---------------------+
0206.00 C* |
0207.00 C *IN10 IFEQ *ON F10,F23
0208.00 C *IN23 OREQ *ON
0209.00 C*----------------------------------------------------+
0210.00 C TRNKEY KLIST |
0211.00 C KFLD JUCNO |
0212.00 C KFLD JUGYO |
0213.00 C*----------------------------------------------------+
0214.00 C* : 更新キーを生成
0215.00 C*
0216.00 C MOVE DSPDTA SAVDTA
0217.00 C* : データ・ベース検索
0218.00 C EXSR CLEAR
0219.00 C SETOFF 90
0220.00 C TRNKEY CHAIN JUCHU 90
0221.00 C 90 GOTO ADDCHG
0222.00 C* |
0223.00 C* : 変更 / 削除
0224.00 C MOVEL GYO FLD1 1
0225.00 C FLD1 CABEQ 'D' TRNUPD 削除 ?
0226.00 C 23 GOTO TRNUPD
0227.00 C* |
0228.00 C* : 追加 / 変更
0229.00 C ADDCHG TAG
0230.00 C MOVE SAVDTA DSPDTA
0231.00 C MOVE MIB001 JUCNO
0232.00 C MOVE MIB002 JUTKCD
0233.00 C MOVE MIB003 JUDATE
0234.00 C MOVE MIB004 JUNOKI
0235.00 C MOVE MIB005 TKNAME
0236.00 C MOVE MIB006 JUSHOR
0237.00 C MOVE MIB006 JSNAME
0238.00 C* |
0239.00 C TRNUPD TAG
0240.00 C MOVEL GYO FLD1 1
0241.00 C FLD1 COMP 'D' 50
0242.00 C 23 SETON 50
0243.00 C* : データ・ベースへ追加・更新
0244.00 C*----------------------------------------------------+
0245.00 C 90
0246.00 CANN50 WRITE JUCHUR | ADD
0247.00 C N90
0248.00 CANN50 UPDATE JUCHUR | CHG
0249.00 C N90
0250.00 CAN 50 DELETE JUCHUR | DLT
0251.00 C*----------------------------------------------------+
0252.00 C N50 MOVE BRRN GYO
0253.00 C 90 ADD 1 ADDREC 5 0
0254.00 C N90
0255.00 CANN50 ADD 1 CHGREC 5 0
0256.00 C N90
0257.00 CAN 50 ADD 1 DLTREC 5 0
0258.00 C END F10,F23
0259.00 C* |
0260.00 C*---------------------+
0261.00 C* サブ・ファイル更新
0262.00 C*---------------------+
0263.00 C SFLWRT TAG
0264.00 C MOVE TOPRRN TOPSAV
0265.00 C*----------------------------------------------------+
0266.00 C UPDATE SFREC01 |
0267.00 C*----------------------------------------------------+
0268.00 C Z-ADD BRRN DSPREC
0269.00 C MOVE TOPSAV TOPRRN
0270.00 C UPDBPS TAG
0271.00 C 99 GOTO DSPLY エラー
0272.00 C END RRN1=1-*HIVAL
0273.00 C* : 実行キーの終了
0274.00 C RECEND TAG
0275.00 C* : コマンド部のチェック ( DSPEND01
0276.00 C N23 EXSR CMDCHK
0277.00 C 99 GOTO DSPLY
0278.00 C*
0279.00 C *IN10 IFEQ *ON
0280.00 C *IN23 OREQ *ON
0281.00 C GOTO START
0282.00 C END
0283.00 C GOTO DSPLY
0284.00 C*
0285.00 C END TAG
0286.00 C******************************************************
0287.00 C *INZSR BEGSR
0288.00 C******************************************************
0289.00 C* 初期 サイクル のみの実行
0290.00 C *LIKE DEFINE TOPRRN TOPSAV
0291.00 C CLEAR SAVEDS
0292.00 C MOVE *ZEROS JUDATE
0293.00 C MOVE *ZEROS JUNOKI
0294.00 C CLEAR DATEDS
0295.00 C MOVE 910101 DATE 6 0
0296.00 C*( U8 = HTML インターフェースで実行中 )
0297.00 C U8 SETON 08
0298.00 C N08NUM_COLS COMP 132 08
0299.00 C*( サブファイル END-FLAG を ON にする )
0300.00 C SETON 45
0301.00 C SETON 2310
0302.00 C SETOFF 2310
0303.00 C N08 MOVE 10 GYOSU 2 0 行数
0304.00 C 08 MOVE 12 GYOSU 行数
0305.00 C*( DS の数字 フィールド の クリヤー )
0306.00 C CLEAR SFREC01
0307.00 C MOVE 09 STRGYO 2 0 開始行№
0308.00 C Z-ADD UDATE JUDATE 初期値
0309.00 C Z-ADD 1 JUCNO
0310.00 C Z-ADD 0 CSRP
0311.00 C INZEND ENDSR
0312.00 C******************************************************
0313.00 C MIDCHK BEGSR
0314.00 C******************************************************
0315.00 C*( 見出しチェック )
0316.00 C*----------------------------------------------------*
0317.00 C*( JUTKCD : 得意先コード :( CHAIN ファイル )
0318.00 C*----------------------------------------------------*
0319.00 C MOVE *BLANKS TKNMJ
0320.00 C SETOFF 99
0321.00 C JUTKCD CHAIN TOKMAS 99
0322.00 C 99 SETON 63 99 ERRMSG
0323.00 C 99 GOTO MIDEND
0324.00 C MOVEL TKNMJ TKNAME
0325.00 C*
0326.00 C*----------------------------------------------------*
0327.00 C*( JUDATE : 受注日 :( DATCHK 日付 )
0328.00 C*----------------------------------------------------*
0329.00 C JUDATE IFEQ *ZEROS 省略値
0330.00 C MOVEL UDATE JUDATE
0331.00 C END 省略値
0332.00 C*
0333.00 C JUDATE IFNE *ZEROS IF-
0334.00 C MOVE JUDATE DATE 6 0
0335.00 C EXSR DATCHK
0336.00 C END ENDRTN
0337.00 C 99 SETON 64 ERRMSG
0338.00 C 99 GOTO MIDEND GOTO XXX
0339.00 C JUNOKI IFNE *ZEROS JUNOKI=
0340.00 C*----------------------------------------------------*
0341.00 C*( JUNOKI : 納期 :( DATCHK 日付 )
0342.00 C*----------------------------------------------------*
0343.00 C JUNOKI IFNE *ZEROS IF-
0344.00 C MOVE JUNOKI DATE 6 0
0345.00 C EXSR DATCHK
0346.00 C END ENDRTN
0347.00 C 99 SETON 65 ERRMSG
0348.00 C 99 GOTO MIDEND GOTO XXX
0349.00 C END
0350.00 C*----------------------------------------------------*
0351.00 C*( JUKBN : 受注区分
0352.00 C*----------------------------------------------------*
0353.00 C MOVE *BLANKS JUNAME
0354.00 C JUKBN IFNE *BLANKS
0355.00 C JUKBN IFEQ '01'
0356.00 C MOVE ' 売上 ' JUNAME
0357.00 C END
0358.00 C JUKBN IFEQ '02'
0359.00 C MOVE ' 返品 ' JUNAME
0360.00 C END
0361.00 C END
0362.00 C*----------------------------------------------------*
0363.00 C*( JUSHOR : 処理区分
0364.00 C*----------------------------------------------------*
0365.00 C MOVE *BLANKS JSNAME
0366.00 C JUSHOR IFNE *BLANKS
0367.00 C JUSHOR IFEQ '01'
0368.00 C MOVE ' 通常 ' JSNAME
0369.00 C END
0370.00 C JUSHOR IFEQ '02'
0371.00 C MOVE ' 来勘 ' JSNAME
0372.00 C END
0373.00 C END
0374.00 C*----------------------------------------------------*
0375.00 C*( JUTANT : 担当者コード :( CHAIN ファイル )
0376.00 C*----------------------------------------------------*
0377.00 C MOVE *BLANKS TTNAM
0378.00 C SETOFF 99
0379.00 C JUTANT CHAIN TANTO 99
0380.00 C 99 SETON 63 99 ERRMSG
0381.00 C 99 GOTO MIDEND
0382.00 C MIDEND ENDSR
0383.00 C******************************************************
0384.00 C READ BEGSR
0385.00 C******************************************************
0386.00 C*( データ・ベースの検索 )
0387.00 C*----------------------------------------------------+
0388.00 C EQLKEY KLIST |
0389.00 C KFLD JUCNO |
0390.00 C*----------------------------------------------------+
0391.00 C SETON 51
0392.00 C SETOFF 71
0393.00 C RTNRED TAG
0394.00 C*
0395.00 C TOPRRN ADD GYOSU ENDRRN 4 0
0396.00 C SUB 1 ENDRRN
0397.00 C*
0398.00 C Z-ADD TOPRRN DSPREC
0399.00 C TOPRRN DO ENDRRN RRN1 4 0 READ
0400.00 C SETOFF 50
0401.00 C EQLKEY READE JUCHU 50
0402.00 C *IN50 IFEQ *ON EOF
0403.00 C SETOFF 1129
0404.00 C CLEAR SFREC01
0405.00 C U8 SETON 08
0406.00 C N08NUM_COLS COMP 132 08
0407.00 C Z-ADD 0 SZZSU
0408.00 C ELSE EOF
0409.00 C MOVE ' 変更 ' DSPMOD
0410.00 C U8 SETON 08
0411.00 C N08NUM_COLS COMP 132 08
0412.00 C*( CHECK : READ した レコード の チェック )
0413.00 C 51 EXSR MIDCHK
0414.00 C EXSR CHECK
0415.00 C END EOF
0416.00 C*( 行 NO に入れる )
0417.00 C MOVE RRN1 GYO
0418.00 C MOVE TOPRRN TOPSAV
0419.00 C*( サブファイル へ更新 )
0420.00 C*----------------------------------------------------+
0421.00 C WRITE SFREC01 |
0422.00 C*----------------------------------------------------+
0423.00 C 51 MOVE RRN1 DSPREC
0424.00 C 51 SETOFF 51
0425.00 C Z-ADD RRN1 LSTRRN 4 0
0426.00 C MOVE TOPSAV TOPRRN
0427.00 C END READ
0428.00 C REDEND TAG
0429.00 C *IN11 IFEQ *ON
0430.00 C ENDRRN ADD 1 TOPRRN
0431.00 C GOTO RTNRED
0432.00 C END
0433.00 C ENDSR
0434.00 C******************************************************
0435.00 C CHECK BEGSR
0436.00 C******************************************************
0437.00 C*( 明細チェック )
0438.00 C MOVE GYO JUGYO
0439.00 C*----------------------------------------------------*
0440.00 C*( JHCODE : 商品 コード :( CHAIN ファイル )
0441.00 C*----------------------------------------------------*
0442.00 C CLEAR DDS002 外部 DS
0443.00 C SETOFF 99
0444.00 C JHCODE CHAIN SHOHIN 99
0445.00 C *IN99 IFEQ *ON
0446.00 C SETON 66 99 ERRMSG
0447.00 C MSG01 CAT(P) JHCODE:0 MSGDTA
0448.00 C CAT MSG02:0 MSGDTA
0449.00 C GOTO CHKEND
0450.00 C ENDIF
0451.00 C*
0452.00 C JUTANK IFEQ *ZEROS JUTANK=
0453.00 C Z-ADD SHTANK JUTANK
0454.00 C END
0455.00 C JUSUR MULT JUTANK JUKING
0456.00 C*----------------------------------------------------*
0457.00 C* SHZAIKO : 在庫マスターより在庫数を取得
0458.00 C* 在庫数は HTML にのみ表示されます
0459.00 C*----------------------------------------------------*
0460.00 C Z-ADD 0 SZZSU
0461.00 C SETOFF 99
0462.00 C JHCODE CHAIN SHZAIKO 99
0463.00 C SETOFF 99
0464.00 C Z-ADD SZZSU ZKSU
0465.00 C CHKEND ENDSR
0466.00 C******************************************************
0467.00 C CMDCHK BEGSR
0468.00 C******************************************************
0469.00 C* : コマンド部のチェック ( DSPEND01
0470.00 C READ DSPEND01 50
0471.00 C 50 GOTO CMDEND
0472.00 C CMDEND ENDSR
0473.00 C******************************************************
0474.00 C SFLCLR BEGSR
0475.00 C******************************************************
0476.00 C*( サブファイル の クリヤー )
0477.00 C*----------------------------------------------------+
0478.00 C SETON 44 |
0479.00 C WRITE SFCTL01 |
0480.00 C SETOFF 44 |
0481.00 C*----------------------------------------------------+
0482.00 C ENDSR
0483.00 C******************************************************
0484.00 C SFLDLT BEGSR
0485.00 C******************************************************
0486.00 C*( サブファイル の削除 )
0487.00 C*----------------------------------------------------+
0488.00 C SETON 46 |
0489.00 C WRITE SFCTL01 |
0490.00 C SETOFF 46 |
0491.00 C*----------------------------------------------------+
0492.00 C ENDSR
0493.00 C******************************************************
0494.00 C INZVAR BEGSR
0495.00 C******************************************************
0496.00 C*( 初期値 )
0497.00 C Z-ADD UDATE JUDATE 初期値
0498.00 C ENDSR
0499.00 C******************************************************
0500.00 C ROLLUP BEGSR
0501.00 C******************************************************
0502.00 C SETOFF 45
0503.00 C ENDRRN ADD 1 TOPRRN
0504.00 C EXSR READ
0505.00 C SETON 45
0506.00 C UPEND ENDSR
0507.00 C******************************************************
0508.00 C CLEAR BEGSR
0509.00 C******************************************************
0510.00 C *NOKEY CLEAR JUCHUR
0511.00 C EXSR INZVAR 初期値
0512.00 C ENDSR
0513.00 C*****************************************************
0514.00 C LRRTN BEGSR
0515.00 C*****************************************************
0516.00 C*( 終了画面 )
0517.00 C ADDREC IFGT *ZEROS
0518.00 C CHGREC ORGT *ZEROS
0519.00 C DLTREC ORGT *ZEROS
0520.00 C MOVE 'Y' ANS 1
0521.00 C*----------------------------------------------------+
0522.00 C EXFMT ENDOPT |
0523.00 C*----------------------------------------------------+
0524.00 C SETOFF 99
0525.00 C*( CF12 )- 前画面
0526.00 C *IN12 IFEQ *ON CF12
0527.00 C SETOFF 12LR
0528.00 C GOTO LREND
0529.00 C END CF12
0530.00 C*( 実行キー )
0531.00 C ANS IFEQ 'N'
0532.00 C SETOFF LR
0533.00 C GOTO LREND
0534.00 C END
0535.00 C END
0536.00 C*
0537.00 C LREND ENDSR
0538.00 C******************************************************
0539.00 C DATCHK BEGSR
0540.00 C******************************************************
0541.00 C*( 日付 チェック サブ・ルーチン ) FOR YY/MM/DD
0542.00 C MOVE *IN51 IN51 1
0543.00 C MOVE *IN52 IN52 1
0544.00 C DATE MULT .0001 #YEAR 2 0 99
0545.00 C** SUB 88 #YEAR 平成
0546.00 C N99DATE MULT .01 #MONTH 2 0 99
0547.00 C N99 Z-ADD DATE #DAY 2 0 99
0548.00 C N99#MONTH COMP 12 99
0549.00 C N99#YEAR MULT .25 #CHKLY 1 1 50
0550.00 C N99#MONTH COMP 2 51
0551.00 C N99#MONTH MULT(H) 1.07 #MONTH
0552.00 C N99#MONTH DIV 2 #CHKLY 52
0553.00 C N99
0554.00 CANN51
0555.00 CAN 52#DAY COMP 30 99
0556.00 C N99
0557.00 CANN51
0558.00 CANN52#DAY COMP 31 99
0559.00 C N99
0560.00 CAN 51
0561.00 CANN50#DAY COMP 28 99
0562.00 C N99
0563.00 CAN 51
0564.00 CAN 50#DAY COMP 29 99
0565.00 C MOVE IN51 *IN51
0566.00 C MOVE IN52 *IN52
0567.00 C DATEND ENDSR
0568.00 C******************************************************
0569.00 C PROMPT BEGSR
0570.00 C******************************************************
0571.00 C EXSR CURSOR
0572.00 C EXSR LINCHK
0573.00 C 99 GOTO DSPLY
0574.00 C*( ポップ・アップ・ウインドウ・パネルの呼出し )
0575.00 C*----------------------------------------------------+
0576.00 C CALL ANS005 |ウィンドウ 表示
0577.00 C PARM SEL001 10 |
0578.00 C*----------------------------------------------------+
0579.00 C*( 選択結果を更新 )
0580.00 C MOVEL SEL001 JHCODE
0581.00 C SEL001 IFNE *BLANKS
0582.00 C MOVE *ZEROS JUTANK
0583.00 C MOVE *ZEROS JUSUR
0584.00 C MOVE *ZEROS JUKING
0585.00 C EXSR CHECK
0586.00 C SETON 71
0587.00 C*----------------------------------------------------+
0588.00 C UPDATE SFREC01 |
0589.00 C*----------------------------------------------------+
0590.00 C SETOFF 71
0591.00 C END
0592.00 C ENDSR
0593.00 C*****************************************************
0594.00 C CURSOR BEGSR
0595.00 C*****************************************************
0596.00 C LINE DIV 256 LIN 3 0 ガメン の行数
0597.00 C MVR POS 3 0 ガメン の桁数
0598.00 C ENDSR
0599.00 C******************************************************
0600.00 C LINCHK BEGSR
0601.00 C******************************************************
0602.00 C STRGYO ADD GYOSU ENDGYO 2 0
0603.00 C SUB 1 ENDGYO
0604.00 C* カーソル は開始行と終了行とのあいだにあるか
0605.00 C LIN COMP STRGYO 50 50
0606.00 C 50LIN COMP ENDGYO 5050
0607.00 C* 94: カーソル が適切な位置になかった
0608.00 C N50 SETON 9967
0609.00 C 99 GOTO LINEND
0610.00 C LIN SUB STRGYO RRN1
0611.00 C ADD TOPRRN RRN1
0612.00 C SETOFF 90
0613.00 C RRN1 CHAIN SFREC01 90
0614.00 C 90 GOTO LINEND
0615.00 C Z-ADD RRN1 DSPREC
0616.00 C*( 更新する ファイル に CHAIN )
0617.00 C SETOFF 90
0618.00 C TRNKEY CHAIN(N) JUCHU 90
0619.00 C*( DUMMY EXCPT )
0620.00 C*----------------------------------------------------+
0621.00 C* N90 UPDATJUCHUR | CHG
0622.00 C*----------------------------------------------------+
0623.00 C LINEND ENDSR
CF04 キーを押したときには
0111.00 C*( CF04 )- プロンプト 0112.00 C *IN04 IFEQ *ON CF04 0113.00 C FLD IFEQ JHCOD 0114.00 C CSRP ANDGT *ZEROS 0115.00 C EXSR PROMPT 0116.00 C 99 GOTO DSPLY 0117.00 C ELSE 0118.00 C SETON 6799 ERR 0119.00 C GOTO DSPLY 0120.00 C END 0121.00 C END CF04
のようにして POPUP を表示しているがマウス操作を追加したからといっても
RPG は何ら変更を加えてはいない。