COBOL2002 ユーザーズガイド
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.exe"> <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%$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>
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.