PGM PARM(&RCVPRM) /*-------------------------------------------------------------------*/ /* PNL003CL : 商品マスター照会 */ /* */ /* 2020/01/04 作成 */ /*-------------------------------------------------------------------*/ DCL VAR(&RCVPRM) TYPE(*CHAR) LEN(70) 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(&MSGKEY) TYPE(*CHAR) LEN(4) 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(&ERR) TYPE(*CHAR) LEN(1) DCL VAR(&APIERR) TYPE(*CHAR) LEN(116) + VALUE(X'000074') /* 2 進数 */ DCL VAR(&NULL4) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') /*( PNLGRP 変数 )*/ DCL VAR(&HANDLE) TYPE(*CHAR) LEN(8) /* + 摘要業務ハンドル */ DCL VAR(&LHANDL) TYPE(*CHAR) LEN(4) /* + リストハンドル */ DCL VAR(&LSTHND) TYPE(*CHAR) LEN(4) /* + リストハンドル */ DCL VAR(&LSTNAM) TYPE(*CHAR) LEN(10) DCL VAR(&DSPDTA) TYPE(*CHAR) LEN(1024) DCL VAR(&DTALEN) TYPE(*CHAR) LEN(4) + VALUE(X'00000400') /* 2 進数 */ DCLF FILE(QTRFIL/SHOHIN) DCL VAR(&SHTANK_C) TYPE(*CHAR) LEN(7) DCL VAR(&NO) TYPE(*DEC) LEN(4 0) VALUE(0) DCL VAR(&NORCD) TYPE(*CHAR) LEN(4) DCL VAR(&NOLEN) TYPE(*CHAR) LEN(4) + VALUE(X'00000004') /* 2 進数 */ DCL VAR(&OPTION) TYPE(*CHAR) LEN(4) VALUE('FRST') 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 /* 対話式 */ /*( 入力パラメータの取得 )*/ CHGVAR VAR(&HANDLE) VALUE(%SST(&RCVPRM 17 8)) CHGVAR VAR(&LSTNAM) VALUE(%SST(&RCVPRM 35 10)) CHGVAR VAR(&LHANDL) VALUE(%SST(&RCVPRM 45 4)) READ: RCVF RCDFMT(SHOHINR) MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(REDEND)) CHGVAR VAR(&SHTANK_C) VALUE(&SHTANK) CHGVAR VAR(&DSPDTA) VALUE(&SHCODE *CAT &SHNAME + *CAT &SHTANK_C *CAT &SHSCOD) CALL PGM(QTROBJ/PNL002) PARM(&DSPDTA &ERR &MSG) /*( リスト追加 )*/ CHGVAR VAR(&NO) VALUE(&NO + 1) CHGVAR VAR(&NORCD) VALUE(&NO) CALL PGM(QUIPUTV) PARM(&HANDLE &NORCD &NOLEN + 'NORCD ' &APIERR) CALL PGM(QUIADDLE) PARM(&HANDLE &DSPDTA &DTALEN + 'SFLRCD' 'SFL' &OPTION &LSTHND &APIERR) IF COND(%SST(&APIERR 5 4) *NE &NULL4) THEN(DO) SNDPGMMSG + MSG('API: QUIADDLE の実行で次のエラーが発生 + しました。 ') MSGTYPE(*DIAG) GOTO APIERR ENDDO CHGVAR VAR(&OPTION) VALUE('NEXT') GOTO READ REDEND: /*( すべてのセットを宣言 )*/ CALL PGM(QUISETLA) PARM(&HANDLE 'SFL ' 'ALL + ' 'EXITPGM ' 'SAME' 'N' &APIERR) IF COND(%SST(&APIERR 5 4) *NE &NULL4) THEN(DO) SNDPGMMSG + MSG('API: QUSETLA の実行で次のエラーが発生 + しました。 ') MSGTYPE(*DIAG) GOTO APIERR ENDDO RETURN APIERR: CHGVAR VAR(&MSGID) VALUE(%SST(&APIERR 9 7)) CHGVAR VAR(&MSGDTA) VALUE(%SST(&APIERR 17 100)) CHGVAR VAR(&MSGF) VALUE('QCPFMSG ') CHGVAR VAR(&MSGFLIB) VALUE('QSYS ') GOTO SNDMSG 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(*ESCAPE) ENDDO ELSE CMD(DO) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) TOMSGQ(*TOPGMQ) + MSGTYPE(*ESCAPE) ENDDO ENDPGM