PGM /*---------------------------------------------------------*/ /* BNK003CL : パネル表示 */ /*---------------------------------------------------------*/ DCL VAR(&MSG) TYPE(*CHAR) LEN(80) DCL VAR(&HANDLE) TYPE(*CHAR) LEN(8) /* + 摘要業務ハンドル */ DCL VAR(&PNLGRPLIB) TYPE(*CHAR) LEN(20) + VALUE('BNK003 TESTOBJ ') DCL VAR(&AREA) TYPE(*CHAR) LEN(4) + VALUE(X'FFFFFFFF') /* 2 進数 */ DCL VAR(&DEC08) TYPE(*DEC) LEN(8 0) DCL VAR(&EXITPG) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') /* 2 進数 */ DCL VAR(&FNCTON) TYPE(*CHAR) LEN(4) /* 2 進数 */ DCL VAR(&PANEL) TYPE(*CHAR) LEN(10) + VALUE('DSPTOP ') DCL VAR(&AGAIN) TYPE(*CHAR) LEN(1) VALUE(Y) DCL VAR(&APIERR) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') /* 2 進数 */ DCL VAR(&USRTSK) TYPE(*CHAR) LEN(1) VALUE(N) DCL VAR(&STACK) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') /* 2 進数 */ DCL VAR(&UIMMSG) TYPE(*CHAR) LEN(10) VALUE(*CALLER) DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4) DCL VAR(&CSROPT) TYPE(*CHAR) LEN(1) VALUE(D) DCL VAR(&LASLST) TYPE(*CHAR) LEN(4) VALUE(NONE) DCL VAR(&ERRLST) TYPE(*CHAR) LEN(4) DCL VAR(&WAITTIME) TYPE(*CHAR) LEN(4) + VALUE(X'FFFFFFFF') /* 2 進数 */ DCL VAR(&CF03) TYPE(*CHAR) LEN(4) + VALUE(X'00000003') /* 2 進数 */ DCL VAR(&ENTER) TYPE(*CHAR) LEN(4) + VALUE(X'0000001B') /* 2 進数 */ DCL VAR(&DSPDTA) TYPE(*CHAR) LEN(1024) DCL VAR(&DTALEN) TYPE(*CHAR) LEN(4) /* 2 進数 */ DCLF FILE(TESTFIL/BANKM) DCL VAR(&NO) TYPE(*CHAR) LEN(4) DCL VAR(&N) TYPE(*DEC) LEN(4 0) VALUE(1) DCL VAR(&LHANDL) TYPE(*CHAR) LEN(4) DCL VAR(&LSTHND) TYPE(*CHAR) LEN(4) /* MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) */ /*( QUIOPNDA : パネル・グループのオープン )*/ CALL PGM(QUIOPNDA) PARM(&HANDLE &PNLGRPLIB &AREA + &EXITPG 'N' &APIERR) /*(BANKM: 銀行マスターの読み取り )*/ READ: RCVF RCDFMT(@BANKM) MONMSG MSGID(CPF0800) EXEC(GOTO CMDLBL(REDEND)) CHGVAR VAR(&NO) VALUE(&N) CHGVAR VAR(&DSPDTA) VALUE(&BKBKCD *CAT &BKNMKJ *CAT + &BKKBN *CAT &NO) CHGVAR VAR(%BIN(&DTALEN)) VALUE(26) CALL PGM(QUIADDLE) PARM(&HANDLE &DSPDTA &DTALEN + 'SFLRCD ' 'SFL ' 'NEXT' &LHANDL + &APIERR) CHGVAR VAR(&N) VALUE(&N + 1) GOTO READ REDEND: /*( QUIDSPP : パネル表示 )*/ DSPLY: CALL PGM(QUIDSPP) PARM(&HANDLE &FNCTON &PANEL + &AGAIN &APIERR &USRTSK &STACK &UIMMSG + &MSGKEY &CSROPT &LASLST &ERRLST &WAITTIME) MONMSG MSGID(CPF6A95) /*( CF03 )= 終了 */ IF COND(&FNCTON *EQ &CF03) THEN(DO) /*( QUICLOA : パネル・グループのクローズ )*/ CALL PGM(QUICLOA) PARM(&HANDLE 'M' &APIERR) RETURN ENDDO /*( 実行キー )*/ IF COND(&FNCTON *EQ &ENTER) THEN(DO) CHGVAR VAR(%BIN(&DTALEN)) VALUE(26) CALL PGM(QUIGETLE) PARM(&HANDLE &DSPDTA &DTALEN + 'SFLRCD ' 'SFL ' 'FRST' 'Y' + ' ' ' ' 'N' &LSTHND + &APIERR) MONMSG MSGID(CPF6A00) EXEC(GOTO CMDLBL(OUTRED)) SNDPGMMSG MSG(%SST(&DSPDTA 1 26)) MSGTYPE(*COMP) NXTRED: CALL PGM(QUIGETLE) PARM(&HANDLE &DSPDTA &DTALEN + 'SFLRCD ' 'SFL ' 'NEXT' 'Y' + ' ' ' ' 'N' &LSTHND + &APIERR) MONMSG MSGID(CPF6A00) EXEC(GOTO CMDLBL(OUTRED)) SNDPGMMSG MSG(%SST(&DSPDTA 1 26)) MSGTYPE(*COMP) GOTO NXTRED OUTRED: GOTO DSPLY ENDDO ERROR: RCVMSG RMV(*NO) MSG(&MSG) SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) ENDPGM