PGM /*-------------------------------------------------------------------*/ /* MLTOVLCL : 複写式伝票をオーバーレイ印刷 */ /* */ /* 2023/02/28 作成 */ /*-------------------------------------------------------------------*/ 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/MLTOVLFM) DCL VAR(&DATE6) TYPE(*CHAR) LEN(6) DCL VAR(&DATE8) TYPE(*CHAR) LEN(8) /*( PDF 出力に必要な変数 )*/ DCL VAR(&USER) TYPE(*CHAR) LEN(10) + VALUE('QTMHHTTP ') DCL VAR(&JOB) TYPE(*CHAR) LEN(10) + VALUE('AURORA_EGN') DCL VAR(&JOBNBR) TYPE(*CHAR) LEN(6) DCL VAR(&PDF_FILE) TYPE(*CHAR) LEN(48) DCL VAR(&PCCMD) TYPE(*CHAR) LEN(123) DCL VAR(&IPADR) TYPE(*CHAR) LEN(15) /*( IFS の削除に必要な変数 )*/ DCL VAR(&PDF_LINK) TYPE(*CHAR) LEN(128) DCL VAR(&DATEC) TYPE(*CHAR) LEN(6) DCL VAR(&TIME) TYPE(*CHAR) LEN(6) DCL VAR(&HH) TYPE(*DEC) LEN(2 0) DCL VAR(&HHC) TYPE(*CHAR) LEN(2) DCL VAR(&MM) TYPE(*DEC) LEN(2 0) DCL VAR(&MMC) TYPE(*CHAR) LEN(2) DCL VAR(&SS) TYPE(*DEC) LEN(2 0) DCL VAR(&SSC) TYPE(*CHAR) LEN(2) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) /*( 環境の取得 )*/ RTVSYSVAL SYSVAL(QDATE) RTNVAR(&DATEC) RTVSYSVAL SYSVAL(QTIME) RTNVAR(&TIME) RTVJOBA TYPE(&TYPE) DATE(&DATE6) IF COND(&TYPE *EQ '0') THEN(DO) /* バッチ */ CHGVAR VAR(&TOPGMQ) VALUE('*SYSOPR ') ENDDO /* バッチ */ ELSE CMD(DO) /* 対話式 */ CHGVAR VAR(&TOPGMQ) VALUE('*TOPGMQ ') ENDDO /* 対話式 */ CHGVAR VAR(&DATE8) VALUE('20' *CAT &DATE6) CHGVAR VAR(&DATE) VALUE(&DATE8) /*( プロンプト表示 )*/ SNDRCVF RCDFMT(DSPHEAD) IF COND(&IN03 *EQ '1') THEN(RETURN) /*( 実行 )*/ OVRPRTF FILE(URIDEN) HOLD(*YES) SECURE(*YES) + OVRSCOPE(*JOB) CALL PGM(QTROBJ/MLTOVL) DLTOVR FILE(URIDEN) LVL(*JOB) /*-------------------------------------------------------------------*/ /* (1) 売上伝票 */ /*-------------------------------------------------------------------*/ CHGVAR VAR(&PDF_FILE) + VALUE('URIAGE.PDF') SPOOLWTR/CVTSPLF SPLF(URIDEN) JOB(*) SPLNO(*LAST) + OUTPUT(*PDF) OPTION(*IFS) PAGESIZE(*A4 + *PORTRAIT) TOSTMF(&PDF_FILE) + TODIR('/AS400-NET.USR/TEMP') + FRONTOVL(('/SPOOLWTR/URIAGE.JPG')) CALLSUBR SUBR(DSPLY) /* GOTO DLTSPL */ /*-------------------------------------------------------------------*/ /* (2) 納品書 */ /*-------------------------------------------------------------------*/ CHGVAR VAR(&PDF_FILE) + VALUE('NOHIN.PDF') SPOOLWTR/CVTSPLF SPLF(URIDEN) JOB(*) SPLNO(*LAST) + OUTPUT(*PDF) OPTION(*IFS) PAGESIZE(*A4 + *PORTRAIT) TOSTMF(&PDF_FILE) + TODIR('/AS400-NET.USR/TEMP') + FRONTOVL(('/SPOOLWTR/NOHIN.JPG')) CALLSUBR SUBR(DSPLY) /*-------------------------------------------------------------------*/ /* (3) 受領書 */ /*-------------------------------------------------------------------*/ CHGVAR VAR(&PDF_FILE) + VALUE('JURYO.PDF') SPOOLWTR/CVTSPLF SPLF(URIDEN) JOB(*) SPLNO(*LAST) + OUTPUT(*PDF) OPTION(*IFS) PAGESIZE(*A4 + *PORTRAIT) TOSTMF(&PDF_FILE) + TODIR('/AS400-NET.USR/TEMP') + FRONTOVL(('/SPOOLWTR/JURYO.JPG')) CALLSUBR SUBR(DSPLY) /*-------------------------------------------------------------------*/ /* (4) 出荷指示 */ /*-------------------------------------------------------------------*/ SPOOLWTR/RMVSPLCHR SPLF(URIDEN) JOB(*) SPLNO(*LAST) + STRING((26 105 26 113) (28 105 28 113) + (30 105 30 113) (54 105 54 113) (56 105 + 56 113) (57 105 57 113)) CHGVAR VAR(&PDF_FILE) + VALUE('SHUKA.PDF') SPOOLWTR/CVTSPLF SPLF(URIDEN) JOB(*) SPLNO(*LAST) + OUTPUT(*PDF) OPTION(*IFS) PAGESIZE(*A4 + *PORTRAIT) TOSTMF(&PDF_FILE) + TODIR('/AS400-NET.USR/TEMP') + FRONTOVL(('/SPOOLWTR/SHUKA.JPG')) CALLSUBR SUBR(DSPLY) /*-------------------------------------------------------------------*/ /* 処理したスプールを削除 */ /*-------------------------------------------------------------------*/ DLTSPL: DLTSPLF FILE(URIDEN) JOB(*) SPLNBR(*LAST) CHGVAR VAR(&MSG) + VALUE(' 売上伝票を発行しました。 ') GOTO SNDMSG 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 /******************************/ SUBR SUBR(DSPLY) /******************************/ /*( IFS に保存された PDF を表示する )*/ RTVDTAARA DTAARA(ASNET.USR/HTTPSVR (1 15)) RTNVAR(&IPADR) CHGVAR VAR(&PCCMD) VALUE('START HTTP://' *CAT + &IPADR *TCAT '/AS400-NET.USR/TEMP/' *CAT &PDF_FILE) CHGVAR VAR(&PCCMD) VALUE(&PCCMD *TCAT ' *PRINT') STRPCO PCTA(*NO) MONMSG MSGID(IWS4010) STRPCCMD PCCMD(&PCCMD) PAUSE(*NO) CALLSUBR SUBR(DLT_IFS) ENDSUBR /******************************/ SUBR SUBR(DLT_IFS) /******************************/ /*( 10 分後に一時ファイルを消す )*/ RTVSYSVAL SYSVAL(QDATE) RTNVAR(&DATEC) RTVSYSVAL SYSVAL(QTIME) RTNVAR(&TIME) CHGVAR VAR(&HH) VALUE(%SST(&TIME 1 2)) CHGVAR VAR(&MM) VALUE(%SST(&TIME 3 2)) CHGVAR VAR(&SS) VALUE(%SST(&TIME 5 2)) CHGVAR VAR(&MM) VALUE(&MM + 10) IF COND(&MM >= 60) THEN(DO) CHGVAR VAR(&HH) VALUE(&HH + 1) CHGVAR VAR(&MM) VALUE(1) ENDDO CHGVAR VAR(&HHC) VALUE(&HH) CHGVAR VAR(&MMC) VALUE(&MM) CHGVAR VAR(&SSC) VALUE(&SS) CHGVAR VAR(&TIME) VALUE(&HHC *CAT &MMC *CAT &SSC) CHGVAR VAR(&PDF_LINK) + VALUE('AS400-NET.USR/TEMP/' *CAT + &PDF_FILE) SBMJOB CMD(RMVLNK OBJLNK(&PDF_LINK)) JOB(DLTIFS) + SCDDATE(&DATEC) SCDTIME(&TIME) MSGQ(*NONE) ENDSUBR ENDPGM