これからは実際の業務のサンプルをいくつか紹介していきたい。
最初はかんたんでわかりやすい
5250ハンドラー
による画面拡張のサンプルである。
[解説]
ご覧のように横方向へは1月~12月までの売上数量が表示されており
これは明らかに80桁はもちろん132桁もオーバーしている。
早速DSPFのDDSソースを紹介しよう。
[年間売上ヒストリー:SMP111FM ]
ソースはこちらから
0001.00 A*-----------------------------------------------* 0002.00 A* サブファイル表示 SMP111FM * 0003.00 A* 0004.00 A* 年間売上ヒストリー 0005.00 A* 0006.00 A* DSPSIZ(*FREE) を指定して 0007.00 A* CRTEXDSPF で作成するだけです。 ↓ 0008.00 A*-----------------------------------------------* 0009.00 A DSPSIZ(*FREE) 0010.00 A MSGLOC(24) 0011.00 A PRINT 0012.00 A HELP 0013.00 A ALTHELP(CA01) 0014.00 A HLPPNLGRP(SMP111H QTROBJ/SMP111H) 0015.00 A HLPTITLE(' 年間売上ヒストリー ') 0016.00 A*-----------------------------------------------* 0017.00 A R DSPHEAD 0018.00 A*-----------------------------------------------* 0019.00 A TEXT(' 初期画面 ') 0020.00 A CF03(03 ' 終了 ') 0021.00 A SETOF(99) 0022.00 A BLINK 0023.00 A CSRLOC(LIN POS) 0024.00 A PGM 10A O 1 2COLOR(BLU) 0025.00 A 1 27' 年間売上ヒストリー ' 0026.00 A DSPATR(HI) 0027.00 A 2 2' 商品コード ' 0028.00 A STRCOD 10A B 2 15TEXT(' 商品コード ') 0029.00 A 11 15' 必要な項目を打鍵して実行キーを押 + 0030.00 A して下さい。 ' 0031.00 A DSPATR(HI) 0032.00 A 23 2'F3= 終了 ' 0033.00 A COLOR(BLU) 0034.00 A LIN 3S 0H 0035.00 A POS 3S 0H 0036.00 * サブ・ファイル・レコード 0037.00 A R SFREC01 SFL 0038.00 A TEXT(' SFL明細行 ') 0039.00 A 20 0040.00 AO 99 SFLNXTCHG 0041.00 A GYO 4A O 6 2TEXT(' № ') 0042.00 A* 03 DSPATR(UL) 0043.00 A SHCODE 10A O 6 7TEXT(' 商品コード ') 0044.00 A SHNAME 24O O 6 18TEXT(' 商品名 ') 0045.00 A*( 1 段目の表示 ) 0046.00 A NHSU01 4Y 0O 6 45TEXT('1 月売上高 ') 0047.00 A EDTCDE(J) 0048.00 A NHSU02 4Y 0O 6 53TEXT('2 月売上高 ') 0049.00 A EDTCDE(J) 0050.00 A NHSU03 4Y 0O 6 61TEXT('3 月売上高 ') 0051.00 A EDTCDE(J) 0052.00 A NHSU04 4Y 0O 6 69TEXT('4 月売上高 ') 0053.00 A EDTCDE(J) 0054.00 A*( 2 段目の表示 ) 0055.00 A NHSU05 4Y 0O 6 77TEXT('5 月売上高 ') 0056.00 A EDTCDE(J) 0057.00 A NHSU06 4Y 0O 6 85TEXT('6 月売上高 ') 0058.00 A EDTCDE(J) 0059.00 A NHSU07 4Y 0O 6 93TEXT('7 月売上高 ') 0060.00 A EDTCDE(J) 0061.00 A NHSU08 4Y 0O 6101TEXT('8 月売上高 ') 0062.00 A EDTCDE(J) 0063.00 A*( 3 段目の表示 ) 0064.00 A NHSU09 4Y 0O 6109TEXT('9 月売上高 ') 0065.00 A EDTCDE(J) 0066.00 A NHSU10 4Y 0O 6117TEXT('10 月売上高 ') 0067.00 A EDTCDE(J) 0068.00 A NHSU11 4Y 0O 6125TEXT('11 月売上高 ') 0069.00 A EDTCDE(J) 0070.00 A NHSU12 4Y 0O 6132TEXT('12 月売上高 ') 0071.00 A EDTCDE(J) 0072.00 A R SFCTL01 SFLCTL(SFREC01) 0073.00 A SFLSIZ(0020) 0074.00 A SFLPAG(0010) 0075.00 A TEXT(' SFL制御見出 ') 0076.00 A OVERLAY 0077.00 A 41 SFLDSPCTL 0078.00 A 42 SFLDSP 0079.00 A 43 SFLINZ 0080.00 A SFLRNA 0081.00 A 44 SFLCLR 0082.00 A 45 SFLEND(*MORE) 0083.00 A 46 SFLDLT 0084.00 A ROLLUP(14 ' 次頁 ') 0085.00 A ROLLDOWN(15 ' 前頁 ') 0086.00 A CF03(03 ' 終了 ') 0087.00 A CF12(12 ' 前画面 ') 0088.00 A SETOF(99) 0089.00 A BLINK 0090.00 A H HLPARA(6 7 22 17) 0091.00 A HLPPNLGRP('SMP111/SHCODE' - 0092.00 A QTROBJ/SMP111H) 0093.00 A H HLPARA(6 18 22 42) 0094.00 A HLPPNLGRP('SMP111/SHNAME' - 0095.00 A QTROBJ/SMP111H) 0096.00 A H HLPARA(6 45 22 72) 0097.00 A HLPPNLGRP('SMP111/NHSU01' - 0098.00 A QTROBJ/SMP111H) 0099.00 A PGM 10A O 1 2COLOR(BLU) 0100.00 A 61 ERRMSGID(EDT0411 QPDA/QEDTMSG 61) 0101.00 A 62 ERRMSGID(EDT0410 QPDA/QEDTMSG 62) 0102.00 A 63 ERRMSGID(QRY1902 QQRYMSG 63) 0103.00 A 64 ERRMSGID(QRY1903 QQRYMSG 64) 0104.00 A DSPREC 4S 0H SFLRCDNBR(CURSOR) 0105.00 A TEXT('SFL 表示 レコード № ') 0106.00 A LIN 3S 0H TEXT('カーソル 位置合せ - 行 ') 0107.00 A POS 3S 0H TEXT('カーソル 位置合せ - 桁 ') 0108.00 A 1 27' 年間売上ヒストリー ' 0109.00 A DSPATR(HI) 0110.00 A 1121' システム ' 0111.00 A 1132SYSNAME 0112.00 A 2121' 日付 ' 0113.00 A 2130DATE(*YY) EDTCDE(W) 0114.00 A 3121' 時刻 ' 0115.00 A 3132TIME 0116.00 A 4121' ユーザー ' 0117.00 A 4132USER 0118.00 A*( 明細行の桁見出し ) 0119.00 A 5 2' № ' 0120.00 A DSPATR(HI) 0121.00 A* エラー 標識 :61 - 69 0122.00 A 5 7' 商品コード ' 0123.00 A DSPATR(HI) 0124.00 A 5 20' 商品名 ' 0125.00 A DSPATR(HI) 0126.00 A*( 1 段目の表示 ) 0127.00 A 5 45' 1 月 ' 0128.00 A DSPATR(HI) 0129.00 A 5 53' 2 月 ' 0130.00 A DSPATR(HI) 0131.00 A 5 61' 3 月 ' 0132.00 A DSPATR(HI) 0133.00 A 5 69' 4 月 ' 0134.00 A DSPATR(HI) 0135.00 A*( 2 段目の表示 ) 0136.00 A 5 77' 5 月 ' 0137.00 A DSPATR(HI) 0138.00 A 5 85' 6 月 ' 0139.00 A DSPATR(HI) 0140.00 A 5 93' 7 月 ' 0141.00 A DSPATR(HI) 0142.00 A 5101' 8 月 ' 0143.00 A DSPATR(HI) 0144.00 A*( 3 段目の表示 ) 0145.00 A 5109' 9 月 ' 0146.00 A DSPATR(HI) 0147.00 A 5117'10 月 ' 0148.00 A DSPATR(HI) 0149.00 A 5125'11 月 ' 0150.00 A DSPATR(HI) 0151.00 A 5133'12 月 ' 0152.00 A DSPATR(HI) 0153.00 A*( 見出しの項目 ) 0154.00 A R NOREC 0155.00 A TEXT(' MSG : レコードなし ') 0156.00 A OVERLAY 0157.00 A CF03(03 ' 終了 DEBUG') 0158.00 A 10 5'( 検索されて見つかったレコードが - 0159.00 A ない。 )' 0160.00 A DSPATR(HI) 0161.00 A 16 5' 処理を続けるために実行キーを押し - 0162.00 A なさい。 ' 0163.00 A DSPATR(HI) 0164.00 A R DSPEND01 0165.00 A TEXT(' 機能キーの表示 ') 0166.00 A OVERLAY 0167.00 A CF03(03 ' 終了 ') 0168.00 A SLNO(*VAR) 0169.00 A SLNO 2Y 0H 0170.00 A 23 2'F3= 終了 ' 0171.00 A COLOR(BLU) 0172.00 A 23 19'F12= 前画面 ' 0173.00 A COLOR(BLU) 0174.00 A 23 72'F1= 説明 ' 0175.00 A COLOR(BLU)
[解説]
まず最初に
0009.00 A DSPSIZ(*FREE)
によって表示サイズは *FREEであることを宣言している。
もちろんこれはIBMでは認められていないが AutoWebでは有効である。
次に
0036.00 * サブ・ファイル・レコード 0037.00 A R SFREC01 SFL 0038.00 A TEXT(' SFL明細行 ') : 0054.00 A*( 2 段目の表示 ) 0055.00 A NHSU05 4Y 0O 6 77TEXT('5 月売上高 ') 0056.00 A EDTCDE(J) 0057.00 A NHSU06 4Y 0O 6 85TEXT('6 月売上高 ') 0058.00 A EDTCDE(J) 0059.00 A NHSU07 4Y 0O 6 93TEXT('7 月売上高 ') 0060.00 A EDTCDE(J) 0061.00 A NHSU08 4Y 0O 6101TEXT('8 月売上高 ') 0062.00 A EDTCDE(J) 0063.00 A*( 3 段目の表示 ) 0064.00 A NHSU09 4Y 0O 6109TEXT('9 月売上高 ') 0065.00 A EDTCDE(J) 0066.00 A NHSU10 4Y 0O 6117TEXT('10 月売上高 ') 0067.00 A EDTCDE(J) 0068.00 A NHSU11 4Y 0O 6125TEXT('11 月売上高 ') 0069.00 A EDTCDE(J) 0070.00 A NHSU12 4Y 0O 6132TEXT('12 月売上高 ') 0071.00 A EDTCDE(J)
と 80桁をオーバーして
0057.00 A NHSU06 4Y 0O 6 85TEXT('6 月売上高 ') 0058.00 A EDTCDE(J) 0059.00 A NHSU07 4Y 0O 6 93TEXT('7 月売上高 ') 0060.00 A EDTCDE(J) 0061.00 A NHSU08 4Y 0O 6101TEXT('8 月売上高 ') 0062.00 A EDTCDE(J) :
のように普通に記述している。
0072.00 A R SFCTL01 SFLCTL(SFREC01) 0073.00 A SFLSIZ(0020) 0074.00 A SFLPAG(0010) 0075.00 A TEXT(' SFL制御見出 ') : 0135.00 A*( 2 段目の表示 ) 0136.00 A 5 77' 5 月 ' 0137.00 A DSPATR(HI) 0138.00 A 5 85' 6 月 ' 0139.00 A DSPATR(HI) 0140.00 A 5 93' 7 月 ' 0141.00 A DSPATR(HI) 0142.00 A 5101' 8 月 ' 0143.00 A DSPATR(HI) 0144.00 A*( 3 段目の表示 ) 0145.00 A 5109' 9 月 ' 0146.00 A DSPATR(HI) 0147.00 A 5117'10 月 ' 0148.00 A DSPATR(HI) 0149.00 A 5125'11 月 ' 0150.00 A DSPATR(HI) 0151.00 A 5133'12 月 ' 0152.00 A DSPATR(HI)
のように 80桁はオーバーしているがごく普通の記述である。
[年間売上ヒストリーRPG :SMP111]
ソースはこちらから
0001.00 H DFTNAME(SMP111) DATEDIT(*YMD/) 0002.00 F********** 売上ヒストリー *************************************** 0003.00 FSMP111FM CF E WORKSTN 0004.00 F EXTFILE('QTROBJ/SMP111FM') 0005.00 F HANDLER(HANDLER:HPARM) 0006.00 F SFILE(SFREC01:RRN1) 0007.00 F INFDS(INFDSF) 0008.00 FSHOHIN IF E K DISK 0009.00 FNENKAN IF E K DISK 0010.00 FHINSHU IF E K DISK 0011.00 F***************************************************************** 0012.00 *( 縦方向への拡大 ) 0013.00 * この照会画面では AマホナWオイ 表示 (U8 がオン ) のときは 0014.00 * SFLSIZ の分だけ SFL レコードを出力する。 0015.00 * 5250 ハンドラーが SFLSIZ のレコードを読んで 0016.00 * 24 行をオーバーした 5250 ストリームを生成する。 0017.00 * コマンド表示行 (DSPEND) は SLNO で表示行を変動させる。 0018.00 * 0019.00 *( 横方向への拡大 ) 0020.00 * 横方向へは CRTEXDSPF によって 80 桁オーバーの項目は 0021.00 * HTML キーワードによって書き換えられている。 0022.00 * ( ASNET.USR/QDSPSRC.SMP111FM を参照 ) 0023.00 * HTML キー・ワード 0024.00 * 0025.00 D SAVDTA S 1 DIM(1024) 0026.00 D* 読み取り ファイル の FORMAT を外部 DS として READ 0027.00 D DATADS E DS EXTNAME(SHOHIN) 0028.00 D DSPDTA 1 1024 0029.00 D DIM(1024) 0030.00 /COPY ASNET.USR/QRPGLESRC,INFDS 0031.00 D* 0032.00 D* -( サブ・ファイル の ファイル 情報 )- 0033.00 D* 0034.00 D INFDS DS 0035.00 D*( カーソル の行と桁の取り込み ) 0036.00 D LINE 370 371B 0 0037.00 D* TOPRRN: 今表示している サブ・ファイル の先頭の RRN 0038.00 D TOPRRN 378 379B 0 0039.00 D* BRRN : サブファイル の レコードNO ( 2 進数 ) 0040.00 D BRRN 376 377B 0 0041.00 0042.00 * コンパイルのときに DEFINE(P5250=1) を指定すれば 0043.00 * 5250 ハンドラーを組み込みます。 0044.00 * そうでなければ HTML ハンドラーを組み込みます。 0045.00 /IF DEFINED(HTML) 0046.00 D HANDLER S 20A INZ('ASNET.COM/HTMLHLR') 0047.00 * HTML ハンドラーを組み込みました。 0048.00 /ELSE 0049.00 D HANDLER S 20A INZ('ASNET.COM/P5250HLR') 0050.00 * 5250 ハンドラーを組み込みました。 0051.00 /ENDIF 0052.00 0053.00 D*( プログラム状況データ構造 ) 0054.00 D INFDSP SDS 0055.00 D PGM 1 10 0056.00 D 512A 0057.00 0058.00 * ハンドラーに渡すパラメータの定義 * 0059.00 D HPARM DS 0060.00 D STATUS 1A 0061.00 D HTMTYPE 10A INZ('TONAKAI ') 0062.00 D HTM_DIR 128A INZ('/AS400-NET.USR/PROJECT/- 0063.00 D PGM112') 0064.00 D INFDSF_PTR * INZ(%ADDR(INFDSF)) 0065.00 D INFDSP_PTR * INZ(%ADDR(INFDSP)) 0066.00 D INGID_PTR * INZ(%ADDR(*IN)) 0067.00 D CFKEY_PTR * INZ(%ADDR(CFKEYS)) 0068.00 /COPY ASNET.USR/QRPGLESRC,CFKEYS 0069.00 0070.00 D DS 0071.00 D NHSU 1 48 0 DIM(12) 0072.00 D NHSU01 1 4 0 0073.00 D NHSU02 5 8 0 0074.00 D NHSU03 9 12 0 0075.00 D NHSU04 13 16 0 0076.00 D NHSU05 17 20 0 0077.00 D NHSU06 21 24 0 0078.00 D NHSU07 25 28 0 0079.00 D NHSU08 29 32 0 0080.00 D NHSU09 33 36 0 0081.00 D NHSU10 37 40 0 0082.00 D NHSU11 41 44 0 0083.00 D NHSU12 45 48 0 0084.00 0085.00 D DS 0086.00 D URSU 1 16 0 DIM(4) 0087.00 D URSU01 1 4 0 0088.00 D URSU02 5 8 0 0089.00 D URSU03 9 12 0 0090.00 D URSU04 13 16 0 0091.00 0092.00 D*( WORK 日付 YYMMDD データ 構造 ) 0093.00 D DATEDS DS 0094.00 D SRY 1 2 0 0095.00 D SRYMD 1 8 0 0096.00 D YYMMDD 3 8 0 0097.00 D YYMM 3 6 0 0098.00 D MMDD 5 8 0 0099.00 D YY 3 4 0 0100.00 D MM 5 6 0 0101.00 D DD 7 8 0 0102.00 0103.00 D GYOSU S 4S 0 0104.00 D YEAR S 6A DIM(12) 0105.00 D N S 4S 0 0106.00 D M S 4S 0 0107.00 D ST S 4S 0 INZ(1) 0108.00 D SFLPAG S 4S 0 INZ(10) 0109.00 D SFLSIZ S 4S 0 INZ(20) 0110.00 0111.00 C*( 初期画面 ) 0112.00 C GOTO STRRED 0113.00 C*----------------------------------------------------+ 0114.00 C START TAG 0115.00 C EXFMT DSPHEAD 0116.00 C*----------------------------------------------------+ 0117.00 C SETOFF 99 0118.00 C*( CF03 )- 終了 0119.00 C *IN03 IFEQ *ON 0120.00 C SETON LR 0121.00 C LR RETURN 0122.00 C GOTO START 0123.00 C END 0124.00 C*( 実行キー ) 0125.00 C* : KEYをファイルにセット 0126.00 C*----------------------------------------------------+ 0127.00 C SETKEY KLIST 0128.00 C KFLD STRCOD 0129.00 C*----------------------------------------------------+ 0130.00 C*( *LOVAL のセット ) 0131.00 C STRRED TAG 0132.00 C MOVE *BLANKS SHCODE 0133.00 C SETKEY SETLL SHOHIN 0134.00 C EXSR SFLCLR 0135.00 C* : ファイルの読み取り 0136.00 C Z-ADD 1 TOPRRN 0137.00 C EXSR READ 0138.00 C*( サブ・ファイルの表示 ) 0139.00 C WRITE DSPEND01 0140.00 C*----------------------------------------------------+ 0141.00 C DSPLY TAG 0142.00 C SETON 4142 0143.00 C EXFMT SFCTL01 0144.00 C SETOFF 4142 0145.00 C*----------------------------------------------------+ 0146.00 C SETOFF 99 0147.00 C*( CF03 )- 終了 0148.00 C *IN03 IFEQ *ON 0149.00 C SETON LR 0150.00 C LR RETURN 0151.00 C ENDIF 0152.00 C* 0153.00 C*( CF12 )- 前画面 0154.00 C *IN12 IFEQ *ON 0155.00 C SETOFF 12 0156.00 C GOTO START 0157.00 C ENDIF 0158.00 C*( ROLL UP )- 次ページ 0159.00 C *IN14 IFEQ *ON 0160.00 C EXSR ROLLUP 0161.00 C GOTO DSPLY 0162.00 C ENDIF 0163.00 C* 0164.00 C*( 実行キー ) 0165.00 C GOTO DSPLY 0166.00 C* 0167.00 C END TAG 0168.00 C****************************************************** 0169.00 C *INZSR BEGSR 0170.00 C****************************************************** 0171.00 C* 初期 サイクル のみの実行 0172.00 C U8 SETON 88 0173.00 C*( DS の数字 フィールド の クリヤー ) 0174.00 C CLEAR SFREC01 0175.00 C MOVE 08 STRGYO 2 0 0176.00 C MOVE 19910101 SRYMD 0177.00 C MOVE 910101 DATE 6 0 0178.00 C Z-ADD 0 SHTANK 0179.00 * U8: AutoWeb 上での実行 0180.00 C *INU8 IFEQ *ON 0181.00 C EVAL GYOSU = SFLSIZ 0182.00 C Z-ADD 10 SLNO 0183.00 * 5250 エミュレータ上での実行 0184.00 C ELSE 0185.00 C EVAL GYOSU = SFLPAG 0186.00 C Z-ADD 1 SLNO 0187.00 C ENDIF 0188.00 C SETON 11 0189.00 C SETOFF 11 0190.00 C ENDSR 0191.00 C****************************************************** 0192.00 C READ BEGSR 0193.00 C****************************************************** 0194.00 C MOVE *BLANKS EOF 1 0195.00 C SETOFF 5945 0196.00 C Z-ADD 0 DSPREC 0197.00 C*( データ・ベースの検索 ) 0198.00 C*----------------------------------------------------+ 0199.00 C* EQLKEY KLIST | 0200.00 C*----------------------------------------------------+ 0201.00 C RTNRED TAG 0202.00 C* 0203.00 C TOPRRN ADD GYOSU ENDRRN 4 0 0204.00 C SUB 1 ENDRRN 0205.00 C* 0206.00 C TOPRRN DO ENDRRN RRN1 4 0 0207.00 C AGAIN TAG 0208.00 C SETOFF 50 0209.00 C READ SHOHIN 50 0210.00 C SHCODE IFEQ 'NV-SX10 ' 0211.00 C SETOFF 11 0212.00 C ENDIF 0213.00 C*( 終り ) 0214.00 C *IN50 IFEQ *ON 0215.00 C MOVE 'E' EOF 0216.00 C SETOFF 1129 0217.00 C SETON 45 0218.00 C GOTO REDEND 0219.00 C ELSE 0220.00 C*( CHECK : READ した レコード の チエック ) 0221.00 C EXSR CHECK 0222.00 C*( 行 NO に入れる ) 0223.00 C MOVE RRN1 GYO 0224.00 C*( サブファイル へ更新 ) 0225.00 C*----------------------------------------------------+ 0226.00 C WRITE SFREC01 0227.00 C*----------------------------------------------------+ 0228.00 C N59 Z-ADD RRN1 DSPREC 0229.00 C N59 SETON 59 0230.00 C Z-ADD RRN1 LSTRRN 4 0 0231.00 C ENDIF 0232.00 C ENDDO 0233.00 C REDEND TAG 0234.00 C DSPREC IFEQ *ZEROS 0235.00 C SETON 89 0236.00 C TOPRRN SUB 1 DSPREC 0237.00 C ENDIF 0238.00 C ENDSR 0239.00 C****************************************************** 0240.00 C CHECK BEGSR 0241.00 C****************************************************** 0242.00 C*( 明細チエック ) 0243.00 C DSPREC IFEQ *ZEROS 0244.00 C Z-ADD TOPRRN DSPREC 0245.00 C ENDIF 0246.00 C Z-ADD 0 NHSU 0247.00 C SETOFF 90 0248.00 C SHCODE CHAIN NENKAN 90 0249.00 C* 0250.00 C SHSCOD CHAIN HINSHU 99 0251.00 C*( 年月のデータをセットする ) 0252.00 C Z-ADD ST M 0253.00 C 1 DO 4 N 0254.00 C EVAL URSU(N) = NHSU(M) 0255.00 C ADD 1 M 0256.00 C ENDDO 0257.00 C CHKEND ENDSR 0258.00 C****************************************************** 0259.00 C SFLCLR BEGSR 0260.00 C****************************************************** 0261.00 C*( サブファイル の クリヤー ) 0262.00 C*----------------------------------------------------+ 0263.00 C SETON 44 0264.00 C WRITE SFCTL01 0265.00 C SETOFF 444589 0266.00 C*----------------------------------------------------+ 0267.00 C ENDSR 0268.00 C****************************************************** 0269.00 C INZVAR BEGSR 0270.00 C****************************************************** 0271.00 C*( 初期値 ) 0272.00 C ENDSR 0273.00 C****************************************************** 0274.00 C ROLLUP BEGSR 0275.00 C****************************************************** 0276.00 C EOF IFEQ 'E' 0277.00 C SETON 6199 0278.00 C 99 Z-ADD LSTRRN DSPREC 0279.00 C 99 GOTO UPEND 0280.00 C END 0281.00 C ENDRRN ADD 1 TOPRRN 0282.00 C EXSR READ 0283.00 C UPEND ENDSR
[解説]
これが5250ハンドラーを埋め込んだプログラムであり24*80の画面制約を取り払って
任意の大きさの画面表示を可能にしています。
5250ハンドラーとは
0003.00 FSMP111FM CF E WORKSTN
0004.00 F EXTFILE('QTROBJ/SMP111FM')
0005.00 F HANDLER(HANDLER:HPARM)
0006.00 F SFILE(SFREC01:RRN1)
0007.00 F INFDS(INFDSF)
の
0005.00 F HANDLER(HANDLER:HPARM)
の部分です。
0058.00 * ハンドラーに渡すパラメータの定義 * 0059.00 D HPARM DS 0060.00 D STATUS 1A 0061.00 D HTMTYPE 10A INZ('TONAKAI ') 0062.00 D HTM_DIR 128A INZ('/AS400-NET.USR/PROJECT/- 0063.00 D PGM112') 0064.00 D INFDSF_PTR * INZ(%ADDR(INFDSF)) 0065.00 D INFDSP_PTR * INZ(%ADDR(INFDSP)) 0066.00 D INGID_PTR * INZ(%ADDR(*IN)) 0067.00 D CFKEY_PTR * INZ(%ADDR(CFKEYS)) 0068.00 /COPY ASNET.USR/QRPGLESRC,CFKEYS
の記述も5250ハンドラーへ渡す記述で必要な部分です。
これらを組み込むことは複雑なように見えますが
実際は ADD5259HLR (5250ハンドラーの追加)というコマンドが用意されていて
5250 ハンドラーの追加 (ADD5250HLR) 選択項目を入力して,実行キーを押してください。 FROM ソース・ファイル . . . . . > QRPGLESRC 名前 , QRPGSRC, QRPGLESRC... ライブラリー . . . . . . . . > QTRSRC 名前 , *LIBL, *CURLIB FROM メンバー . . . . . . . . . > SMP111 名前 TO ファイル . . . . . . . . . . > QRPGLESRC QRPGLESRC, QCBLLESRC ライブラリー . . . . . . . . > R610SRC 名前 , *LIBL, *CURLIB TO メンバー . . . . . . . . . . *FROMMBR 名前 , *FROMMBR レコードの置き換えまたは追加 > *REPLACE *NONE, *ADD, *REPLACE コンパイル・プロセッサー . . . *NO *NO, *YES 終り F3= 終了 F4=プロンプト F5= 最新表示 F10= 追加のパラメーター F12= 取り消し F13= この画面の使用法 F24= キーの続き
[解説]
このコマンド ADD5250HLRによって既存のRPGソースに5250ハンドラーの記述を
組み込んだ新しいRPGソースを生成することができます。
元になるRPGは ILE-RPG(RPG iV)である必要はなく RPG IIIでも RPG IIであってもよいのです。
RPGソースは自動的にILE-RPGに変換されるからです。
もちろんIBMによる変換ミスも ADD5250HLR はカバーしています。
つまりはハンドラーに関する知識は特に必要ないしハンドラーであるからといって
特殊な書き方に変える必要は全くありません。
他のWeb化製品のほとんどはその製品に見合った特殊なコーディングが必要です。
それでは処理は複雑になりそれまでの自然なRPGとのむ互換性もなくなります。
5250ハンドラーではDSPFのSFLレコードの処理やRRN, READC, CHAIN, WRITE, UPDATE, DELETE など
すべてそのままで使用することができますしカーソルのセットやカーソル位置の詠み込みもできます。
HTMLインターフェースでエンド・ユーザーが操作しているカーソルの位置さえ取得することが
できるのです。
このように当たり前の機能を当たり前に再現する機能が5250ハンドラーには備わっています。
お客さまが導入されてから期待通りに動作しなくてお客さまを失望させることはありません。
5250ハンドラーは今まで24*80の画面制約に悩まされていたIBMユーザーにとって
画期的なことであり世界でも24*80の画面制約を打ち払ったのは世界でも
日本の5250ハンドラーだけです。
5250ハンドラーは既に多くのお客さまでかなり高度な適用業務に組み込まれて稼動しており
開発者の満足を得ています。
Web化のためにCGIやJavaなどの手段が必要とされたのはすべて24*80の画面制約があったからです。
ましてや海外からのDELPHIや特殊で難しい開発プラットフォームがなぜ要るのでしょうか?
Web化と言えば難しい他の言語が必要であるという迷信はもうはるか昔に終わっています。
24*80の制約がなければ特別な開発言語を使用する必要は全くありません。
いつものとおりの記述だけでよいのですから。
5250ハンドラーはまさしく発明であり日本のIBM開発者の歴史を変えました。
5250ハンドラーのアーキテクチャーは米国IBMが発表する2年も前から㈱オフィスクアトロでは
この機能を開発していました。
IBMより2年も先を行っていたのです。
5250ハンドラーをぜひお試しください。
IBM iの使用感覚が劇的に変わることをお約束いたします。