H DFTNAME(PGMID) DATEDIT(*YMD/) F********** 売上ヒストリー ************************************** FSMP107FM CF E WORKSTN F SFILE(SFREC01:RRN1) F INFDS(INFDS) FSHOHIN IF E K DISK FNENKAN IF E K DISK FHINSHU IF E K DISK F***************************************************************** D SAVDTA S 1 DIM(1024) SAVE-データ D* 読み取り ファイル の FORMAT を外部 DS として READ D DATADS E DS EXTNAME(SHOHIN) D DSPDTA 1 1024 D DIM(1024) 入力 データ 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 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 DS D MONR 1 24 DIM(4) D MON01 1 6 D MON02 7 12 D MON03 13 18 D MON04 19 24 D YEAR S 6A DIM(12) D N S 4S 0 D M S 4S 0 D ST S 4S 0 INZ(1) 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 Z-ADD 1 DSPREC 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*( CF19 )- 左 C *IN19 IFEQ *ON CF12 C SETOFF 19 C ST IFGT 4 C SUB 4 ST C GOTO STRRED C ELSE C SETON 6399 C GOTO DSPLY C ENDIF C ENDIF CF12 C*( CF20 )- 右 C *IN20 IFEQ *ON CF12 C SETOFF 20 C ST IFGT 8 C SETON 6499 C GOTO DSPLY C ELSE C ADD 4 ST C GOTO STRRED C ENDIF 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*( サブファイル END-FLAG を ON にする ) C SETON 45 C*( DS の数字 フィールド の クリヤー ) C CLEAR SFREC01 C MOVE 12 GYOSU 2 0 行数 C MOVE 08 STRGYO 2 0 開始行Y C MOVE 19910101 SRYMD C MOVE 910101 DATE 6 0 C SETON 11 C SETOFF 11 C*( 年月の見出しを作成する ) C 1 DO 12 N C MOVE N MON 2 C IF %SUBST(MON:1:1) = '0' C MOVEL ' ' MON C ENDIF C EVAL YEAR(N) = MON + ' 月 ' C ENDDO C ENDSR C****************************************************** C READ BEGSR C****************************************************** C MOVE *BLANKS EOF 1 C SETOFF 5945 C*( データ・ベースの検索 ) C*----------------------------------------------------+ C* EQLKEY KLIST | C*----------------------------------------------------+ C RTNRED TAG C* C TOPRRN ADD GYOSU ENDRRN 4 0 C SUB 1 ENDRRN C*( 年月見出しをセットする ) C Z-ADD ST M C 1 DO 4 N C EVAL MONR(N) = YEAR(M) C ADD 1 M C ENDDO C*( 左右ボタンの制御 ) C SETOFF 8182 C ST IFGT 4 C SETON 81 C ENDIF C ST IFLT 9 C SETON 82 C ENDIF C* C TOPRRN DO ENDRRN RRN1 4 0 READ C AGAIN TAG C SETOFF 50 C READ SHOHIN 50 C*( 終り ) C *IN50 IFEQ '1' 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 END EOF C END READ C REDEND TAG C ENDSR C****************************************************** C CHECK BEGSR C****************************************************** C*( 明細チエック ) 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 44 | 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