updated on 2004.06.24 |
今度は、パターン4の説明です。ポイントは、SFL01+CTLl01のセットを2つにすることです。つまり、SFL01+CTL01,SFL02+CTL02の2つのサブファイルを処理対象とします。もし切り替え画面が3つならSFL01+CTL01,SFL02+CTL02,SFL03+CTL03となります。読み込んだデータはSFL01,SFL02に同時に、同じRRNでセットしますので、RRNはRRN01一つのみです。この点以外はパターン2と同じです。
このサンプルでは、入力フィールドの無いサブファイルとしています。もし、入力フィールドを設けると、入力して、実行キーを押す前に、切り替えキーを押すと別の画面を出しているので、あたかも、入力値が消えたように見えます。(実際は切り替え前の画面に保持されているのですが)。これを避けたければ,SFL01からSFL02に切り替えるたび、SFL01をREADCで読み込み、入力されたSFL01の内容を同じRRNのSFL02にUPDATEしてしまえばOKです。SFLNXTCHGをONにしてUPDATEすることを忘れずに。
既にパターン1で説明した基本的部分の解説は、省略します。
プレーンテキストソース:zzi040.txt
構造化ソース:zzi040s.txt
H 1 Y/ 1 F****************************************************** F* D E F I N E F I L E S * F****************************************************** FZZJOBML1IF E K DISK FZZI040D CF E WORKSTN [解説10] F RRN01 KSFILE SFL01 F RRN01 KSFILE SFL02 F KINFDS INFDSP E**************************************************** E* A R R A Y T A B L E * E**************************************************** E GDE 1 2 78 :CMD GIDE E OPN 1 6 78 :OPTION I****************************************************** I* D E F I N E C O N S T A N T * I****************************************************** I 10 C #PAGSZ I X'33' C F3 I X'35' C F5 I X'39' C F9 I X'3C' C F12 I X'BB' C F23 I X'F5' C ROLUP I****************************************************** I* D E F I N E D A T A - S T R U C T U R E * I****************************************************** I* INFORMATION DS (DSPF) IINFDSP DS I 369 369 PUSHED I B 378 3790DSRRN I* FOR SYSTEM DATE AND TIME I DS I 1 120DSDTTM I 1 60DSQTIM I 7 120DSQDAT I* PROGRAM STATUS I SDS I *PROGRAM V1PGM I 244 253 V1JOB I 254 263 V1USR C****************************************************** C* DEFINITION MODULE ( PLIST FIELD KLIST ) * C****************************************************** C* : C* FOR DUPLICATE : C* : C *LIKE DEFN V1JOBC W1JOBC : C *LIKE DEFN RRN01 W1RN01 : C****************************************************** C* M A I N - R O U T I N E C****************************************************** C* SFL消去 : C \INZ TAG : C* : C EXSR @SETLL : C* SFL消去 : C EXSR @CLCTL : C* SFL作成 : C \BDSFL TAG : C* : C EXSR @BDSFL : C* SFL表示 : C \EXSFL TAG : C* : C EXSR @EXSFL : C* : C F3 CABEQPUSHED \END :終了 C F12 CABEQPUSHED \END :終了 C* : C V1JOBC CABNEW1JOBC \INZ : C* : C F5 CABEQPUSHED \INZ :再表示 [解説20] B001 C F9 IFEQ PUSHED :VIEW CHANGE B002 C W1VIEW IFEQ 1 : 002 C Z-ADD2 W1VIEW : +002 C ELSE : 002 C Z-ADD1 W1VIEW : E002 C END : 001 C GOTO \EXSFL : E001 C END : C* : B001 C F23 IFEQ PUSHED : 001 C ADD 1 W1OPTN : B002 C W1OPTN IFGT 3 : 002 C Z-ADD1 W1OPTN : E002 C END : 001 C GOTO \EXSFL : E001 C END : C* : B001 C W1EOF IFEQ *OFF : 001 C ROLUP CABEQPUSHED \BDSFL : E001 C END : C* : C GOTO \EXSFL : C*終了 : C \END TAG : C* : C MOVE *ON *INLR : C RETRN : C****************************************************** C* S U B - R O U T I N E C****************************************************** C*----------------------------------------------------* C *INZSR BEGSR : C*----------------------------------------------------* C Z-ADD0 W1CNT 40 : C Z-ADD0 RRN01 40 : C Z-ADD1 H1SRCD : C* : [解説30] C Z-ADD1 W1VIEW 10 : C* : C MOVE *OFF PICNL 1 : C MOVE *OFF W1EOF 1 : C Z-ADD1 W1OPTN 10 : C* : C ENDSR : C*----------------------------------------------------* C @SETLL BEGSR :ファイル位置 C*----------------------------------------------------* C V1JOBC SETLLZZJOBML1 : C* : C*位置指定変更検査用待避 : C* : C MOVE V1JOBC W1JOBC : C* : C ENDSR : C*----------------------------------------------------* C @CLCTL BEGSR :CLEAR SFL01 C*----------------------------------------------------* C MOVE *OFF W1EOF : C MOVE *OFF *IN63 :SFLEND OFF C* : C Z-ADD0 RRN01 : C Z-ADD0 W1RN01 : C Z-ADD1 H1SRCD : C CLEARSFL01 : C CLEARSFL02 : C* : [解説40] C MOVE *ON *IN62 : C WRITECTL01 :SFLCLR C WRITECTL02 :SFLCLR C MOVE *OFF *IN62 : C* : C ENDSR : C*----------------------------------------------------* C @BDSFL BEGSR :SFL01作成 C*----------------------------------------------------* C Z-ADDW1RN01 RRN01 : C Z-ADD0 W1CNT : C* : B001 C W1CNT DOUEQ#PAGSZ : 001 C READ ZZJOBML1 90: B002 C *IN90 IFEQ *ON : 002 C MOVE *ON *IN63 : 002 C MOVE *ON W1EOF : 002 C LEAVE : +002 C ELSE : 002 C EXSR @TOSFL : E002 C END : E001 C END : C* : C Z-ADDRRN01 W1RN01 : C* SFLEND検査 : B001 C *IN63 IFEQ *OFF : 001 C READ ZZJOBML1 90: B002 C *IN90 IFEQ *ON : 002 C MOVE *ON *IN63 : 002 C MOVE *ON W1EOF : +002 C ELSE : 002 C READPZZJOBML1 90: E002 C END : E001 C END : C* : C ENDSR : C*----------------------------------------------------* C @TOSFL BEGSR : C*----------------------------------------------------* C MOVE *OFF *IN64 :SFLNXTCHG OFF C MOVELYYJNO H1JNO : C* : C ADD 1 RRN01 : C ADD 1 W1CNT : C* : [解説50] C WRITESFL01 : C WRITESFL02 : C* : B001 C W1CNT IFEQ 1 : 001 C Z-ADDRRN01 H1SRCD : E001 C END : C* : C ENDSR : C*----------------------------------------------------* C @EXSFL BEGSR :EXFMT SUBFILE C*----------------------------------------------------* B001 C RRN01 IFNE 0 : 001 C MOVE *ON *IN60 :SFLDSP ON +001 C ELSE : 001 C MOVE *OFF *IN60 :SFLDSP OFF E001 C END : C* : B001 C V1MSG# IFNE *BLANK : 001 C EXSR @MSG : E001 C END : C* : C MOVE *ON *IN61 :SFLDSPCTL ON C* : B001 C SELEC : 001 C W1OPTN WHEQ 1 : 001 C MOVELOPN,1 V1OPN1 : 001 C MOVELOPN,2 V1OPN2 : 001 C W1OPTN WHEQ 2 : 001 C MOVELOPN,3 V1OPN1 : 001 C MOVELOPN,4 V1OPN2 : 001 C W1OPTN WHEQ 3 : 001 C MOVELOPN,5 V1OPN1 : 001 C MOVELOPN,6 V1OPN2 : E001 C END : C* : [解説60] B001 C W1VIEW IFEQ 1 : 001 C MOVELGDE,1 V1GDE : 001 C WRITEFTR01 : 001 C EXFMTCTL01 : +001 C ELSE : 001 C MOVELGDE,2 V1GDE : 001 C WRITEFTR02 : 001 C EXFMTCTL02 : E001 C END : C* : C EXSR @EROFF : C* : C MOVEA'00' *IN,60 : C* : B001 C H1SRRN IFNE 0 : 001 C Z-ADDH1SRRN H1SRCD : +001 C ELSE : B002 C DSRRN IFNE 0 : 002 C Z-ADDDSRRN H1SRCD : E002 C END : E001 C END : C* : C ENDSR : C*----------------------------------------------------* C @MSG BEGSR : C*----------------------------------------------------* C* : C ENDSR : C*----------------------------------------------------* C @EROFF BEGSR : C*----------------------------------------------------* C* : C ENDSR : ** ....1....+....2....+....3....+....4....+....5....+....6.... F3=終了 F5=再表示 F9=ビュー2 F23=オプション続き F3=終了 F5=再表示 F9=ビュー1 F23=オプション続き ** 2=修正 3=店個別指定 4=削除 5=表示 6=複写 7= OPT7 8= OPT8 9= OPT9 10= OPT10 ... 50= OPT50 52= OPT52 54= OPT54 55= OPT55 60= OPT60 62= OPT62 63= OPT63 ... 71= OPT71 72= OPT72 73= OPT73 80= OPT80 99= OPT99 ...
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||