これからは実際の業務のサンプルをいくつか紹介していきたい。
最初はかんたんでわかりやすい
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の使用感覚が劇的に変わることをお約束いたします。
