PGM /*-------------------------------------------------------------------*/ /* SQL001CL : 品種マスターの登録 */ /* */ /* 2020/02/29 作成 */ /*-------------------------------------------------------------------*/ DCL VAR(&MSG) TYPE(*CHAR) LEN(132) DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(132) DCL VAR(&TYPE) TYPE(*CHAR) LEN(1) DCL VAR(&TOPGMQ) TYPE(*CHAR) LEN(10) DCL VAR(&MSGTYPE) TYPE(*CHAR) LEN(10) + VALUE('*ESCAPE ') DCL VAR(&APIERR) TYPE(*CHAR) LEN(116) + VALUE(X'000074') /* 2 進数 */ DCL VAR(&NULL4) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') DCLF FILE(QTROBJ/SQL001FM) OPNID(SQL001FM) DCL VAR(&HNSKEY) TYPE(*CHAR) LEN(4) DCLF FILE(QTRFIL/HINSHU) OPNID(HINSHU) DCL VAR(&STR) TYPE(*CHAR) LEN(1024) DCL VAR(") TYPE(*CHAR) LEN(1) VALUE(X'7D') MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) /*( 環境の取得 )*/ RTVJOBA TYPE(&TYPE) IF COND(&TYPE *EQ '0') THEN(DO) /* バッチ */ CHGVAR VAR(&TOPGMQ) VALUE('*SYSOPR ') ENDDO /* バッチ */ ELSE CMD(DO) /* 対話式 */ CHGVAR VAR(&TOPGMQ) VALUE('*TOPGMQ ') ENDDO /* 対話式 */ /*( 初期画面の表示 )*/ START: SNDRCVF RCDFMT(DSPHEAD) OPNID(SQL001FM) /*( CF03 )- 終わり */ IF COND(&SQL001FM_IN03 *EQ '1') THEN(DO) RETURN ENDDO /*( 実行キー )*/ CHGVAR VAR(&HNSKEY) VALUE(&SQL001FM_HNSCOD) OVRDBF FILE(HINSHU) TOFILE(QTRFIL/HINSHU) + MBR(*FIRST) POSITION(*KEYAE 1 @HINSHU + &HNSKEY) MONMSG MSGID(CPF4137) EXEC(DO) CHGVAR VAR(&SQL001FM_HNSNAM) VALUE(' ') GOTO REDEND ENDDO RCVF OPNID(HINSHU) MONMSG MSGID(CPF0864) EXEC(DO) CHGVAR VAR(&SQL001FM_DSPMSG) VALUE(' 入力 ') CHGVAR VAR(&SQL001FM_HNSNAM) VALUE(' ') CHGVAR VAR(&SQL001FM_IN13) VALUE('0') GOTO REDEND ENDDO IF COND(&HINSHU_HNSCOD *EQ &HNSKEY) THEN(DO) CHGVAR VAR(&SQL001FM_DSPMSG) VALUE(' 変更 ') CHGVAR VAR(&SQL001FM_HNSNAM) VALUE(&HINSHU_HNSNAM) CHGVAR VAR(&SQL001FM_IN13) VALUE('1') ENDDO ELSE CMD(DO) CHGVAR VAR(&SQL001FM_DSPMSG) VALUE(' 入力 ') CHGVAR VAR(&SQL001FM_HNSNAM) VALUE(' ') CHGVAR VAR(&SQL001FM_IN13) VALUE('0') ENDDO REDEND: /*( 明細画面の表示 )*/ DSPLY: SNDRCVF RCDFMT(DSPDTA) OPNID(SQL001FM) /*( CF03 )- 終わり */ IF COND(&SQL001FM_IN03 *EQ '1') THEN(DO) RETURN ENDDO /*( CF12 )- 取消し */ IF COND(&SQL001FM_IN12 *EQ '1') THEN(DO) TFRCTL PGM(QTROBJ/SQL001CL) ENDDO /*( CF10 )- 更新 */ IF COND(&SQL001FM_IN10 *EQ '1') THEN(DO) IF COND(&SQL001FM_IN13 *EQ '1') THEN(DO) /* + 変更 */ CHGVAR VAR(&STR) VALUE('UPDATE QTRFIL/HINSHU SET + HNSNAM = ' *CAT " *CAT + &SQL001FM_HNSNAM *TCAT " *CAT ' + WHERE HNSCOD = ' *CAT " *CAT + &SQL001FM_HNSCOD *CAT ") RUNSQL SQL(&STR) COMMIT(*NONE) CHGVAR VAR(&MSG) VALUE('1 レコードを更新しました。 ') SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) ENDDO /* 変更 */ ELSE CMD(DO) /* 入力 */ CHGVAR VAR(&STR) VALUE('INSERT INTO QTRFIL/HINSHU + (HNSCOD, HNSNAM) VALUES(' *CAT " + *CAT &SQL001FM_HNSCOD *CAT " *CAT + ', ' *CAT " *CAT &SQL001FM_HNSNAM + *CAT " *CAT ')') RUNSQL SQL(&STR) COMMIT(*NONE) CHGVAR VAR(&MSG) VALUE('1 レコードを追加しました。 ') SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) ENDDO /* 入力 */ GOTO START ENDDO /*( CF23 )- 削除 */ IF COND(&SQL001FM_IN23 *EQ '1') THEN(DO) CHGVAR VAR(&STR) VALUE('DELETE FROM QTRFIL/HINSHU + WHERE HNSCOD = ' *CAT " *CAT + &SQL001FM_HNSCOD *CAT ") RUNSQL SQL(&STR) COMMIT(*NONE) CHGVAR VAR(&MSG) VALUE('1 レコードを削除しました。 ') SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) ENDDO /*( 実行キー )*/ GOTO DSPLY RETURN ERROR: RCVMSG MSGTYPE(*LAST) RMV(*NO) MSG(&MSG) + MSGDTA(&MSGDTA) MSGID(&MSGID) MSGF(&MSGF) + MSGFLIB(&MSGFLIB) SNDMSG: IF COND(&MSGID *EQ ' ') THEN(DO) SNDPGMMSG MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA(&MSG) + TOMSGQ(&TOPGMQ) MSGTYPE(&MSGTYPE) MONMSG MSGID(CPF2400) EXEC(RETURN) ENDDO ELSE CMD(DO) IF COND(&MSGID *EQ 'CPF4137') THEN(DO) CHGVAR VAR(&SQL001FM_DSPMSG) VALUE(' 入力 ') CHGVAR VAR(&SQL001FM_HNSNAM) VALUE(' ') CHGVAR VAR(&SQL001FM_IN13) VALUE('0') GOTO REDEND ENDDO SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) TOMSGQ(&TOPGMQ) + MSGTYPE(&MSGTYPE) MONMSG MSGID(CPF2400) EXEC(RETURN) ENDDO ENDPGM