DBCS グラフィック・データ・タイプと組み合わせて可変長フィールドを使用して、可変長 DBCS グラフィック・データを指定できます。 可変長 DBCS グラフィック・データを指定するには、CRTCBLMOD コマンドまたは CRTBNDCBL コマンドの CVTOPT パラメーターに *VARCHAR および *PICXGRAPHIC を指定するか、 または PROCESS ステートメントに VARCHAR オプションおよび CVTPICXGRAPHIC オプションを指定します。
CVTOPT(*NOVARCHAR *NOPICGGRAPHIC)、CVTOPT(*NOVARCHAR *PICGGRAPHIC)、CVTOPT(*NOVARCHAR *NOPICXGRAPHIC) または CVTOPT(*NOVARCHAR *PICXGRAPHIC) のどれかを指定した場合、ILE COBOL コンパイラーが可変長 DBCS グラフィック・データ項目を検出すると、プログラムの内容は次のようになります。
06 FILLER PIC X(2n+2). * (Variable-length field)
n は DDS フィールドの中の文字数です。
CVTOPT(*VARCHAR *NOPICGGRAPHIC) または CVTOPT(*VARCHAR *NOPICXGRAPHIC) を指定した場合、ILE COBOL コンパイラーが可変長 DBCS グラフィック・データ項目を検出すると、プログラムの内容は次のようになります。
06 NAME * (Variable-length field) 49 NAME-LENGTH PIC S9(4) COMP-4. * (Number of 2-byte characters) 49 FILLER PIC X(2n).
n は DDS フィールドの中の DBCS 文字の数です。
CVTOPT(*VARCHAR *PICXGRAPHIC) を指定した場合、ILE COBOL コンパイラーが可変長 DBCS グラフィック・データ項目を検出すると、プログラムの内容は次のようになります。
06 NAME * (Variable-length field) 49 NAME-LENGTH PIC S9(4) COMP-4. * (Number of 2-byte characters) 49 NAME-DATA PIC X(2n).
n は DDS フィールドの中の DBCS 文字の数です。
CVTOPT(*VARCHAR *PICGGRAPHIC) を指定した場合、ILE COBOL コンパイラーが可変長 DBCS グラフィック・データ項目を検出すると、プログラムの内容は次のようになります。
06 NAME * (Variable-length field) 49 NAME-LENGTH PIC S9(4) COMP-4. * (Number of 2-byte characters) 49 NAME-DATA PIC G(n) DISPLAY-1.
n は DDS フィールドの中の DBCS 文字の数です。
図 111 は、DDS ファイルで可変長 DBCS グラフィック・データ項目を定義する例です。 図 112 は、*PICXGRAPHIC を指定した形式 2 の COPY ステートメントを使用した ILE COBOL プログラムと、そのプログラムがコンパイルされた結果のリストです。 図 113 は、*PICGGRAPHIC を指定した可変長 DBCS グラフィック・データ項目を使用した ILE COBOL プログラムです。
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 A R SAMPLEFILE A* A VARITEM 100 VARLEN A* A TIMEITEM T TIMFMT(*HMS) A DATEITEM L DATFMT(*YMD) A TIMESTAMP Z A* A GRAPHITEM 100G A VGRAPHITEM 100G VARLEN
5722WDS V5R4M0 060210 LN IBM ILE COBOL CBLGUIDE/PGM1 ISERIES1 06/02/15 14:31:24 ページ 2
ソ ー ス
STMT PL SEQNO -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S コピー名 変更日付
000100 process varchar datetime cvtpicxgraphic
1 000200 Identification division.
2 000300 Program-id. pgm1.
000400
3 000500 Environment division.
4 000600 Configuration section.
5 000700 Source-computer. ibm-iSeries.
6 000800 Object-computer. ibm-iSeries.
7 000900 Input-output section.
8 001000 File-control.
9 001100 Select file1
10 001200 assign to database-samplefi 00/08/15
11 001300 organization is sequential
12 001400 access is sequential
13 001500 file status is fs1.
001600
14 001700 Data division.
15 001800 File section.
16 001900 fd file1.
17 002000 01 record1.
002100 copy dds-all-formats of samplefi. 00/08/15
18 +000001 05 SAMPLEFI-RECORD PIC X(546). <-ALL-FMTS
+000002* I-O FORMAT:SAMPLEFILE FROM FILE SAMPLEFI OF LIBRARY CBLGUIDE <-ALL-FMTS
+000003* <-ALL-FMTS
19 +000004 05 SAMPLEFILE REDEFINES SAMPLEFI-RECORD. <-ALL-FMTS
20 +000005 06 VARITEM. <-ALL-FMTS
+000006* (可変長フィールド) <-ALL-FMTS
21 +000007 49 VARITEM-LENGTH PIC S9(4) COMP-4. <-ALL-FMTS
22 +000008 49 VARITEM-DATA PIC X(100). <-ALL-FMTS
23 +000009 06 TIMEITEM PIC X(8). <-ALL-FMTS
+000010* (時刻フィールド) <-ALL-FMTS
24 +000011 06 DATEITEM PIC X(8). <-ALL-FMTS
+000012* (日付フィールド) <-ALL-FMTS
25 +000013 06 TIMESTAMP PIC X(26). <-ALL-FMTS
+000014* (タイム・スタンプ・フィールド) <-ALL-FMTS
26 +000015 06 GRAPHITEM PIC X(200). <-ALL-FMTS
+000016* (グラフィック・フィールド) <-ALL-FMTS
27 +000017 06 VGRAPHITEM. <-ALL-FMTS
+000018* (可変長フィールド) <-ALL-FMTS
28 +000019 49 VGRAPHITEM-LENGTH <-ALL-FMTS
+000020 PIC S9(4) COMP-4. <-ALL-FMTS
+000021* (2 バイト文字の数) <-ALL-FMTS
29 +000022 49 VGRAPHITEM-DATA PIC X(200). <-ALL-FMTS
+000023* (グラフィック・フィールド) <-ALL-FMTS
30 002200 Working-Storage section.
31 002300 77 fs1 pic x(2).
002400
32 002500 Procedure division.
002600 Mainline.
33 002700 stop run.
* * * * * ソ ー ス 仕 様 の 終 わ り * * * * *
5722WDS V5R4M0 060210 LN IBM ILE COBOL CBLGUIDE/DBCSPICG ISERIES1 06/02/15 14:48:02 ページ 2
ソ ー ス
STMT PL SEQNO -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S コピー名 変更日付
000100 process varchar datetime cvtpicggraphic 00/08/21
1 000200 Identification division.
2 000300 Program-id. dbcspicg. 00/08/21
000400
3 000500 Environment division.
4 000600 Configuration section.
5 000700 Source-computer. ibm-iSeries.
6 000800 Object-computer. ibm-iSeries.
7 000900 Input-output section.
8 001000 File-control.
9 001100 Select file1
10 001200 assign to database-samplefi 00/08/15
11 001300 organization is sequential
12 001400 access is sequential
13 001500 file status is fs1.
001600
14 001700 Data division.
15 001800 File section.
16 001900 fd file1.
17 002000 01 record1.
002100 copy dds-all-formats of samplefi. 00/08/15
18 +000001 05 SAMPLEFI-RECORD PIC X(546). <-ALL-FMTS
+000002* I-O FORMAT:SAMPLEFILE FROM FILE SAMPLEFI OF LIBRARY CBLGUIDE <-ALL-FMTS
+000003* <-ALL-FMTS
19 +000004 05 SAMPLEFILE REDEFINES SAMPLEFI-RECORD. <-ALL-FMTS
20 +000005 06 VARITEM. <-ALL-FMTS
+000006* (可変長フィールド) <-ALL-FMTS
21 +000007 49 VARITEM-LENGTH PIC S9(4) COMP-4. <-ALL-FMTS
22 +000008 49 VARITEM-DATA PIC X(100). <-ALL-FMTS
23 +000009 06 TIMEITEM PIC X(8). <-ALL-FMTS
+000010* (時刻フィールド) <-ALL-FMTS
24 +000011 06 DATEITEM PIC X(8). <-ALL-FMTS
+000012* (日付フィールド) <-ALL-FMTS
25 +000013 06 TIMESTAMP PIC X(26). <-ALL-FMTS
+000014* (タイム・スタンプ・フィールド) <-ALL-FMTS
26 +000015 06 GRAPHITEM PIC G(100) DISPLAY-1. <-ALL-FMTS
+000016* (グラフィック・フィールド) <-ALL-FMTS
27 +000017 06 VGRAPHITEM. <-ALL-FMTS
+000018* (可変長フィールド) <-ALL-FMTS
28 +000019 49 VGRAPHITEM-LENGTH <-ALL-FMTS
+000020 PIC S9(4) COMP-4. <-ALL-FMTS
+000021* (2 バイト文字の数) <-ALL-FMTS
29 +000022 49 VGRAPHITEM-DATA PIC G(100) DISPLAY-1. <-ALL-FMTS
+000023* (グラフィック・フィールド) <-ALL-FMTS
30 002200 Working-Storage section.
31 002300 77 fs1 pic x(2).
002400
32 002500 Procedure division.
002600 Mainline.
33 002700 stop run.
* * * * * ソ ー ス 仕 様 の 終 わ り * * * * *
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.