PGM /*---------------------------------------------------------*/ /* SMPRINTCL : サンプル・データの印刷 */ /* */ /* この CLP は CGI として呼びだされて */ /* RPG : SMPRINT を実行して印刷出力を行います。 */ /* 印刷出力の結果は SPOOL ライターによって */ /* HTML 化されて直ちにブラウザへ戻されます。 */ /* */ /*---------------------------------------------------------*/ DCL VAR(&MSG) TYPE(*CHAR) LEN(80) DCL VAR(&ENBUFF) TYPE(*CHAR) LEN(2048) DCL VAR(&ENBUFFLN) TYPE(*CHAR) LEN(4) DCL VAR(&ENVARNAME) TYPE(*CHAR) LEN(20) + VALUE('QUERY_STRING') DCL VAR(&ENACTLN) TYPE(*CHAR) LEN(4) DCL VAR(&ENVARLN) TYPE(*CHAR) LEN(4) DCL VAR(&APIERR) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') /* 2 進数 */ DCL VAR(&FRMCOD) TYPE(*CHAR) LEN(10) DCL VAR(&DTA001) TYPE(*CHAR) LEN(120) + VALUE('CONTENT-TYPE: TEXT/HTML*') DCL VAR(&DTA002) TYPE(*CHAR) LEN(120) VALUE(' ') DCL VAR(&DTA003) TYPE(*CHAR) LEN(120) + VALUE(' 印刷 CLP</TITL+ E>') DCL VAR(&DTA004) TYPE(*CHAR) LEN(120) + VALUE('<META HTTP-EQUIV="CONTENT-TYPE" + CONTENT="TEXT/HTML; CHARSET="X-SJIS">') DCL VAR(&DTA005) TYPE(*CHAR) LEN(120) + VALUE('<META HTTP-EQUIV="REFRESH" + CONTENT="0;URL=HTTP://218.44.135.18/AS400-N+ ET.USR/PROJECT/SMPRINT/') DCL VAR(&DTA006) TYPE(*CHAR) LEN(120) + VALUE('</HEAD>') DCL VAR(&DTA007) TYPE(*CHAR) LEN(120) + VALUE('<BODY>') DCL VAR(&DTA008) TYPE(*CHAR) LEN(120) + VALUE('<TABLE WIDTH="100%" + HEIGHT="100%" BORDER="0">') DCL VAR(&DTA009) TYPE(*CHAR) LEN(120) + VALUE('<TR HEIGHT="100%"><TD + WIDTH="100%" ALIGN="CENTER" + VALIGN="MIDDLE">') DCL VAR(&DTA010) TYPE(*CHAR) LEN(120) + VALUE('<SPAN STYLE="FONT-FAMILY:''MS UI + Gナホクケウ'': FONT-SIZE: + 10PT"> しばらくお待ちください . . + .</SPAN></TD></TR>') DCL VAR(&DTA011) TYPE(*CHAR) LEN(120) + VALUE('</TABLE>') DCL VAR(&DTA012) TYPE(*CHAR) LEN(120) + VALUE('</BODY></HTML>') DCL VAR(&DATA) TYPE(*CHAR) LEN(1440) DCL VAR(&HTML) TYPE(*CHAR) LEN(120) DCL VAR(&N) TYPE(*DEC) LEN(4 0) VALUE(3) DCL VAR(&POS) TYPE(*DEC) LEN(4 0) VALUE(241) DCL VAR(&OUTLN) TYPE(*CHAR) LEN(4) DCL VAR(&CRLN) TYPE(*CHAR) LEN(2) VALUE(X'1500') DCL VAR(&OUTPUT) TYPE(*CHAR) LEN(20) DCL VAR(&JOBNBR) TYPE(*CHAR) LEN(6) VALUE('096165') DCL VAR(&JOB) TYPE(*CHAR) LEN(10) DCL VAR(&USER) TYPE(*CHAR) LEN(10) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) ADDLIBLE LIB(SPOOLWTR) MONMSG CPF2100 RTVJOBA JOB(&JOB) USER(&USER) NBR(&JOBNBR) CHGVAR VAR(&OUTPUT) VALUE('P' *CAT &JOBNBR *TCAT + '.HTM') /*( ブラウザからの入力値を取得 )*/ CHGVAR VAR(%BIN(&ENBUFFLN)) VALUE(2048) CHGVAR VAR(%BIN(&ENACTLN)) VALUE(0) CHGVAR VAR(%BIN(&ENVARLN)) VALUE(12) CALLPRC PRC(QホテクGオホEトミ) PARM(&ENBUFF &ENBUFFLN + &ENACTLN &ENVARNAME &ENVARLN &APIERR) CHGVAR VAR(&FRMCOD) VALUE(%SST(&ENBUFF 8 10)) /*---( 印刷プログラム SMPRINT の実行 )------------------------*/ OVRDBF FILE(SHOHIN) TOFILE(QTRFIL/SHOHIN) + OVRSCOPE(*JOB) OVRPRTF FILE(QPRINT) HOLD(*YES) SECURE(*YES) + OVRSCOPE(*JOB) CALL PGM(R520OBJ/SMPRINT) PARM(&FRMCOD) DLTOVR FILE(SHOHIN) LVL(*JOB) /*( SPOOLWTR/CVTSPLF による HTML 変換 )*/ SPOOLWTR/CVTSPLF SPLF(QPRINT) JOB(&JOBNBR/&USER/&JOB) + SPLNO(*LAST) OUTPUT(*HTML) OPTION(*IFS) + TOSTMF(&OUTPUT) + TODIR('/AS400-NET.USR/PROJECT/SMPRINT') /*( 変換後の保管場所にリダイレクト )*/ CHGVAR VAR(&DATA) VALUE(&DTA001 *CAT &DTA002 *CAT + &DTA003 *CAT &DTA004 *CAT &DTA005 *CAT + &DTA006 *CAT &DTA007 *CAT &DTA008 *CAT + &DTA009 *CAT &DTA010 *CAT &DTA011 *CAT + &DTA012) CHGVAR VAR(%BIN(&OUTLN)) VALUE(120) LOOP: CHGVAR VAR(&HTML) VALUE(%SST(&DATA &POS 120)) IF COND(&N *EQ 5) THEN(DO) CHGVAR VAR(&HTML) VALUE(&HTML *TCAT &OUTPUT *TCAT + '">') ENDDO CHGVAR VAR(&HTML) VALUE(&HTML *TCAT &CRLN) CALLPRC PRC(QホテクWネSホナマホ) PARM(&HTML &OUTLN &APIERR) IF COND(&N < 12) THEN(DO) CHGVAR VAR(&N) VALUE(&N + 1) CHGVAR VAR(&POS) VALUE(&POS + 120) GOTO LOOP ENDDO /*( 処理完了すればスプールを削除する。 )*/ DLTSPLF FILE(QPRINT) JOB(&JOBNBR/&USER/&JOB) + SPLNBR(*LAST) RMVLIBLE SPOOLWTR RETURN ERROR: RCVMSG RMV(*NO) MSG(&MSG) SNDMSG: SNDPGMMSG MSG(&MSG) TOMSGQ(*SYSOPR) MSGTYPE(*COMP) DSPJOBLOG OUTPUT(*PRINT) ENDPGM