H DFTNAME(SMP111) DATEDIT(*YMD/) F********** 売上ヒストリー *************************************** FSMP111FM CF E WORKSTN F EXTFILE('QTROBJ/SMP111FM') F HANDLER(HANDLER:HPARM) F SFILE(SFREC01:RRN1) F INFDS(INFDSF) FSHOHIN IF E K DISK FNENKAN IF E K DISK FHINSHU IF E K DISK F***************************************************************** *( 縦方向への拡大 ) * この照会画面では AマホナWオイ 表示 (U8 がオン ) のときは * SFLSIZ の分だけ SFL レコードを出力する。 * 5250 ハンドラーが SFLSIZ のレコードを読んで * 24 行をオーバーした 5250 ストリームを生成する。 * コマンド表示行 (DSPEND) は SLNO で表示行を変動させる。 * *( 横方向への拡大 ) * 横方向へは CRTEXDSPF によって 80 桁オーバーの項目は * HTML キーワードによって書き換えられている。 * ( ASNET.USR/QDSPSRC.SMP111FM を参照 ) * HTML キー・ワード * D SAVDTA S 1 DIM(1024) SAVE-データ D* 読み取り ファイル の FORMAT を外部 DS として READ D DATADS E DS EXTNAME(SHOHIN) D DSPDTA 1 1024 D DIM(1024) 入力 データ /COPY ASNET.USR/QRPGLESRC,INFDS D* D* -( サブ・ファイル の ファイル 情報 )- D* D INFDS DS D*( カーソル の行と桁の取り込み ) D LINE 370 371B 0 D* TOPRRN: 今表示している サブ・ファイル の先頭の RRN D TOPRRN 378 379B 0 D* BRRN : サブファイル の レコードNO ( 2 進数 ) D BRRN 376 377B 0 * コンパイルのときに DEFINE(P5250=1) を指定すれば * 5250 ハンドラーを組み込みます。 * そうでなければ HTML ハンドラーを組み込みます。 /IF DEFINED(HTML) D HANDLER S 20A INZ('ASNET.COM/HTMLHLR') * HTML ハンドラーを組み込みました。 /ELSE D HANDLER S 20A INZ('ASNET.COM/P5250HLR') * 5250 ハンドラーを組み込みました。 /ENDIF D*( プログラム状況データ構造 ) D INFDSP SDS D PGM 1 10 D 512A * ハンドラーに渡すパラメータの定義 * D HPARM DS D STATUS 1A D HTMTYPE 10A INZ('TONAKAI ') D HTM_DIR 128A INZ('/AS400-NET.USR/PROJECT/- D PGM112') D INFDSF_PTR * INZ(%ADDR(INFDSF)) D INFDSP_PTR * INZ(%ADDR(INFDSP)) D INGID_PTR * INZ(%ADDR(*IN)) D CFKEY_PTR * INZ(%ADDR(CFKEYS)) /COPY ASNET.USR/QRPGLESRC,CFKEYS D DS D NHSU 1 48 0 DIM(12) D NHSU01 1 4 0 D NHSU02 5 8 0 D NHSU03 9 12 0 D NHSU04 13 16 0 D NHSU05 17 20 0 D NHSU06 21 24 0 D NHSU07 25 28 0 D NHSU08 29 32 0 D NHSU09 33 36 0 D NHSU10 37 40 0 D NHSU11 41 44 0 D NHSU12 45 48 0 D DS D URSU 1 16 0 DIM(4) D URSU01 1 4 0 D URSU02 5 8 0 D URSU03 9 12 0 D URSU04 13 16 0 D*( WORK 日付 YYMMDD データ 構造 ) D DATEDS DS D SRY 1 2 0 D SRYMD 1 8 0 D YYMMDD 3 8 0 D YYMM 3 6 0 D MMDD 5 8 0 D YY 3 4 0 D MM 5 6 0 D DD 7 8 0 D GYOSU S 4S 0 D YEAR S 6A DIM(12) D N S 4S 0 D M S 4S 0 D ST S 4S 0 INZ(1) D SFLPAG S 4S 0 INZ(10) D SFLSIZ S 4S 0 INZ(20) C*( 初期画面 ) C GOTO STRRED C*----------------------------------------------------+ C START TAG | C EXFMT DSPHEAD | C*----------------------------------------------------+ C SETOFF 99 C*( CF03 )- 終了 C *IN03 IFEQ *ON CF03 C SETON LR C LR RETURN C GOTO START C END CF03 C*( 実行キー ) C* : KEYをファイルにセット C*----------------------------------------------------+ C SETKEY KLIST | C KFLD STRCOD | C*----------------------------------------------------+ C*( *LOVAL のセット ) C STRRED TAG C MOVE *BLANKS SHCODE C SETKEY SETLL SHOHIN C EXSR SFLCLR C* : ファイルの読み取り C Z-ADD 1 TOPRRN C EXSR READ C*( サブ・ファイルの表示 ) C WRITE DSPEND01 C*----------------------------------------------------+ C DSPLY TAG | C SETON 4142 |SFL-DSPLY C EXFMT SFCTL01 | C SETOFF 4142 | C*----------------------------------------------------+ C SETOFF 99 C*( CF03 )- 終了 C *IN03 IFEQ *ON CF03 C SETON LR C LR RETURN C ENDIF CF03 C* C*( CF12 )- 前画面 C *IN12 IFEQ *ON CF12 C SETOFF 12 C GOTO START C ENDIF CF12 C*( ROLL UP )- 次ページ C *IN14 IFEQ *ON C EXSR ROLLUP C GOTO DSPLY C ENDIF C* C*( 実行キー ) C GOTO DSPLY C* C END TAG C****************************************************** C *INZSR BEGSR C****************************************************** C* 初期 サイクル のみの実行 C U8 SETON 88 C*( DS の数字 フィールド の クリヤー ) C CLEAR SFREC01 C MOVE 08 STRGYO 2 0 開始行Y C MOVE 19910101 SRYMD C MOVE 910101 DATE 6 0 C Z-ADD 0 SHTANK * U8: AutoWeb 上での実行 C *INU8 IFEQ *ON C EVAL GYOSU = SFLSIZ C Z-ADD 10 SLNO * 5250 エミュレータ上での実行 C ELSE C EVAL GYOSU = SFLPAG C Z-ADD 1 SLNO C ENDIF C SETON 11 C SETOFF 11 C ENDSR C****************************************************** C READ BEGSR C****************************************************** C MOVE *BLANKS EOF 1 C SETOFF 5945 C Z-ADD 0 DSPREC C*( データ・ベースの検索 ) C*----------------------------------------------------+ C* EQLKEY KLIST | C*----------------------------------------------------+ C RTNRED TAG C* C TOPRRN ADD GYOSU ENDRRN 4 0 C SUB 1 ENDRRN C* C TOPRRN DO ENDRRN RRN1 4 0 READ C AGAIN TAG C SETOFF 50 C READ SHOHIN 50 C SHCODE IFEQ 'NV-SX10 ' C SETOFF 11 C ENDIF C*( 終り ) C *IN50 IFEQ *ON EOF C MOVE 'E' EOF C SETOFF 1129 C SETON 45 C GOTO REDEND C ELSE EOF C*( CHECK : READ した レコード の チエック ) C EXSR CHECK C*( 行 NO に入れる ) C MOVE RRN1 GYO C*( サブファイル へ更新 ) C*----------------------------------------------------+ C WRITE SFREC01 | C*----------------------------------------------------+ C N59 Z-ADD RRN1 DSPREC C N59 SETON 59 C Z-ADD RRN1 LSTRRN 4 0 C ENDIF EOF C ENDDO READ C REDEND TAG C DSPREC IFEQ *ZEROS C SETON 89 C TOPRRN SUB 1 DSPREC C ENDIF C ENDSR C****************************************************** C CHECK BEGSR C****************************************************** C*( 明細チエック ) C DSPREC IFEQ *ZEROS C Z-ADD TOPRRN DSPREC C ENDIF C Z-ADD 0 NHSU C SETOFF 90 C SHCODE CHAIN NENKAN 90 C* C SHSCOD CHAIN HINSHU 99 C*( 年月のデータをセットする ) C Z-ADD ST M C 1 DO 4 N C EVAL URSU(N) = NHSU(M) C ADD 1 M C ENDDO C CHKEND ENDSR C****************************************************** C SFLCLR BEGSR C****************************************************** C*( サブファイル の クリヤー ) C*----------------------------------------------------+ C SETON 44 | C WRITE SFCTL01 | C SETOFF 444589 | C*----------------------------------------------------+ C ENDSR C****************************************************** C INZVAR BEGSR C****************************************************** C*( 初期値 ) C ENDSR C****************************************************** C ROLLUP BEGSR C****************************************************** C EOF IFEQ 'E' C SETON 6199 ERRMSG C 99 Z-ADD LSTRRN DSPREC C 99 GOTO UPEND C END C ENDRRN ADD 1 TOPRRN C EXSR READ C UPEND ENDSR