HTMLテンプレートに埋め込むHTML拡張言語の文法について説明します。
$%変数名%$
<HTML>
<HEAD>
<TITLE>変数名</TITLE>
</HEAD>
<BODY>
Name : $%ITEM1%$
</BODY>
</HTML>
IDENTIFICATION DIVISION.
PROGRAM-ID. CGIMAIN.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAMELIST USAGE ADDRESS VALUE NULL.
01 NAMEX PIC X(28).
01 VALUEX.
02 VALUE-LEN PIC S9(9) USAGE COMP.
02 VALUE-STRING.
03 PIC X OCCURS 1024 DEPENDING ON VALUE-LEN.
PROCEDURE DIVISION.
*> CGIリスト作成
CALL 'CBLCREATELIST' USING NAMELIST.
MOVE 'ITEM1' TO NAMEX.
COMPUTE VALUE-LEN = FUNCTION LENGTH('COBOL2002').
MOVE 'COBOL2002' TO VALUE-STRING.
CALL 'CBLADDPAIR' USING NAMELIST NAMEX VALUEX.
*> COBOL副プログラムの呼び出し
CALL 'CGISUB' USING NAMELIST.
*> CGIリスト削除
CALL 'CBLDESTROYLIST' USING NAMELIST.
STOP RUN.
Name:COBOL2002
$%REPEAT%$
$%変数名%$
$%END-REPEAT%$
$%REPEAT%$
$%変数名1%$
$%変数名2%$
:
$%END-REPEAT%$
名前 | 値 |
---|---|
ITEM1 | DATA01 |
ITEM2 | DATA02 |
ITEM1 | DATA11 |
ITEM2 | DATA12 |
$%REPEAT%$
$%ITEM1%$
$%ITEM2%$
$%END-REPEAT%$
DATA01
DATA02
DATA11
DATA12
<HTML>
<HEAD>
<TITLE>REPEAT</TITLE>
</HEAD>
<BODY>
$%REPEAT%$
$%CITY%$ : $%COLOR%$ <BR>
$%END-REPEAT%$
</BODY>
</HTML>
IDENTIFICATION DIVISION.
PROGRAM-ID. CGIMAIN.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAMELIST USAGE ADDRESS VALUE NULL.
01 NAMEX PIC X(28).
01 VALUEX.
02 VALUE-LEN PIC S9(9) USAGE COMP.
02 VALUE-STRING.
03 PIC X OCCURS 1024 DEPENDING ON VALUE-LEN.
PROCEDURE DIVISION.
*> CGIリスト作成
CALL 'CBLCREATELIST' USING NAMELIST.
MOVE 'CITY' TO NAMEX.
MOVE 5 TO VALUE-LEN.
MOVE 'TOKYO' TO VALUE-STRING.
CALL 'CBLADDPAIR' USING NAMELIST NAMEX VALUEX.
MOVE 'COLOR' TO NAMEX.
MOVE 4 TO VALUE-LEN.
MOVE 'GRAY' TO VALUE-STRING.
CALL 'CBLADDPAIR' USING NAMELIST NAMEX VALUEX.
MOVE 'CITY' TO NAMEX.
MOVE 7 TO VALUE-LEN.
MOVE 'FUKUOKA' TO VALUE-STRING.
CALL 'CBLADDPAIR' USING NAMELIST NAMEX VALUEX.
MOVE 'COLOR' TO NAMEX.
MOVE 3 TO VALUE-LEN.
MOVE 'RED' TO VALUE-STRING.
CALL 'CBLADDPAIR' USING NAMELIST NAMEX VALUEX.
*> COBOL副プログラムの呼び出し
CALL 'CGISUB' USING NAMELIST.
*> CGIリスト削除
CALL 'CBLDESTROYLIST' USING NAMELIST.
STOP RUN.
TOKYO:GRAY
FUKUOKA:RED
<FORM NAME="MAIN" METHOD="POST" ACTION=
"/scripts/cgisample">
<INPUT TYPE="text" NAME="INPUTTEXT1" VALUE="DATA1"
MAXLENGTH="20"><BR>
<TEXTAREA COLS="60" ROWS="8" NAME="TEXTAREA1">
</TEXTAREA><BR>
<INPUT TYPE="hidden" NAME=".REPEAT.TERMINATOR"
VALUE="1">
<INPUT TYPE="text" NAME="INPUTTEXT1" VALUE="DATA2"
MAXLENGTH="20"><BR>
<TEXTAREA COLS="60" ROWS="8" NAME="TEXTAREA1">
</TEXTAREA><BR>
<INPUT TYPE="hidden" NAME=".REPEAT.TERMINATOR"
VALUE="1"><INPUT TYPE="submit" NAME="submit"
VALUE="送信" ><BR></FORM> :
:
$%REPEAT%$
データ名:$%INPUTTEXT1%$ <BR>
データ内容:
$%REPEAT%$
$%TEXTAREA1%$
$%END-REPEAT%$
<BR>
$%END-REPEAT%$
:
:$%REPEAT%$$%NAME1%$$%END-REPEAT%$ :
$%IF ( 変数名 演算子 'リテラル文字' )%$
:
{$%ELSE%$}
:
$%END-IF%$
$%IF ( 変数名1 演算子 変数名2 )%$
:
{$%ELSE%$}
:
$%END-IF%$
$%IF ( 変数名1 演算子 NULL )%$
:
{$%ELSE%$}
:
$%END-IF%$
表25-3 $%IF%$文で使用できる演算子
演算子 | 意味 |
---|---|
= | 等しい |
!= | 等しくない |
> | より大きい |
>= | より大きいか,または等しい |
< | より小さい |
<= | より小さいか,または等しい |
Content-type: text/HTML
<HTML>
<HEAD>
<TITLE>IF ELSE END-IF</TITLE>
</HEAD>
<BODY>
$%IF ( ITEM = 'VALUE-X' )%$
ITEM IS 'VALUE-X'. <BR>
$%ELSE%$
NOT FOUND 'VALUE-X'. <BR>
$%END-IF%$
</BODY>
</HTML>
IDENTIFICATION DIVISION.
PROGRAM-ID. CGIMAIN.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAMELIST USAGE ADDRESS VALUE NULL.
01 NAMEX PIC X(28).
01 VALUEX.
02 VALUE-LEN PIC S9(9) USAGE COMP.
02 VALUE-STRING.
03 PIC X OCCURS 1024 DEPENDING ON VALUE-LEN.
PROCEDURE DIVISION.
*> CGIリスト作成
CALL 'CBLCREATELIST' USING NAMELIST.
MOVE 'ITEM' TO NAMEX.
MOVE 7 TO VALUE-LEN.
MOVE 'VALUE-X' TO VALUE-STRING.
CALL 'CBLADDPAIR' USING NAMELIST NAMEX VALUEX.
*> COBOL副プログラムの呼び出し
CALL 'CGISUB' USING NAMELIST.
*> CGIリスト削除
CALL 'CBLDESTROYLIST' USING NAMELIST.
STOP RUN.
ITEM IS 'VALUE-X'
$%-- コメント --%$
Content-type: text/HTML
<HTML>
<HEAD>
<TITLE>COMMENT</TITLE>
</HEAD>
<BODY>
Webページに出力される
<!-- Webページに出力されるが表示されない -->
$%-- Webページに出力されないコメント --%$
</BODY>
</HTML>
IDENTIFICATION DIVISION.
PROGRAM-ID. CGIMAIN.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
*> COBOL副プログラムの呼び出し
CALL 'CGISUB'.
STOP RUN.
Webページに出力される
<HTML>
<HEAD>
<TITLE>COMMENT</TITLE>
</HEAD>
<BODY>
Webページに出力される
<!-- Webページに出力されるが表示されない -->
</BODY>
</HTML>