PGM PARM(&FROMCD &TOCD &CNTRY &OUTPUT) /*---------------------------------------------------------*/ /* PGM108 : 部課マスター一覧表 ( 中国語 ) */ /*---------------------------------------------------------*/ DCL VAR(&FROMCD) TYPE(*CHAR) LEN(2) DCL VAR(&TOCD) TYPE(*CHAR) LEN(2) DCL VAR(&CNTRY) TYPE(*CHAR) LEN(3) DCL VAR(&OUTPUT) TYPE(*CHAR) LEN(6) 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') 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 /* 対話式 */ /*( 環境の設定 )*/ IF COND(&CNTRY *EQ 'JPN') THEN(DO) /* 日本 */ CHGJOB LANGID(JPN) CNTRYID(JP) CCSID(65535) ENDDO /* 日本 */ IF COND(&CNTRY *EQ 'CHS') THEN(DO) /* 中国 */ ADDLIBLE CHINALIB MONMSG CPF2100 CHGJOB LANGID(CHS) CNTRYID(CN) CCSID(65535) ENDDO /* 中国 */ /*( 出力オプション )*/ IF COND((&OUTPUT *EQ '* ') *OR (&OUTPUT *EQ + '*BOTH ')) THEN(DO) OVRPRTF FILE(PGM108P) HOLD(*YES) ENDDO /*( 実行 )*/ IF COND(&CNTRY *EQ 'JPN') THEN(DO) /* 日本 */ OVRPRTF FILE(PGM108P) TOFILE(QTROBJ/PGM108P) + SECURE(*YES) OVRSCOPE(*JOB) ENDDO /* 日本 */ IF COND(&CNTRY *EQ 'CHS') THEN(DO) /* 中国 */ OVRPRTF FILE(PGM108P) TOFILE(CHINALIB/PGM108P) + SECURE(*YES) OVRSCOPE(*JOB) ENDDO /* 中国 */ OVRDBF FILE(BUKAM) TOFILE(QTRFIL/BUKAM) + SECURE(*YES) OVRSCOPE(*JOB) CALL PGM(QTROBJ/PGM108) PARM(&FROMCD &TOCD) MONMSG MSGID(RPG9801) EXEC(GOTO CMDLBL(ERROR)) DLTOVR FILE(PGM108P NUKAM) LVL(*JOB) MONMSG CPF9800 CHGJOB LANGID(JPN) CNTRYID(JP) SNDPGMMSG MSG(' 印刷を完了しました。 ') MSGTYPE(*DIAG) IF COND(&CNTRY *EQ 'CHS') THEN(DO) /* 中国 */ RMVLIBLE CHINALIB ENDDO /* 中国 */ /*( 出力オプション )*/ IF COND((&OUTPUT *EQ '* ') *OR (&OUTPUT *EQ + '*BOTH ')) THEN(DO) DSPSPLF FILE(PGM108P) JOB(*) SPLNBR(*LAST) ENDDO IF COND(&OUTPUT *EQ '* ') THEN(DO) DLTSPLF FILE(PGM108P) SPLNBR(*LAST) ENDDO IF COND(&OUTPUT *EQ '*BOTH ') THEN(DO) RLSSPLF FILE(PGM108P) JOB(*) SPLNBR(*LAST) ENDDO 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) ENDDO ELSE CMD(DO) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) TOMSGQ(&TOPGMQ) + MSGTYPE(&MSGTYPE) ENDDO ENDPGM