プログラミング IBM Rational Development Studio …...IBM i バージョン7.2...

1012
IBM i バージョン 7.2 プログラミング IBM Rational Development Studio for i ILE RPG 解説書 SD88-5043-08 (英文原典:SC09-2508-09)

Transcript of プログラミング IBM Rational Development Studio …...IBM i バージョン7.2...

  • IBM iバージョン 7.2

    プログラミングIBM Rational DevelopmentStudio for iILE RPG 解説書

    SD88-5043-08(英文原典:SC09-2508-09)

    ���

  • IBM iバージョン 7.2

    プログラミングIBM Rational DevelopmentStudio for iILE RPG 解説書

    SD88-5043-08(英文原典:SC09-2508-09)

    ���

  • ご注意本書および本書で紹介する製品をご使用になる前に、 A-1ページの『特記事項』に記載されている情報をお読みください。

    本製品およびオプションに付属の電源コードは、他の電気機器で使用しないでください。

    本書は、IBM Rational Development Studio for i (製品番号 5770-WDS)、および新しい版で明記されていない限り、以降のすべてのリリースおよびモディフィケーションに適用されます。このバージョンは、すべての RISC モデルで稼働するとは限りません。また CISC モデルでは稼働しません。

    本書には、LIC に言及している内容が含まれている場合があります。LIC とは、マシン・コードに関する IBM 使用許諾契約書の条件に基づきお客様がライセンス交付を受けたマシン・コードのことです。

    お客様の環境によっては、資料中の円記号がバックスラッシュと表示されたり、バックスラッシュが円記号と表示されたりする場合があります。

     

    原典: SC09-2508-09IBM i

    Version 7.2

    Programming

    IBM Rational Development Studio for i

    ILE RPG Reference

    発行: 日本アイ・ビー・エム株式会社

    担当: トランスレーション・サービス・センター

    第1刷 2014.4

    © Copyright IBM Corporation 1994, 2013.

  • 目次

    ILE RPG 解説書

    ILE RPG 解説書について . . . . . . . 1-1本書の対象読者 . . . . . . . . . . . . . 1-1前提条件および関連情報 . . . . . . . . . . 1-1コメントの送付方法 . . . . . . . . . . . 1-1

    新着情報 . . . . . . . . . . . . . . 2-1このリリースの新機能について . . . . . . . 2-17.1 出の変更点. . . . . . . . . . . . . 2-116.1 での変更点. . . . . . . . . . . . . 2-15V5R4 での変更点 . . . . . . . . . . . . 2-20V5R3 での変更点 . . . . . . . . . . . . 2-24V5R2 での変更点 . . . . . . . . . . . . 2-29V5R1 での変更点 . . . . . . . . . . . . 2-32V4R4 での変更点 . . . . . . . . . . . . 2-37V4R2 での変更点 . . . . . . . . . . . . 2-41V3R7 での変更点 . . . . . . . . . . . . 2-45V3R6/V3R2 での変更点 . . . . . . . . . . 2-49

    RPG IV の概念 . . . . . . . . . . . 3-1記号名および予約語 . . . . . . . . . . . 3-1記号名 . . . . . . . . . . . . . . . 3-1配列名 . . . . . . . . . . . . . . 3-2条件付きコンパイル名 . . . . . . . . 3-2データ構造名 . . . . . . . . . . . 3-2EXCEPT 名 . . . . . . . . . . . . 3-2フィールド名 . . . . . . . . . . . 3-2KLIST 名 . . . . . . . . . . . . . 3-3ラベル . . . . . . . . . . . . . . 3-3名前付き定数 . . . . . . . . . . . 3-3PLIST 名 . . . . . . . . . . . . . 3-3プロトタイプ名 . . . . . . . . . . . 3-3レコード名 . . . . . . . . . . . . 3-3サブルーチン名 . . . . . . . . . . . 3-3テーブル名 . . . . . . . . . . . . 3-3

    特殊な機能をもつ RPG IV の用語/予約語 . . . 3-3ユーザー日付の特殊語 . . . . . . . . . 3-6ユーザー日付に関する規則 . . . . . . . 3-6

    PAGE、PAGE1 から PAGE7 . . . . . . . 3-7PAGE、PAGE1 から PAGE7 に関する規則 3-8

    コンパイラー指示 . . . . . . . . . . . . 3-9/FREE... /END-FREE . . . . . . . . . . 3-9/TITLE . . . . . . . . . . . . . . . 3-9/EJECT . . . . . . . . . . . . . . 3-10/SPACE . . . . . . . . . . . . . . 3-10/SET . . . . . . . . . . . . . . . 3-10/RESTORE . . . . . . . . . . . . . 3-12/COPY または /INCLUDE . . . . . . . . 3-13

    コンパイル時の /COPY または /INCLUDEの結果 . . . . . . . . . . . . . 3-15ネストされた /COPY または /INCLUDE 3-15組み込み SQL のあるソース・ファイルへの/COPY、/INCLUDE の使用 . . . . . . 3-15

    条件付きコンパイル指示 . . . . . . . . 3-15条件の定義 . . . . . . . . . . . . 3-15

    /DEFINE . . . . . . . . . . . . 3-15/UNDEFINE . . . . . . . . . . . 3-16

    事前定義条件 . . . . . . . . . . . 3-16環境に関連する条件 . . . . . . . . 3-16使用されているコマンドに関連する条件 3-17ターゲット・リリースに関連する条件 3-17

    条件式 . . . . . . . . . . . . . 3-18条件のテスト . . . . . . . . . . . 3-18

    /IF 条件式 . . . . . . . . . . . 3-18/ELSEIF 条件式 . . . . . . . . . 3-18/ELSE. . . . . . . . . . . . . 3-18/ENDIF . . . . . . . . . . . . 3-19条件をテストする場合の規則 . . . . . 3-19

    /EOF 指示 . . . . . . . . . . . . 3-19/EOF . . . . . . . . . . . . . 3-19

    RPG プリプロセッサーによる指示の処理 3-20プロシージャーおよびプログラム論理サイクル 3-21サブプロシージャーの定義 . . . . . . . . 3-22プロシージャー・インターフェース定義 . . 3-24戻り値 . . . . . . . . . . . . . 3-24定義の有効範囲 . . . . . . . . . . 3-25サブプロシージャーおよびサブルーチン . . 3-26

    RPG モジュールでのプログラム・フロー: サイクル対リニア . . . . . . . . . . . . 3-27サイクル・モジュール . . . . . . . . 3-28サイクル・モジュールにおけるサブプロシージャーのエクスポート時の注意 . . . 3-30

    リニア・モジュール . . . . . . . . . 3-31リニア・メイン・モジュール . . . . . 3-31NOMAIN モジュール . . . . . . . 3-31

    モジュールの初期化 . . . . . . . . . 3-32グローバル・データの初期化 . . . . . 3-32

    RPG サイクルおよびその他の暗黙論理 . . . 3-32プログラム・サイクル . . . . . . . . 3-32一般的な RPG IV プログラム・サイクル 3-33詳細な RPG IV プログラム・サイクル 3-34

    サブプロシージャー演算 . . . . . . . 3-45ファイルの暗黙的なオープンおよびデータ域のロック . . . . . . . . . . . . . 3-48暗黙的なファイルのクローズおよびデータ域のアンロック . . . . . . . . . . . 3-48

    RPG IV 標識 . . . . . . . . . . . . . 3-48RPG IV 仕様書で定義される標識 . . . . . 3-49オーバーフロー標識 . . . . . . . . . 3-49

    © Copyright IBM Corp. 1994, 2013 iii

    ||##

    ||||

  • レコード識別標識 . . . . . . . . . . 3-49レコード識別標識の割り当てに関する規則 3-50

    制御レベル標識 (L1 から L9). . . . . . 3-51制御レベル標識に関する規則 . . . . . 3-52分割制御フィールド . . . . . . . . 3-57

    フィールド標識 . . . . . . . . . . 3-59フィールド標識の割り当てに関する規則 3-60

    結果標識 . . . . . . . . . . . . . 3-60結果標識の割り当てに関する規則 . . . 3-61

    RPG IV 仕様書では定義されない標識 . . . . 3-62外部標識 . . . . . . . . . . . . . 3-62内部標識 . . . . . . . . . . . . . 3-62

    1 ページ目標識 (1P) . . . . . . . . 3-63最終レコード標識 (LR) . . . . . . . 3-63突き合わせレコード標識 (MR) . . . . 3-63

    戻り標識 (RT) . . . . . . . . . . . 3-64標識の使用 . . . . . . . . . . . . . 3-64ファイルの条件付け . . . . . . . . . 3-64ファイルの条件付けに関する規則 . . . 3-64

    フィールドとレコードの関連標識 . . . . 3-65フィールドとレコードの関連標識の割り当て . . . . . . . . . . . . . . 3-65

    機能キー標識 . . . . . . . . . . . 3-67停止標識 (H1 から H9) . . . . . . . . 3-68演算の条件付け標識 . . . . . . . . . 3-68

    7 から 8 桁目 . . . . . . . . . . 3-689 から 11 桁目 . . . . . . . . . 3-69

    式で使用されている標識 . . . . . . . 3-71出力の条件付け標識 . . . . . . . . . 3-72

    データとして参照される標識 . . . . . . . 3-75*IN . . . . . . . . . . . . . . 3-75*INxx . . . . . . . . . . . . . . 3-75追加規則 . . . . . . . . . . . . . 3-76

    標識の要約 . . . . . . . . . . . . . 3-77ファイルおよびプログラムの例外/エラー . . . . 3-79ファイル例外/エラー . . . . . . . . . . 3-80ファイル情報データ構造 . . . . . . . 3-80ファイル・フィードバック情報 . . . . 3-81オープン・フィードバック情報 . . . . 3-84入出力フィードバック情報 . . . . . . 3-86装置固有のフィードバック情報 . . . . 3-87属性入手フィードバック情報 . . . . . 3-89ブロック化の考慮事項 . . . . . . . 3-92ファイル状況コード . . . . . . . . 3-93

    ファイル例外/エラー処理サブルーチン(INFSR) . . . . . . . . . . . . . 3-96

    プログラム例外/エラー . . . . . . . . . 3-98プログラム状況データ構造 . . . . . . . 3-99プログラム状況コード . . . . . . . 3-104PSDS の例. . . . . . . . . . . 3-106

    プログラム例外/エラー処理サブルーチン 3-108ファイルに関する一般的な考慮事項 . . . . . 3-108ファイル名に関する規則 . . . . . . . . 3-109ファイル装置 . . . . . . . . . . . . 3-109ファイルの装置タイプ . . . . . . . . 3-109

    グローバル・ファイルとローカル・ファイル 3-110

    オープン・アクセス・ファイル . . . . . . 3-110オープン・アクセス・ハンドラーの探索 3-111オープン・アクセス・ハンドラー . . . . 3-111オープン・アクセス・ハンドラーの例 3-112

    ファイル・パラメーター . . . . . . . . 3-121ファイルに関連付けられる変数 . . . . . . 3-121ファイルを渡す方法および関連付けられている変数を含むデータ構造を渡す方法の例 . 3-122

    全手順ファイル . . . . . . . . . . . 3-1241 次/2 次の複数ファイル処理 . . . . . . 3-124突き合わせフィールドを用いない複数ファイル処理 . . . . . . . . . . . . 3-124突き合わせフィールドを用いた複数ファイル処理 . . . . . . . . . . . . . 3-125突き合わせフィールド値 (M1 から M9)の割り当て . . . . . . . . . . 3-125突き合わせレコードの処理 . . . . . 3-129

    ファイル変換 . . . . . . . . . . . . 3-132ファイル変換の指定 . . . . . . . . 3-1331 つのファイルまたはすべてのファイルの変換 . . . . . . . . . . . . . . 3-133複数ファイルの変換 . . . . . . . . 3-134ファイルの指定 . . . . . . . . . 3-134テーブルの指定 . . . . . . . . . 3-134

    定義 . . . . . . . . . . . . . . . . 4-1データおよびプロトタイプの定義 . . . . . . . 4-1一般的な考慮事項 . . . . . . . . . . . 4-1定義の有効範囲 . . . . . . . . . . . 4-2定義の記憶域 . . . . . . . . . . . 4-3

    独立フィールド . . . . . . . . . . . . 4-4変数の初期化 . . . . . . . . . . . 4-4

    固定情報 . . . . . . . . . . . . . . 4-5リテラル . . . . . . . . . . . . . 4-5リテラルおよびコンパイル時データのCCSID . . . . . . . . . . . . . 4-8リテラルの定義例 . . . . . . . . . 4-9長さがゼロのリテラルの使用例 . . . . 4-10

    名前付き定数 . . . . . . . . . . . 4-10表意定数 . . . . . . . . . . . . . 4-11表意定数に関する規則 . . . . . . . 4-12

    データ構造 . . . . . . . . . . . . . 4-13データ構造名の修飾 . . . . . . . . . 4-14配列データ構造 . . . . . . . . . . 4-14プロトタイプまたはプロシージャー・インターフェースにおけるデータ構造パラメーターの定義 . . . . . . . . . . . . . 4-15データ構造サブフィールドの定義 . . . . 4-16サブフィールドの長さの指定 . . . . . 4-17データ構造サブフィールドの位置合わせ 4-17ネストされたデータ構造の初期化 . . . 4-18

    特殊なデータ構造 . . . . . . . . . . 4-19データ域データ構造 . . . . . . . . 4-19ファイル情報データ構造 . . . . . . 4-19プログラム状況データ構造 . . . . . . 4-19標識のデータ構造 . . . . . . . . . 4-20

    iv IBM i: ILE RPG 解説書

    ||||

    ||||||||

    ||

    |||

  • データ構造の例 . . . . . . . . . . 4-20プロトタイプおよびパラメーター . . . . . 4-30プロトタイプ . . . . . . . . . . . 4-31プロトタイプ・パラメーター . . . . . . 4-33プロシージャー・インターフェース . . . . 4-35

    配列およびテーブルの使用 . . . . . . . . . 4-36配列 . . . . . . . . . . . . . . . 4-37配列名および指標 . . . . . . . . . . 4-37配列の基本仕様 . . . . . . . . . . 4-37実行時配列のコーディング . . . . . . . 4-38実行時配列のロード . . . . . . . . . 4-38ファイルからレコードを 1 つ読み込んで実行時配列をロードする . . . . . . 4-38ファイルから複数のレコードを読み込んで実行時配列をロードする . . . . . . 4-39同一の外部記述フィールドから配列をロードする . . . . . . . . . . . . 4-39実行時配列の順序付け . . . . . . . 4-41

    コンパイル時配列のコーディング . . . . 4-41コンパイル時配列のロード . . . . . . . 4-41配列ソース・レコードに関する規則 . . . 4-41

    実行時前の配列のコーディング . . . . . 4-43配列のコーディング例 . . . . . . . . 4-43実行時前の配列のロード . . . . . . . 4-44文字配列の順序検査 . . . . . . . . . 4-44

    配列の初期化 . . . . . . . . . . . . 4-45実行時配列 . . . . . . . . . . . . 4-45コンパイル時配列および実行時配列 . . . . 4-45

    関連した配列の定義 . . . . . . . . . . 4-45配列の検索 . . . . . . . . . . . . . 4-47指標を用いない配列の検索 . . . . . . . 4-47配列データ構造の検索 . . . . . . . . 4-48指標を用いた配列の検索 . . . . . . . 4-48

    配列の使用 . . . . . . . . . . . . . 4-49演算での配列の指定 . . . . . . . . . 4-49

    配列の分類 . . . . . . . . . . . . . 4-50配列の一部をキーとして使用した分類 . . . 4-50配列データ構造のソート . . . . . . . 4-51

    配列の出力 . . . . . . . . . . . . . 4-51配列全体の編集 . . . . . . . . . . 4-51

    動的にサイズ指定される配列の使用 . . . . . 4-52テーブル . . . . . . . . . . . . . . 4-53

    1 つのテーブルでの LOOKUP . . . . . 4-532 つのテーブルでの LOOKUP . . . . . 4-53LOOKUP 命令で見付かったテーブル要素の指定 . . . . . . . . . . . . . . 4-54

    データ・タイプおよびデータ形式 . . . . . . 4-55内部形式および外部形式 . . . . . . . . 4-55内部形式 . . . . . . . . . . . . . 4-56外部形式 . . . . . . . . . . . . . 4-56数値フィールドの場合の外部形式の指定 4-56文字フィールド、図形フィールド、またはUCS-2 フィールドの場合の外部形式の指定 . . . . . . . . . . . . . . 4-57日付/時刻フィールドの場合の外部形式の指定 . . . . . . . . . . . . . 4-57

    文字データ・タイプ . . . . . . . . . . 4-58文字形式 . . . . . . . . . . . . . 4-58標識形式 . . . . . . . . . . . . . 4-59グラフィック形式 . . . . . . . . . . 4-60UCS-2 形式 . . . . . . . . . . . . 4-61可変長の文字形式、図形形式および UCS-2形式 . . . . . . . . . . . . . . 4-62可変長項目の長さ接頭部のサイズ . . . 4-63可変長の文字形式、図形形式、およびUCS-2 形式に関する規則 . . . . . . 4-63可変長フィールドの使用 . . . . . . 4-66CVTOPT(*VARCHAR) およびCVTOPT(*VARGRAPHIC) . . . . . . 4-68

    文字データ、図形データおよび UCS-2 データの間の変換 . . . . . . . . . . . 4-71データの CCSID . . . . . . . . . 4-71変換 . . . . . . . . . . . . . 4-72

    入出力命令中の CCSID 変換 . . . . . . 4-72代替照合順序 . . . . . . . . . . . 4-73照合順序の変更 . . . . . . . . . 4-73外部照合順序の使用 . . . . . . . . 4-74ソース仕様での代替照合順序の指定 . . . 4-74代替照合順序レコードの形式設定 . . . 4-74

    数字データ・タイプ . . . . . . . . . . 4-752 進-10 進形式 . . . . . . . . . . 4-75プログラム記述 2 進入力フィールドの処理 . . . . . . . . . . . . . . 4-76外部記述 2 進入力フィールドの処理 . . 4-76

    浮動形式 . . . . . . . . . . . . . 4-76浮動小数点フィールドの外部表示表現 4-77

    整数形式 . . . . . . . . . . . . . 4-78パック 10 進数形式 . . . . . . . . . 4-79パック 10 進数フィールドの桁数の長さの判別 . . . . . . . . . . . . . 4-79

    符号なし形式 . . . . . . . . . . . 4-80ゾーン 10 進数形式 . . . . . . . . . 4-80数値形式の使用に関する考慮事項 . . . . 4-81フィールドの数値形式選択に関する考慮事項 . . . . . . . . . . . . . . 4-82

    数値形式の表現 . . . . . . . . . . 4-82日付データ・タイプ . . . . . . . . . . 4-84区切り記号 . . . . . . . . . . . . 4-86初期化 . . . . . . . . . . . . . 4-86

    時刻データ・タイプ . . . . . . . . . . 4-86区切り記号 . . . . . . . . . . . . 4-88初期化 . . . . . . . . . . . . . 4-88*JOBRUN . . . . . . . . . . . . 4-88

    タイム・スタンプ・データ・タイプ . . . . . 4-88区切り記号 . . . . . . . . . . . . 4-89初期化 . . . . . . . . . . . . . 4-89

    オブジェクト・データ・タイプ . . . . . . 4-89オブジェクト・フィールドを指定できる場所 4-90

    基底ポインター・データ・タイプ . . . . . 4-91基底ポインターの設定 . . . . . . . . 4-93例 . . . . . . . . . . . . . . . 4-93

    プロシージャー・ポインター・データ・タイプ 4-98

    目次 v

    ##

    ##

    ||

  • データベースのヌル値サポート . . . . . . 4-99ヌル値可能フィールドおよびキー・フィールドに対するユーザー制御サポート . . . 4-100外部記述データ構造内のヌル可能フィールド . . . . . . . . . . . . . 4-101ヌル値可能フィールドの入力 . . . . 4-101ヌル値可能フィールドの出力 . . . . 4-101キー順命令 . . . . . . . . . . 4-102

    ヌル値可能フィールドの入力専用サポート 4-106ALWNULL(*NO). . . . . . . . . . 4-106

    データベース・データ・マッピング・エラーのエラー処理 . . . . . . . . . . . . 4-106

    数値フィールドの編集 . . . . . . . . . . 4-106編集コード . . . . . . . . . . . . 4-107単純編集コード . . . . . . . . . . 4-107組み合わせ編集コード . . . . . . . . 4-108ユーザー定義編集コード . . . . . . . 4-109編集に関する考慮事項 . . . . . . . . 4-109編集コードの要約 . . . . . . . . . 4-110

    編集語 . . . . . . . . . . . . . . 4-113編集語のコーディング方法 . . . . . . 4-114編集語の各部分 . . . . . . . . . . 4-114編集語の本体の形成 . . . . . . . 4-115編集語の状況の形成 . . . . . . . 4-117編集語の拡張部分の形式設定 . . . . 4-118

    編集語のコーディング規則の要約 . . . . 4-118外部記述ファイルの編集 . . . . . . . . 4-119

    仕様書 . . . . . . . . . . . . . . . 5-1仕様書 . . . . . . . . . . . . . . . . 5-1

    RPG IV の仕様書タイプ . . . . . . . . . 5-1メイン・ソース・セクション仕様書 . . . . 5-2サブプロシージャー仕様書 . . . . . . . 5-3プログラム・データ . . . . . . . . . 5-3

    自由形式ステートメント . . . . . . . . . 5-3自由形式ステートメント内の条件付き指示 . . 5-4認識しておく必要のある固定形式と自由形式の相違点 . . . . . . . . . . . . . 5-5

    共通記入項目 . . . . . . . . . . . . 5-6キーワードの構文 . . . . . . . . . . 5-7継続の規則 . . . . . . . . . . . . 5-8制御仕様書のキーワード・フィールド 5-10ファイル仕様書のキーワード・フィールド 5-10定義仕様書のキーワード・フィールド 5-10演算仕様書の拡張演算項目 2 . . . . . 5-11自由形式仕様書 . . . . . . . . . 5-11出力仕様書の定数/編集語フィールド . . 5-12定義およびプロシージャー仕様書の名前フィールド . . . . . . . . . . . . 5-12

    制御仕様書 . . . . . . . . . . . . . . 5-13データ域の制御仕様書としての使用 . . . . . 5-14自由形式の制御ステートメント . . . . . . 5-15従来型の制御仕様ステートメント . . . . . 5-16

    6 桁目 (仕様書コード) . . . . . . . . 5-167 から 80 桁目 (キーワード) . . . . . . 5-16

    制御仕様書のキーワード . . . . . . . . 5-17

    ALLOC(*STGMDL | *TERASPACE |*SNGLVL) . . . . . . . . . . . . 5-17ACTGRP(*STGMDL | *NEW | *CALLER | '活動化グループ名') . . . . . . . . . 5-17ALTSEQ {(*NONE | *SRC | *EXT) } . . . 5-18ALWNULL(*NO | *INPUTONLY |*USRCTL) . . . . . . . . . . . . 5-18AUT(*LIBRCRTAUT | *ALL | *CHANGE |*USE | *EXCLUDE | '権限認可リスト名') . . 5-19BNDDIR('バインディング・ディレクトリー名' {:'バインディング・ディレクトリー名'...}) . . . . . . . . . . . . . . . 5-20CCSID 制御キーワード . . . . . . . . 5-20

    CCSID(*EXACT) . . . . . . . . . 5-20CCSID(*CHAR : *JOBRUN | *UTF8 |*HEX | 番号) . . . . . . . . . . 5-21CCSID(*GRAPH : *JOBRUN | *SRC |*HEX | *IGNORE | 番号) . . . . . . 5-22CCSID(*UCS2 : *UTF16 | 番号) . . . . 5-22

    CCSIDCVT(*EXCP | *LIST) . . . . . . 5-23COPYNEST(番号) . . . . . . . . . . 5-24COPYRIGHT('版権ストリング') . . . . . 5-25CURSYM('記号') . . . . . . . . . . 5-25CVTOPT(* {NO }DATETIME * {NO}GRAPHIC * {NO }VARCHAR * {NO}VARGRAPHIC) . . . . . . . . . . 5-25DATEDIT(形式 {区切り記号 }) . . . . . 5-26DATFMT(形式 {区切り記号 }) . . . . . 5-26DEBUG {(*INPUT | *DUMP | *XMLSAX |*NO | *YES) } . . . . . . . . . . 5-26DECEDIT(*JOBRUN | '値') . . . . . . . 5-27DECPREC(30|31|63) . . . . . . . . . 5-28DFTACTGRP(*YES | *NO). . . . . . . 5-28DFTNAME(RPG 名) . . . . . . . . . 5-29ENBPFRCOL(*PEP | *ENTRYEXIT | *FULL) 5-30EXPROPTS(*MAXDIGITS | *RESDECPOS) 5-30EXTBININT {(*NO | *YES) } . . . . . 5-30FIXNBR(* {NO }ZONED * {NO}INPUTPACKED) . . . . . . . . . . 5-30FLTDIV {(*NO | *YES) } . . . . . . . 5-31FORMSALIGN {(*NO | *YES) }. . . . . 5-31FTRANS {(*NONE | *SRC) }. . . . . . 5-32GENLVL(番号). . . . . . . . . . . 5-32INDENT(*NONE | '文字値') . . . . . . 5-32INTPREC(10 | 20). . . . . . . . . . 5-32LANGID(*JOBRUN | *JOB | '言語識別子') 5-33MAIN(main_procedure_name) . . . . . . 5-33NOMAIN . . . . . . . . . . . . 5-34OPENOPT (* {NO }INZOFL * {NO}CVTDATA) . . . . . . . . . . . 5-35OPTIMIZE(*NONE | *BASIC | *FULL) . . 5-35OPTION(*{NO}XREF *{NO}GEN*{NO}SECLVL *{NO}SHOWCPY*{NO}EXPDDS *{NO}EXT*{NO}SHOWSKP) *{NO}SRCSTMT)*{NO}DEBUGIO) *{NO}UNREF . . . . . 5-36

    vi IBM i: ILE RPG 解説書

    |||||||

    ||

    ###

    ||||||||||||

  • PGMINFO(*PCML | *NO { : *MODULE } ) 5-37例 . . . . . . . . . . . . . . 5-38

    PRFDTA(*NOCOL | *COL) . . . . . . 5-38SRTSEQ(*HEX | *JOB | *JOBRUN |*LANGIDUNQ | *LANGIDSHR |'sort-table-name') . . . . . . . . . . 5-38STGMDL(*INHERIT | *SNGLVL |*TERASPACE) . . . . . . . . . . . 5-39TEXT(*SRCMBRTXT | *BLANK | '記述') 5-39THREAD(*CONCURRENT | *SERIALIZE) 5-40

    THREAD(*CONCURRENT). . . . . . 5-40THREAD(*SERIALIZE) . . . . . . . 5-40スレッドに関する一般的な考慮事項 . . . 5-40

    TIMFMT(形式 {区切り記号 }) . . . . . 5-41TRUNCNBR(*YES | *NO) . . . . . . . 5-41USRPRF(*USER | *OWNER) . . . . . . 5-41VALIDATE(*NODATETIME) . . . . . . 5-42

    ファイル仕様書 . . . . . . . . . . . . 5-43自由形式のファイル定義ステートメント . . . 5-44固定形式のファイル記入項目に対応する自由形式でのコーディング . . . . . . . . 5-45装置タイプ・キーワード . . . . . . . 5-45自由形式のファイル使用法の定義 . . . . 5-46

    従来型のファイル記述仕様書ステートメント 5-47ファイル記述キーワードの継続記入行 . . . 5-476 桁目 (仕様書コード) . . . . . . . . 5-477 から 16 桁目 (ファイル名) . . . . . . 5-47プログラム記述ファイル . . . . . . 5-48外部記述ファイル . . . . . . . . . 5-48

    17 桁目 (ファイル・タイプ) . . . . . . 5-48入力ファイル . . . . . . . . . . 5-49出力ファイル . . . . . . . . . . 5-49更新ファイル . . . . . . . . . . 5-49入出力共用ファイル . . . . . . . . 5-49

    18 桁目 (ファイルの指定) . . . . . . . 5-491 次ファイル . . . . . . . . . . 5-492 次ファイル . . . . . . . . . . 5-49レコード・アドレス・ファイル (RAF) 5-50配列またはテーブル・ファイル . . . . 5-50全手順ファイル . . . . . . . . . 5-50

    19 桁目 (ファイルの終わり) . . . . . . 5-5020 桁目 (ファイルの追加) . . . . . . . 5-5121 桁目 (順序). . . . . . . . . . . 5-5122 桁目 (ファイル形式). . . . . . . . 5-5223 から 27 桁目 (レコード長) . . . . . 5-5228 桁目 (限界内処理) . . . . . . . . 5-5329 から 33 桁目 (キーまたはレコード・アドレスの長さ). . . . . . . . . . . . 5-5434 桁目 (レコード・アドレス・タイプ) . . 5-54ブランク = キーを使用しない処理 . . . 5-55A = 文字キー . . . . . . . . . . 5-55P = パック 10 進キー . . . . . . . 5-55G = 図形キー . . . . . . . . . . 5-56K = キー . . . . . . . . . . . 5-56D = 日付キー . . . . . . . . . . 5-56T = 時刻キー . . . . . . . . . . 5-56

    Z = タイム・スタンプ・キー . . . . . 5-56F = 浮動キー . . . . . . . . . . 5-56

    35 桁目 (ファイル編成). . . . . . . . 5-56ブランク = キー付きでないプログラム記述ファイル . . . . . . . . . . . 5-57I = 索引付きファイル . . . . . . . 5-57T = レコード・アドレス・ファイル . . 5-57

    36 から 42 桁目 (装置). . . . . . . . 5-57ファイルの装置タイプ . . . . . . . 5-58

    43 桁目 (予約済み) . . . . . . . . . 5-5844 から 80 桁目 (キーワード) . . . . . 5-58

    ファイル記述のキーワード . . . . . . . . 5-58ALIAS . . . . . . . . . . . . . 5-59BLOCK(*YES |*NO) . . . . . . . . . 5-60COMMIT { (RPG 名) }. . . . . . . . 5-61DATA(*CVT | *NOCVT) . . . . . . . 5-61

    DATA キーワードの例 . . . . . . . 5-61DATFMT(形式 {区切り記号 }) . . . . . 5-63DEVID(フィールド名) . . . . . . . . 5-63DISK{(*EXT | レコード長)} . . . . . . 5-64EXTDESC(外部ファイル名) . . . . . . 5-64EXTFILE(ファイル名 | *EXTDESC) . . . . 5-65EXTIND(*INUx) . . . . . . . . . . 5-67EXTMBR(メンバー名) . . . . . . . . 5-67FORMLEN(行数) . . . . . . . . . . 5-67FORMOFL(行番号) . . . . . . . . . 5-67HANDLER(プログラムまたはプロシージャー{ : 通信域)}) . . . . . . . . . . . 5-68IGNORE(レコード様式 {:レコード様式... }) 5-70INCLUDE(レコード様式{:レコード様式...}) 5-70INDDS (データ構造名) . . . . . . . . 5-70INFDS(DS 名) . . . . . . . . . . . 5-71INFSR(SUBR 名) . . . . . . . . . . 5-71KEYED{(*CHAR : キー長)} . . . . . . 5-71KEYLOC(位置). . . . . . . . . . . 5-72LIKEFILE(親ファイル名) . . . . . . . 5-72

    LIKEFILE キーワードに関する規則: . . 5-72MAXDEV(*ONLY | *FILE) . . . . . . 5-76OFLIND(標識) . . . . . . . . . . . 5-76PASS(*NOIND) . . . . . . . . . . 5-76PGMNAME(プログラム名) . . . . . . . 5-77PLIST(PLIST 名) . . . . . . . . . . 5-77PREFIX(接頭部 {:置き換えられる文字数 }) 5-77PRINTER{(*EXT | レコード長)} . . . . . 5-79PRTCTL (データ構造 {:*COMPAT }) . . . 5-79拡張された長さの PRTCTL データ構造 5-80*COMPAT PRTCTL データ構造 . . . . 5-80

    QUALIFIED. . . . . . . . . . . . 5-80QUALIFIED キーワードに関する規則: 5-81

    RAFDATA(ファイル名) . . . . . . . . 5-81RECNO(フィールド名) . . . . . . . . 5-82RENAME(外部形式:内部形式) . . . . . . 5-82SAVEDS(DS 名) . . . . . . . . . . 5-82SAVEIND(番号) . . . . . . . . . . 5-82SEQ{(*EXT | レコード長)} . . . . . . 5-83SFILE(レコード様式:RRN フィールド) . . . 5-83

    目次 vii

    ###

    ||

    |||||||||

    ||

    ##

    ||||

    ||

    |||

    ||

    ||

    ||

  • SLN(番号) . . . . . . . . . . . . 5-84SPECIAL{(*EXT | レコード長)} . . . . . 5-84STATIC . . . . . . . . . . . . . 5-84

    STATIC キーワードに関する規則: . . . 5-84TEMPLATE . . . . . . . . . . . . 5-85

    TEMPLATE キーワードに関する規則: 5-85TIMFMT(形式 {区切り記号 }) . . . . . 5-86USAGE(*INPUT *OUTPUT *UPDATE*DELETE) . . . . . . . . . . . . 5-86USROPN . . . . . . . . . . . . . 5-86WORKSTN{(*EXT | レコード長)} . . . . 5-87

    ファイル・タイプと処理方式 . . . . . . . 5-87定義仕様書 . . . . . . . . . . . . . . 5-88自由形式の定義ステートメント . . . . . . 5-88データ・タイプ・キーワード . . . . . . 5-91固定形式定義と自由形式定義でのキーワード使用の相違点 . . . . . . . . . . . 5-92自由形式の名前付き定数の定義 . . . . . 5-92自由形式の独立フィールド定義 . . . . . 5-93固定形式の独立フィールド記入項目に対応する自由形式でのコーディング . . . . 5-93

    自由形式のデータ構造定義 . . . . . . . 5-93固定形式のデータ構造記入項目に対応する自由形式でのコーディング . . . . . . 5-97

    自由形式のサブフィールド定義 . . . . . 5-97固定形式のサブフィールド記入項目に対応する自由形式でのコーディング . . . . 5-98

    自由形式のプロトタイプ定義 . . . . . . 5-98固定形式のプロトタイプ記入項目に対応する自由形式でのコーディング . . . . . 5-99

    自由形式プロシージャー・インターフェース定義 . . . . . . . . . . . . . . 5-99固定形式のプロシージャー・インターフェース記入項目に対応する自由形式でのコーディング . . . . . . . . . . 5-102

    自由形式のパラメーター定義 . . . . . 5-102固定形式のパラメーター記入項目に対応する自由形式でのコーディング . . . . 5-102

    従来型の定義仕様書ステートメント . . . . 5-102定義仕様書のキーワード継続記入行 . . . 5-103定義仕様書の継続名前行 . . . . . . . 5-1036 桁目 (仕様書コード). . . . . . . . 5-1047 から 21 桁目 (名前). . . . . . . . 5-10422 桁目 (外部記述) . . . . . . . . . 5-10423 桁目 (データ構造のタイプ) . . . . . 5-10524 から 25 桁目 (定義タイプ) . . . . . 5-10526 から 32 桁目 (開始位置) . . . . . . 5-10633 から 39 桁目 (終了位置/長さ) . . . . 5-10640 桁目 (内部データ・タイプ) . . . . . 5-10841 から 42 桁目 (小数点以下の桁数) . . . 5-10943 桁目 (予約済み) . . . . . . . . . 5-10944 から 80 桁目 (キーワード) . . . . . 5-109

    定義仕様書のキーワード . . . . . . . . 5-109ALIAS . . . . . . . . . . . . . 5-110ALIGN . . . . . . . . . . . . . 5-111ALT(配列名) . . . . . . . . . . . 5-112

    ALTSEQ(*NONE) . . . . . . . . . 5-112ASCEND . . . . . . . . . . . . 5-112BASED(基底ポインター名) . . . . . . 5-113BINDEC(桁数 {: 小数点以下の桁数}) . . . 5-113CCSID 定義キーワード . . . . . . . 5-114

    CCSID(*EXACT | *NOEXACT) . . . . 5-115CHAR(長さ) . . . . . . . . . . . 5-115CLASS(*JAVA:クラス名) . . . . . . . 5-116CONST{(定数)} . . . . . . . . . . 5-116CTDATA . . . . . . . . . . . . 5-117DATE{(形式 {区切り記号 }) } . . . . . 5-117DATFMT(形式 { 区切り記号 }). . . . . 5-117DESCEND . . . . . . . . . . . . 5-118DIM(数値定数) . . . . . . . . . . 5-118DTAARA キーワード . . . . . . . . 5-118フィールドまたはサブフィールドの自由形式 DTAARA キーワード . . . . . 5-120データ構造の自由形式 DTAARA キーワード . . . . . . . . . . . . . 5-120固定形式 DTAARA キーワード . . . . 5-121

    EXPORT{(外部名)} . . . . . . . . . 5-122EXT . . . . . . . . . . . . . . 5-123EXTFLD{(フィールド名) } . . . . . . 5-123EXTFMT(コード) . . . . . . . . . 5-124EXTNAME(ファイル名{:形式名}{:*ALL|*INPUT|*OUTPUT|*KEY}) . . . . . . 5-125EXTPGM{(名前)} . . . . . . . . . 5-126EXTPROC({*CL|*CWIDEN|*CNOWIDEN|{*JAVA:クラス名:}}名前) . . . . . . . 5-126外部名としての *DCLCASE の指定 5-131

    FLOAT(バイト数) . . . . . . . . . 5-132FROMFILE(ファイル名) . . . . . . . 5-133GRAPH(長さ) . . . . . . . . . . . 5-133IMPORT{(外部名)} . . . . . . . . . 5-133INT(桁数) . . . . . . . . . . . . 5-134IND . . . . . . . . . . . . . . 5-134INZ{(初期値)} . . . . . . . . . . 5-135LEN(長さ) . . . . . . . . . . . . 5-136

    LEN キーワードに関する規則: . . . . 5-136LIKE(名前 {: 長さ調整 }) . . . . . . 5-137

    LIKE(オブジェクト名) . . . . . . . 5-138LIKEDS(データ構造名). . . . . . . . 5-139LIKEFILE(ファイル名) . . . . . . . . 5-141プロトタイプ・パラメーターのLIKEFILE キーワードに関する規則: . . 5-141

    LIKEREC(intrecname{:*ALL|*INPUT|*OUTPUT|*KEY}). . . . . . . . . . . . . 5-142NOOPT . . . . . . . . . . . . . 5-143OBJECT{(*JAVA:クラス名)} . . . . . . 5-144OCCURS(数値定数) . . . . . . . . . 5-145OPDESC . . . . . . . . . . . . 5-145OPTIONS(*NOPASS *OMIT *VARSIZE*STRING *TRIM *RIGHTADJ *NULLIND) . 5-146OVERLAY(名前 {: 開始位置 | *NEXT }) 5-157PACKED(桁数 {: 小数点以下の桁数}). . . 5-159

    viii IBM i: ILE RPG 解説書

    ||

    |||

    ||

    |||||||||||||||||||||||||||||||||||||||||

    ##

    ||

    ||||

    ||

    ||||||

    ||

    ||||

    ||

    ||||

    ||

    ||

  • PACKEVEN . . . . . . . . . . . 5-160PERRCD(数値定数) . . . . . . . . . 5-160POINTER{(*PROC)} . . . . . . . . 5-160POS(開始位置) . . . . . . . . . . 5-161PREFIX(接頭部 {:置き換えられる文字数 }) 5-161PROCPTR . . . . . . . . . . . . 5-162PSDS . . . . . . . . . . . . . 5-163QUALIFIED . . . . . . . . . . . 5-163RTNPARM. . . . . . . . . . . . 5-163STATIC{(*ALLTHREAD)} . . . . . . 5-166

    STATIC(*ALLTHREAD) についての追加の考慮事項 . . . . . . . . . . 5-167

    TEMPLATE . . . . . . . . . . . 5-167定義仕様書の TEMPLATE キーワードに関する規則: . . . . . . . . . . 5-167

    TIME{(形式 {区切り記号 }) } . . . . . 5-168TIMESTAMP { (秒の小数部の桁数) }. . . 5-168TIMFMT(形式 { 区切り記号 } ) . . . . 5-169TOFILE(ファイル名) . . . . . . . . 5-169UCS2(長さ) . . . . . . . . . . . 5-169UNS(桁数) . . . . . . . . . . . . 5-170VALUE . . . . . . . . . . . . . 5-170VARCHAR(長さ {:2 | 4}). . . . . . . 5-171VARGRAPH(長さ {:2 | 4}) . . . . . . 5-171VARUCS2(長さ {:2 | 4}) . . . . . . . 5-172VARYING{(2 | 4)} . . . . . . . . . 5-172ZONED(桁数 {: 小数点以下の桁数}) . . . 5-173

    定義仕様書タイプごとの要約 . . . . . . 5-173入力仕様 . . . . . . . . . . . . . . 5-177入力仕様ステートメント . . . . . . . . 5-178プログラム記述 . . . . . . . . . . 5-178外部記述 . . . . . . . . . . . . 5-178

    プログラム記述ファイル . . . . . . . . 5-1796 桁目 (仕様書コード). . . . . . . . 5-179

    レコード識別項目 . . . . . . . . . . 5-1797 から 16 桁目 (ファイル名) . . . . . 5-17916 から 18 桁目 (論理関係) . . . . . . 5-17917 から 18 桁目 (順序) . . . . . . . 5-179英字項目 . . . . . . . . . . . 5-180数値項目 . . . . . . . . . . . 5-180

    19 桁目 (番号) . . . . . . . . . . 5-18020 桁目 (オプション) . . . . . . . . 5-18021 から 22 桁目 (レコード識別標識、または **) . . . . . . . . . . . . . 5-181標識 . . . . . . . . . . . . . 5-181先読みフィールド . . . . . . . . 5-181

    23 から 46 桁目 (レコード識別コード) 5-18223 から 27、31 から 35、および 39 から 43 桁目 (桁) . . . . . . . . . 5-18228、36、および 44 桁目 (否定). . . . 5-18329、37、および 45 桁目 (コード部分) 5-18330、38、および 46 桁目 (文字). . . . 5-183AND 関係 . . . . . . . . . . . 5-184OR 関係 . . . . . . . . . . . 5-184

    フィールド記述項目 . . . . . . . . . 5-1846 桁目 (仕様書コード). . . . . . . . 5-184

    7 から 30 桁目 (予約語) . . . . . . . 5-18431 から 34 桁目 (データ属性) . . . . . 5-18435 桁目 (日付/時刻区切り記号) . . . . . 5-18536 桁目 (データ形式) . . . . . . . . 5-18537 から 46 桁目 (フィールドの位置) . . . 5-18547 から 48 桁目 (小数点以下の桁数) . . . 5-18649 から 62 桁目 (フィールド名) . . . . 5-18763 から 64 桁目 (制御レベル) . . . . . 5-18765 から 66 桁目 (突き合わせフィールド) 5-18767 から 68 桁目 (フィールドとレコードの関連) . . . . . . . . . . . . . 5-18869 から 74 桁目 (フィールド標識) . . . 5-189

    外部記述ファイル . . . . . . . . . . 5-1896 桁目 (仕様書コード). . . . . . . . 5-189

    レコード識別項目 . . . . . . . . . . 5-1897 から 16 桁目 (レコード名) . . . . . 5-19017 から 20 桁目 (予約語) . . . . . . 5-19021 から 22 桁目 (レコード識別標識) . . . 5-19023 から 80 桁目 (予約語) . . . . . . 5-190

    フィールド記述項目 . . . . . . . . . 5-1907 から 20 桁目 (予約語) . . . . . . . 5-19021 から 30 桁目 (外部フィールド名) . . . 5-19031 から 48 桁目 (予約語) . . . . . . 5-19149 から 62 桁目 (フィールド名) . . . . 5-19163 から 64 桁目 (制御レベル) . . . . . 5-19165 から 66 桁目 (突き合わせフィールド) 5-19167 から 68 桁目 (予約語) . . . . . . 5-19269 から 74 桁目 (フィールド標識) . . . 5-19275 から 80 桁目 (予約語) . . . . . . 5-192

    演算仕様書 . . . . . . . . . . . . . 5-192従来型の構文 . . . . . . . . . . . . 5-193演算仕様書拡張演算項目 2 継続記入行 5-1936 桁目 (仕様書コード). . . . . . . . 5-1947 から 8 桁目 (制御レベル) . . . . . . 5-194制御レベル標識 . . . . . . . . . 5-194最終レコード標識 . . . . . . . . 5-194サブルーチン ID. . . . . . . . . 5-195AND/OR 行 ID . . . . . . . . . 5-195

    9 から 11 桁目 (標識). . . . . . . . 5-19512 から 25 桁目 (演算項目 1) . . . . . 5-19626 から 35 桁目 (命令および拡張) . . . 5-196命令拡張 . . . . . . . . . . . 5-196

    36 から 49 桁目 (演算項目 2) . . . . . 5-19750 から 63 桁目 (結果フィールド) . . . 5-19764 から 68 桁目 (フィールド長) . . . . 5-19769 から 70 桁目 (小数点以下の桁数) . . . 5-19871 から 76 桁目 (結果標識) . . . . . . 5-198

    拡張演算項目 2 の構文 . . . . . . . . 5-1997 から 8 桁目 (制御レベル) . . . . . . 5-1999 から 11 桁目 (標識). . . . . . . . 5-19912 から 25 桁目 (演算項目 1) . . . . . 5-19926 から 35 桁目 (命令および拡張) . . . 5-199命令拡張 . . . . . . . . . . . 5-200

    36 から 80 桁目 (拡張演算項目 2) . . . 5-200自由形式の演算ステートメント . . . . . . 5-200

    8 から 80 桁目 (自由形式命令). . . . . 5-202

    目次 ix

    ||||

    ||

    ##

    ||||

    ||||

    ||||||

    ||

  • 出力仕様 . . . . . . . . . . . . . . 5-202出力仕様ステートメント . . . . . . . . 5-203プログラム記述 . . . . . . . . . . 5-203外部記述 . . . . . . . . . . . . 5-203

    プログラム記述ファイル . . . . . . . . 5-2046 桁目 (仕様書コード). . . . . . . . 5-204

    レコード識別および制御項目 . . . . . . 5-2047 から 16 桁目 (ファイル名) . . . . . 5-20416 から 18 桁目 (論理関係) . . . . . . 5-20417 桁目 (タイプ) . . . . . . . . . 5-20518 から 20 桁目 (レコードの追加/削除) 5-20518 桁目 (フェッチ・オーバーフロー・ルーチン/解放) . . . . . . . . . . . . 5-206フェッチ・オーバーフロー . . . . . 5-206解放 . . . . . . . . . . . . . 5-207

    21 から 29 桁目 (出力条件付け標識) . . . 5-20730 から 39 桁目 (EXCEPT 名) . . . . . 5-20840 から 51 桁目 (スペースとスキップ) 5-20940 から 42 桁目 (印刷前スペース) . . . 5-20943 から 45 桁目 (印刷後スペース) . . . 5-20946 から 48 桁目 (印刷前スキップ) . . . 5-21049 から 51 桁目 (印刷後スキップ) . . . 5-210

    フィールド記述および制御項目 . . . . . . 5-21021 から 29 桁目 (出力標識) . . . . . . 5-21030 から 43 桁目 (フィールド名) . . . . 5-210フィールド名、ブランク、テーブル、および配列 . . . . . . . . . . . 5-211PAGE、PAGE1 から PAGE7. . . . . 5-211*PLACE . . . . . . . . . . . 5-211ユーザー日付の予約語 . . . . . . . 5-211*IN, *INxx, *IN(xx). . . . . . . . 5-211

    44 桁目 (編集コード) . . . . . . . . 5-21145 桁目 (後で消去) . . . . . . . . . 5-21247 から 51 桁目 (終了位置) . . . . . . 5-21252 桁目 (データ形式) . . . . . . . . 5-21353 から 80 桁目 (定数、編集語、データ属性、形式名) . . . . . . . . . . . 5-215固定情報 . . . . . . . . . . . 5-215編集語 . . . . . . . . . . . . 5-215データ属性 . . . . . . . . . . 5-215レコード様式名 . . . . . . . . . 5-215

    外部記述ファイル . . . . . . . . . . 5-2166 桁目 (仕様書コード). . . . . . . . 5-216

    レコード識別および制御項目 . . . . . . 5-2167 から 16 桁目 (レコード名) . . . . . 5-21616 から 18 桁目 (論理関係) . . . . . . 5-21617 桁目 (タイプ) . . . . . . . . . 5-21618 桁目 (解放) . . . . . . . . . . 5-21618 から 20 桁目 (レコードの追加) . . . 5-21621 から 29 桁目 (出力標識) . . . . . . 5-21730 から 39 桁目 (EXCEPT 名) . . . . . 5-217

    フィールド記述および制御項目 . . . . . . 5-21721 から 29 桁目 (出力標識) . . . . . . 5-21730 から 43 桁目 (フィールド名) . . . . 5-21745 桁目 (後で消去) . . . . . . . . . 5-217

    プロシージャー仕様書 . . . . . . . . . . 5-218

    自由形式のプロシージャー・ステートメント 5-219従来型のプロシージャー仕様書ステートメント 5-220プロシージャー仕様書のキーワード継続記入行 . . . . . . . . . . . . . . 5-220プロシージャー仕様書の継続名前行 . . . 5-2216 桁目 (仕様書コード). . . . . . . . 5-2217 から 21 桁目 (名前). . . . . . . . 5-22124 桁目 (プロシージャーの始め/終わり) 5-22244 から 80 桁目 (キーワード) . . . . . 5-222

    プロシージャー仕様書のキーワード . . . . 5-222EXPORT . . . . . . . . . . . . 5-222SERIALIZE . . . . . . . . . . . 5-222

    命令、式、および関数 . . . . . . . . 6-1命令 . . . . . . . . . . . . . . . . 6-1命令コード . . . . . . . . . . . . . 6-1組み込み関数 . . . . . . . . . . . . 6-9算術演算 . . . . . . . . . . . . . . 6-15精度の確認 . . . . . . . . . . . . 6-16パフォーマンスに関する考慮事項 . . . . 6-16整数および符号なしの演算 . . . . . . . 6-16算術演算の例 . . . . . . . . . . . 6-17

    配列命令 . . . . . . . . . . . . . . 6-18ビット操作 . . . . . . . . . . . . . 6-19分岐命令 . . . . . . . . . . . . . . 6-20呼び出し命令 . . . . . . . . . . . . 6-20プロトタイプ呼び出し . . . . . . . . 6-21操作記述子 . . . . . . . . . . . . 6-22呼び出しのプログラム名の解析 . . . . . 6-23プログラム CALL の例 . . . . . . . 6-24

    システム組み込み名の解析 . . . . . . . 6-24*ROUTINE の値 . . . . . . . . . . 6-25

    比較命令 . . . . . . . . . . . . . . 6-25変換命令 . . . . . . . . . . . . . . 6-27データ域命令 . . . . . . . . . . . . 6-27日付命令 . . . . . . . . . . . . . . 6-29予期しない結果 . . . . . . . . . . 6-31

    宣言命令 . . . . . . . . . . . . . . 6-31エラー処理命令 . . . . . . . . . . . 6-32ファイル命令 . . . . . . . . . . . . 6-33ファイル命令のキー . . . . . . . . . 6-36

    標識設定命令 . . . . . . . . . . . . 6-37情報命令 . . . . . . . . . . . . . . 6-37初期化命令 . . . . . . . . . . . . . 6-38メモリー管理命令 . . . . . . . . . . . 6-38メッセージ命令 . . . . . . . . . . . 6-40移動命令 . . . . . . . . . . . . . . 6-41文字、図形、UCS-2、および数値データの転送 . . . . . . . . . . . . . . . 6-41日付時刻データの転送 . . . . . . . . 6-43文字フィールドから日付フィールドへの変換の例 . . . . . . . . . . . . 6-44

    ゾーン移動命令 . . . . . . . . . . . 6-46結果命令 . . . . . . . . . . . . . . 6-47サイズ変更命令 . . . . . . . . . . . 6-47ストリング命令 . . . . . . . . . . . 6-47

    x IBM i: ILE RPG 解説書

    ||

  • 構造化プログラミング命令 . . . . . . . . 6-49サブルーチン命令 . . . . . . . . . . . 6-52サブルーチンのコーディング . . . . . . 6-52サブルーチンのコーディングの例 . . . 6-53

    テスト命令 . . . . . . . . . . . . . 6-53XML 命令 . . . . . . . . . . . . . 6-54

    式 . . . . . . . . . . . . . . . . . 6-54一般的な式の規則 . . . . . . . . . . . 6-56式のオペランド . . . . . . . . . . . 6-57式の演算子 . . . . . . . . . . . . . 6-57演算の優先順位 . . . . . . . . . . . 6-59データ・タイプ . . . . . . . . . . . 6-60式のオペランドによってサポートされるデータ・タイプ . . . . . . . . . . . . 6-60数値中間結果の形式 . . . . . . . . . 6-64演算子 +、-、および * の場合: . . . . 6-64/ 演算子の場合: . . . . . . . . . 6-64** 演算子の場合: . . . . . . . . . 6-64

    数値演算の精度の規則 . . . . . . . . . 6-64デフォルトの精度規則の使用 . . . . . . 6-65中間結果の精度 . . . . . . . . . . 6-65デフォルトの精度規則の例 . . . . . . . 6-66「結果の小数点以下の桁数」精度規則の使用 6-67「結果の小数点以下の桁数」精度規則の例 6-68

    短絡評価 . . . . . . . . . . . . . . 6-69評価の順序 . . . . . . . . . . . . . 6-70

    組み込み関数 . . . . . . . . . . . . . 6-70%ABS (式の絶対値) . . . . . . . . . . 6-70%ADDR (変数のアドレスの検索) . . . . . 6-71%ALLOC (記憶域の割り振り). . . . . . . 6-73%BITAND (ビット単位の AND 演算) . . . . 6-73%BITNOT (ビットの反転) . . . . . . . . 6-74%BITOR (ビット単位の OR 演算) . . . . . 6-75%BITXOR (ビット単位の排他 OR 演算) . . . 6-75ビット演算の例 . . . . . . . . . . 6-76

    %CHAR (文字データへの変換) . . . . . . 6-78%CHAR(日付|時刻|タイム・スタンプ {: 形式}) . . . . . . . . . . . . . . . 6-78%CHAR(数値) . . . . . . . . . . . 6-80%CHAR(文字 | グラフィック | UCS2 {:ccsid}) . . . . . . . . . . . . . 6-81

    %CHECK (文字の検査) . . . . . . . . . 6-82%CHECKR (逆向きの検査). . . . . . . . 6-83%DATE (日付への変換). . . . . . . . . 6-85%DAYS (日数). . . . . . . . . . . . 6-86%DEC (パック 10 進数への変換) . . . . . 6-86数値式または文字式 . . . . . . . . . 6-86日付、時刻、またはタイム・スタンプ式 . . 6-87

    %DECH (四捨五入を伴うパック 10 進数形式への変換) . . . . . . . . . . . . . . 6-87

    %DECH の例 . . . . . . . . . . . 6-88%DECPOS (小数部の桁数の取得) . . . . . 6-88%DIFF (2 つの日付、時刻、またはタイム・スタンプ値の差) . . . . . . . . . . . . 6-89%DIV (商の戻り整数部分) . . . . . . . . 6-91%EDITC (編集コードを使用する編集値) . . . 6-91

    %EDITFLT (浮動外部表現への変換). . . . . 6-93%EDITW (編集語を使用する編集値) . . . . 6-94%ELEM (要素数の検索). . . . . . . . . 6-94%EOF (ファイルの終わりまたは先頭条件の戻し). . . . . . . . . . . . . . . . 6-95%EQUAL (完全な一致条件の戻し) . . . . . 6-96%ERROR (エラー条件の戻し). . . . . . . 6-98%FIELDS (更新するフィールド) . . . . . . 6-98%FLOAT (浮動形式への変換) . . . . . . . 6-99%FOUND (検出条件の戻し) . . . . . . . 6-100%GRAPH (図形値への変換) . . . . . . . 6-102%HANDLER (handlingProcedure :communicationArea ) . . . . . . . . . 6-103%HOURS (時間数) . . . . . . . . . . 6-106%INT (整数形式への変換) . . . . . . . 6-107

    %INTH (四捨五入を伴う整数形式への変換) 6-107%KDS (データ構造の検索引数) . . . . . . 6-108%LEN (長さの入手または設定) . . . . . . 6-109値として使用される %LEN . . . . . . 6-109可変長フィールドの長さを設定するために使用する %LEN . . . . . . . . . . 6-110可変長式の最大長を入手するために使用する %LEN . . . . . . . . . . . . 6-111

    %LOOKUPxx (配列要素の検索) . . . . . . 6-112正しい順序になっていない順序配列 . . . 6-116

    %MINUTES (分数) . . . . . . . . . . 6-116%MONTHS (月数) . . . . . . . . . . 6-116%MSECONDS (マイクロ秒数) . . . . . . 6-117%NULLIND (ヌル標識の照会または設定) 6-117%OCCUR (データ構造のオカレンスの設定/取り出し) . . . . . . . . . . . . . . 6-118%OPEN (ファイル・オープン条件の戻し) 6-118%PADDR (プロシージャー・アドレスの検索) 6-119プロトタイプとともに使用される %PADDR 6-120

    %PARMS (パラメーター数の戻り) . . . . . 6-122%PARMNUM (パラメーター番号を戻す). . . 6-124%REALLOC (記憶域の再割り振り) . . . . 6-125%REM (戻り整数剰余). . . . . . . . . 6-126%REPLACE (文字ストリングの置換) . . . . 6-127%SCAN (文字の走査) . . . . . . . . . 6-128%SCANRPL (文字の走査と置換) . . . . . 6-129%SECONDS (秒数) . . . . . . . . . . 6-131%SHTDN (シャットダウン) . . . . . . . 6-132%SIZE (サイズ (バイト数) の検索) . . . . 6-132%SQRT (式の平方根) . . . . . . . . . 6-133%STATUS (ファイルまたはプログラム状況の戻し) . . . . . . . . . . . . . . 6-134%STR (ヌル文字で終了するストリングの入手または保管) . . . . . . . . . . . . 6-136ヌル文字で終了するストリングの入手に使用する %STR. . . . . . . . . . . 6-137ヌル文字で終了するストリングの保管に使用する %STR. . . . . . . . . . . 6-138

    %SUBARR (配列の部分の設定/入手) . . . . 6-138%SUBDT (日付、時刻、またはタイム・スタンプの一部の取り出し) . . . . . . . . . 6-141

    目次 xi

    ###

    ##

    ##

  • %SUBST (サブストリングの検索) . . . . . 6-142値として使用される %SUBST . . . . . 6-143割り当ての結果として使用される %SUBST 6-143

    %THIS (ネイティブ・メソッド用のクラス・インスタンスの戻し) . . . . . . . . . . 6-144%TIME (時刻への変換) . . . . . . . . 6-145%TIMESTAMP (タイム・スタンプへの変換) 6-146%TLOOKUPxx (テーブル要素の検索) . . . . 6-147%TRIM (両端の文字のトリミング). . . . . 6-148%TRIML (先行文字のトリミング) . . . . . 6-149%TRIMR (末尾の文字のトリミング) . . . . 6-150%UCS2 (UCS-2 値への変換) . . . . . . . 6-151%UNS (符号なし形式への変換) . . . . . . 6-152

    %UNSH (四捨五入を伴う符号なし形式への変換) . . . . . . . . . . . . . 6-152

    %XFOOT (配列式要素の合計) . . . . . . 6-153%XLATE (変換) . . . . . . . . . . . 6-154%XML (xmlDocument {:options }) . . . . . 6-154%YEARS (年数) . . . . . . . . . . . 6-156

    命令コード . . . . . . . . . . . . . 6-156ACQ (獲得) . . . . . . . . . . . . 6-156ADD (加算) . . . . . . . . . . . . 6-157ADDDUR (期間の加算) . . . . . . . . 6-157ALLOC (記憶域の割り振り) . . . . . . . 6-159ANDxx (かつ) . . . . . . . . . . . 6-160BEGSR (サブルーチンの開始) . . . . . . 6-161BITOFF (ビットをオフに設定) . . . . . . 6-161BITON (ビットをオンに設定) . . . . . . 6-163CABxx (比較および分岐) . . . . . . . . 6-165CALL (プログラムの呼び出し) . . . . . . 6-166CALLB (バインド・プロシージャーの呼び出し) . . . . . . . . . . . . . . . 6-167CALLP (プロトタイプ・プロシージャーまたはプログラムの呼び出し) . . . . . . . . 6-168CASxx (サブルーチンの条件付き呼び出し) 6-172CAT (2 つの文字ストリングの連結) . . . . 6-173CHAIN (ファイルからのランダム検索) . . . 6-175CHECK (文字の検査) . . . . . . . . . 6-178CHECKR (逆向きの検査) . . . . . . . . 6-181CLEAR (消去) . . . . . . . . . . . 6-183変数の消去 . . . . . . . . . . . 6-184レコード様式の消去 . . . . . . . . 6-184CLEAR の例 . . . . . . . . . . . 6-185

    CLOSE (ファイルのクローズ) . . . . . . 6-187COMMIT (コミット) . . . . . . . . . 6-188COMP (比較) . . . . . . . . . . . . 6-188DEALLOC (記憶域の解放) . . . . . . . 6-189DEFINE (フィールド定義) . . . . . . . 6-191

    *LIKE DEFINE . . . . . . . . . . 6-191*DTAARA DEFINE . . . . . . . . . 6-193

    DELETE (レコードの削除) . . . . . . . 6-194DIV (除算) . . . . . . . . . . . . 6-195DO (命令グループの開始) . . . . . . . 6-196DOU (条件が真になるまでの繰り返し) . . . 6-198DOUxx (条件までの繰り返し) . . . . . . 6-198DOW (条件が真の間繰り返し) . . . . . . 6-200

    DOWxx (条件が真の間繰り返し) . . . . . 6-201DSPLY (メッセージ表示) . . . . . . . . 6-203DUMP (プログラム・ダンプ) . . . . . . 6-206ELSE (他の場合). . . . . . . . . . . 6-207ELSEIF (ELSE IF) . . . . . . . . . . 6-208ENDyy (構造化グループの終わり) . . . . . 6-208ENDSR (サブルーチンの終了) . . . . . . 6-210EVAL (式の評価) . . . . . . . . . . 6-210EVALR (式の評価、右寄せ) . . . . . . . 6-212EVAL-CORR (対応するサブフィールドの代入) 6-213

    EVAL-CORR 命令の例. . . . . . . . 6-216EXCEPT (演算時出力) . . . . . . . . . 6-219EXFMT (形式の書き出し、その後読み取り) 6-220EXSR (サブルーチンの呼び出し) . . . . . 6-222EXTRCT (日付/時刻/タイム・スタンプの抽出) 6-222FEOD (データの強制終了) . . . . . . . 6-224FOR (For) . . . . . . . . . . . . . 6-225FORCE (次のサイクルでのファイルの強制読み取り) . . . . . . . . . . . . . . 6-227GOTO (演算命令のスキップ) . . . . . . 6-228IF (If) . . . . . . . . . . . . . . 6-229IFxx (満たされた条件の処理) . . . . . . 6-230IN (データ域の検索) . . . . . . . . . 6-231ITER (繰り返し) . . . . . . . . . . . 6-233KFLD (キーの構成部分定義) . . . . . . . 6-234KLIST (複合キーの定義) . . . . . . . . 6-235LEAVE (Do/For グループからの抜け出し) 6-237LEAVESR (サブルーチンから抜け出す) . . . 6-238LOOKUP (テーブルまたは配列要素の検索) 6-239MHHZO (上位桁から上位桁へのゾーンの転送) 6-242MHLZO (上位桁から下位桁へのゾーンの転送) 6-243MLHZO (下位桁から上位桁へのゾーンの転送) 6-243MLLZO (下位桁から下位桁へのゾーンの転送) 6-243MONITOR (監視グループの始め) . . . . . 6-244MOVE (転送) . . . . . . . . . . . . 6-245MOVEA (配列の転送) . . . . . . . . . 6-259文字、図形、および UCS-2 の MOVEA 命令 . . . . . . . . . . . . . . 6-260数字の MOVEA 命令 . . . . . . . . 6-260一般的な MOVEA 命令 . . . . . . . 6-260

    MOVEL (左につめて転送) . . . . . . . 6-266MULT (乗算) . . . . . . . . . . . . 6-275MVR (剰余の転送) . . . . . . . . . . 6-276NEXT (次の入力の取り出し). . . . . . . 6-277OCCUR (データ構造のオカレンスの設定/取り出し) . . . . . . . . . . . . . . 6-277ON-ERROR (エラーの時) . . . . . . . . 6-281OPEN (処理のためのファイルのオープン) 6-282ORxx (または) . . . . . . . . . . . 6-284OTHER (その他の場合の選択) . . . . . . 6-284OUT (データ域の書き出し) . . . . . . . 6-285PARM (パラメーターの識別) . . . . . . 6-286PLIST (パラメーター・リストの識別). . . . 6-288POST (転記) . . . . . . . . . . . . 6-290READ (レコードの読み取り). . . . . . . 6-292READC (次の変更レコードの読み取り) . . . 6-294

    xii IBM i: ILE RPG 解説書

  • READE (等しいキーのレコードの読み取り) 6-295READP (前のレコードの読み取り) . . . . . 6-298READPE (等しいキーの前のレコードの読み取り) . . . . . . . . . . . . . . . 6-300REALLOC (新しい長さでの記憶域の再割り振り) . . . . . . . . . . . . . . . 6-302REL (解放) . . . . . . . . . . . . 6-303RESET (リセット) . . . . . . . . . . 6-304変数のリセット . . . . . . . . . . 6-305レコード様式のリセット . . . . . . . 6-305追加の考慮事項 . . . . . . . . . . 6-306RESET の例 . . . . . . . . . . . 6-306

    RETURN (呼び出し元への戻し). . . . . . 6-310ROLBK (ロールバック) . . . . . . . . 6-313SCAN (ストリングの走査) . . . . . . . 6-314SELECT (選択グループの始め) . . . . . . 6-317SETGT (より大きい設定) . . . . . . . . 6-318SETLL (下限の設定) . . . . . . . . . 6-322SETOFF (標識をオフに設定) . . . . . . . 6-326SETON (標識をオンに設定) . . . . . . . 6-327SHTDN (シャットダウン). . . . . . . . 6-327SORTA (配列の分類) . . . . . . . . . 6-328SQRT (平方根) . . . . . . . . . . . 6-332SUB (減算) . . . . . . . . . . . . 6-333SUBDUR (期間減算) . . . . . . . . . 6-334期間の減算 . . . . . . . . . . . 6-334期間の計算 . . . . . . . . . . . 6-335起こり得るエラー状況 . . . . . . . . 6-336SUBDUR の例 . . . . . . . . . . 6-336

    SUBST (サブストリング) . . . . . . . . 6-336TAG (タグ) . . . . . . . . . . . . 6-339TEST (日付/時刻/タイム・スタンプのテスト) 6-340TESTB (ビットのテスト) . . . . . . . . 6-342TESTN (数字のテスト) . . . . . . . . 6-344TESTZ (ゾーンのテスト) . . . . . . . . 6-345TIME (時刻と日付の検索) . . . . . . . 6-346UNLOCK (データ域のアンロックまたはレコードの解放) . . . . . . . . . . . . . 6-347データ域のアンロック . . . . . . . . 6-348レコード・ロックの解放 . . . . . . . 6-348

    UPDATE (既存のレコードの変更) . . . . . 6-349WHEN (真の場合に選択) . . . . . . . . 6-351WHENxx (真の場合に選択) . . . . . . . 6-352

    WRITE (新しいレコードの作成) . . . . . 6-354XFOOT (配列要素の合計). . . . . . . . 6-355XLATE (変換) . . . . . . . . . . . 6-356XML-INTO (XML 文書の変数への構文解析) 6-358

    XML-INTO 命令コードの %XML オプション . . . . . . . . . . . . . . 6-362

    doc (デフォルト string) . . . . . . 6-363ccsid (デフォルト best) . . . . . . 6-363path . . . . . . . . . . . . . 6-364case (デフォルト lower) . . . . . . 6-367trim (デフォルト all) . . . . . . . 6-370allowmissing (デフォルト no) . . . . 6-371allowextra (デフォルト no) . . . . . 6-374datasubf . . . . . . . . . . . . 6-377countprefix . . . . . . . . . . . 6-379ns (デフォルト keep) . . . . . . . 6-382nsprefix . . . . . . . . . . . . 6-384

    期待される XML データの形式. . . . . 6-386XML データを RPG 変数に転送する場合の規則 . . . . . . . . . . . . . . 6-390XML-INTO 命令の例 . . . . . . . . 6-391

    XML-SAX (XML 文書の構文解析) . . . . . 6-394XML-SAX 命令コードの %XML オプション . . . . . . . . . . . . . . 6-395XML-SAX イベント処理プロシージャー 6-396XML イベント . . . . . . . . . . 6-398XML-SAX 命令の例 . . . . . . . . 6-404

    Z-ADD (ゼロにして加算) . . . . . . . . 6-409Z-SUB (ゼロにして減算) . . . . . . . . 6-410

    付録 . . . . . . . . . . . . . . . . 7-1付録 A. RPG IV 制約事項 . . . . . . . . . 7-1付録 B. EBCDIC 照合順序 . . . . . . . . . 7-2

    参考文献 . . . . . . . . . . . . . . 8-1

    特記事項 . . . . . . . . . . . . . . A-1プログラミング・インターフェース情報 . . . . A-3商標 . . . . . . . . . . . . . . . . A-3使用条件 . . . . . . . . . . . . . . . A-3

    索引 . . . . . . . . . . . . . . . X-1

    目次 xiii

    ####||||

  • xiv IBM i: ILE RPG 解説書

  • ILE RPG 解説書

    本書では、IBM® i オペレーティング・システムで ILE RPG コンパイラーを使用してインプリメントされる RPG IV 言語について説明します。

    本書には、以下の項目が含まれています。

    v RPG IV の基本:– RPG IV 文字セット

    – RPG IV 予約語

    – コンパイラー指示

    – RPG IV プログラム・サイクル

    – ファイル

    – 標識

    – エラー処理

    – サブプロシージャー

    v 定義:– データおよびプロトタイプの定義

    – データ・タイプおよびデータ形式

    v RPG IV 仕様書:– 制御

    – ファイル記述

    – 定義

    – 入力

    – 演算

    – 出力

    – プロシージャー・

    v データまたは装置を取り扱う方法:– 組み込み関数

    – 式

    – 命令コード

    © Copyright IBM Corp. 1994, 2013

    |

    |

  • IBM i: ILE RPG 解説書

  • ILE RPG 解説書について

    解説書については、このセクションをお読みください。

    解説書については、このセクションをお読みください。

    本書の対象読者本書は、RPG IV プログラミング言語について熟知しているプログラマーの方々を対象にしております。

    本書では、RPG IV 言語について詳細に説明します。本書は、ILE RPG コンパイラーの使用法や RPG IIIプログラムを ILE RPG に変換する方法を説明するためのものではありません。これらについては、「IBMRational Development Studio for i: ILE RPG プログラマーの手引き」(SD88-5042) を参照してください。

    本書を使用するためには、事前に下記についての知識が必要です。

    v 該当する IBM i メニューと画面または制御言語 (CL) コマンドの使用法についての知識v 「ILE 概念」(SC41-5606) で詳細に説明されている Integrated Language Environment® についての十分な理解

    前提条件および関連情報IBM i 技術情報を検索する手始めとして、 IBM i Information Center を使用します。以下の Web サイトから Information Center にアクセスできます。

    http://www.ibm.com/systems/i/infocenter/

    IBM i Information Center には、ソフトウェアのインストール、Linux、WebSphere®、Java™、高可用性、データベース、論理区画、CL コマンド、およびシステム・アプリケーション・プログラミング・インターフェース (API) などの、新規および更新されたシステム情報が記載されています。さらに、システムのハードウェアおよびソフトウェアの計画、トラブルシューティング、および構成を支援するための、アドバイスおよび検索の機能も提供しています。

    関連資料のリストについては、 8-1ページの『参考文献』をご参照ください。

    コメントの送付方法IBM にお客様のご意見をお寄せください。本書や他の IBM i の資料に関するご意見をお持ちの際は、次のいずれかの方法をお選びください。

    v 郵便の場合は下記あてにご送付ください。

    IBM Canada Ltd. Laboratory

    Information Development

    8200 Warden Avenue

    Markham, Ontario, Canada L6G 1C7

    「ご意見記入用紙」を米国以外の国からご郵送いただく場合は、ご当地の IBM 事業所または IBM 担当員にお渡しいただいて構いませんが、所定の郵便料金はご負担いただきます。

    © Copyright IBM Corp. 1994, 2013 1-1

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • v FAX 送信の場合は、IBM 営業担当員にお問い合わせください。v 電子メールの場合は、以下の E メール・アドレスです。

    – 資料に関するご意見:

    [email protected]

    – IBM i Information Center に関するご意見:

    [email protected]

    以下の項目の記入をお願いします。

    v 資料名。v 資料番号。v ご意見のあるページ番号またはトピック。

    1-2 IBM i: ILE RPG 解説書

    #

  • 新着情報

    ILE RPG コンパイラーの V3R1 以降の各リリースでの新規機能および変更された機能

    RPG IV には、最初の V3R1 リリース以来いくつかのリリースが存在しています。以下は、V3R1 から現行リリースに至るまでの各リリースにおいて行なわれた機能強化を列挙したものです。

    v 『このリリースの新機能について』v 2-11ページの『7.1 出の変更点』v 2-15ページの『6.1 での変更点』v 2-20ページの『V5R4 での変更点』v 2-24ページの『V5R3 での変更点』v 2-29ページの『V5R2 での変更点』v 2-32ページの『V5R1 での変更点』v 2-37ページの『V4R4 での変更点』v 2-41ページの『V4R2 での変更点』v 2-45ページの『V3R7 での変更点』v 2-49ページの『V3R6/V3R2 での変更点』

    このセクションは、RPG IV の新機能へリンクし習得するために使用することができます。

    注: 本製品に関するこの情報は、RPG IV の 7.2 のリリースにおける最新のものです。前のリリースのコンパイラーを使用している場合は、ご使用のシステムでどの機能がサポートされるかを判断する必要があります。例えば、6.1 システムを使用している場合、7.2 リリースでの新機能はサポートされません。

    このリリースの新機能についてこの節では、7.2 の ILE RPG における機能強化について説明します。

    自由形式の、制御ステートメント、ファイル・ステートメント、定義ステートメント、およびプロシージャー・ステートメント

    v 自由形式の制御ステートメントは、CTL-OPT で始まり、セミコロンで終わります。 5-15ページの『自由形式の制御ステートメント』を参照してください。

    CTL-OPT OPTION(*SRCSTMT : *NODEBUGIO)ALWNULL(*USRCTL);

    v 自由形式のファイル定義ステートメントは、DCL-F で始まり、セミコロンで終わります。 5-44ページの『自由形式のファイル定義ステートメント』を参照してください。

    下記のステートメントは次の 3 つのファイルを定義しています。

    1. 入力および更新用にオープンされる外部記述 DISK ファイル。

    2. 入力および出力用にオープンされる外部記述 WORKSTN ファイル。

    3. レコード長が 132 のプログラム記述 PRINTER ファイル。

    DCL-F custFile usage(*update) extfile(custFilename);DCL-F screen workstn;DCL-F qprint printer(132) oflind(qprintOflow);

    © Copyright IBM Corp. 1994, 2013 2-1

    |

    #

    |

    |

    |

    |

    |

    |

    |

    |

    |

    ||

    |

    |

    |

    |

    |

    |

    |||

  • v 自由形式のデータ定義ステートメントは、DCL-C、DCL-DS、DCL-PI、DCL-PR、または DCL-Sで始まり、セミコロンで終わります。 5-88ページの『自由形式の定義ステートメント』を参照してください。

    下記のステートメントは、いくつかの項目を定義しています。

    1. 名前付き定数 MAX_ELEMS。

    2. 可変長の独立文字フィールド fullName。

    3. 整数サブフィールド num と UCS-2 サブフィールド address を含む、修飾されたデータ構造。

    4. プロシージャー「Qp0lRenameUnlink」のプロトタイプ。

    DCL-C MAX_ELEMS 1000;DCL-S fullName VARCHAR(50)

    INZ(’Unknown name’);DCL-DS ds1 QUALIFIED;

    num INT(10);address UCS2(100);

    END-DS;DCL-PR Qp0lRenameUnlink INT(10) EXTPROC(*DCLCASE);

    oldName POINTER VALUE OPTIONS(*STRING);newName POINTER VALUE OPTIONS(*STRING);

    END-PR;

    v 自由形式のプロシージャー定義ステートメントは、DCL-PROC で始まり、セミコロンで終わります。プロシージャーを終了するために END-PROC ステートメントが使用されます。 5-219ページの『自由形式のプロシージャー・ステートメント』を参照してください。

    次の例は、自由形式のサブプロシージャー定義の例です。

    DCL-PROC getCurrentUserName EXPORT;DCL-PI *n CHAR(10) END-PI;DCL-S curUser CHAR(10) INZ(*USER);

    RETURN curUser;END-PROC;

    v /FREE 指示および /END-FREE 指示は必要ではなくなりました。コンパイラーはそれらを無視します。

    v 自由形式ステートメントと固定形式ステートメントを混在させることができます。IF endDate < beginDate;

    C GOTO internalErrorENDIF;duration = %DIFF(endDate : beginDate : *days);. . .

    C internalError TAG

    ヒント: 5-5ページの『認識しておく必要のある固定形式と自由形式の相違点』を参照してください。

    英数字データの CCSID のサポート

    v モジュールのデフォルト英数字 CCSID として、UTF-8 および 16 進を含めて、より多くのCCSID を設定できるようになりました。

    v 英数字データを CCSID を指定して定義できます。サポートされる CCSID は次のとおりです。– 1 バイトおよび混合バイトの EBCDIC CCSID

    – 1 バイトおよび混合バイトの ASCII CCSID

    – UTF-8

    新着情報

    2-2 IBM i: ILE RPG 解説書

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |||||||||||

    |

    |

    |

    |

    ||||||

    |

    |

    |

    ||||||

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • – 16 進数

    5-114ページの『CCSID 定義キーワード』を参照してください。

    外部英数字サブフィールドの CCSID外部記述データ構造に対して CCSID(*EXACT) を使用して、英数字サブフィールドの CCSID がファイル内のフィールドの CCSID と同じである必要があることを示します。

    16 進データでは CCSID 変換は実行されない16 進データの暗黙的または明示的変換では CCSID 変換は許可されていません。

    16 進データには、次のものがあります。

    v 16 進数リテラルv CCSID(*HEX) を指定して定義された英数字データおよびグラフィック・データv ファイルに対して DATA キーワードが有効であり、かつ、ファイル内のフィールドの CCSIDが 65535 である場合、外部記述ファイル用のバッファー内にある英数字データおよびグラフィック・データ

    v ファイル内のフィールドの CCSID が 65535 である場合、 CCSID(*EXACT) を指定して定義された外部記述データ構造内の英数字データおよびグラフィック・データ

    連結のための暗黙的な変換コンパイラーは、連結式のために、英数字データ、グラフィック・データ、および UCS-2 データの間の暗黙的な変換を実行します。 4-72ページの『変換』を参照してください。

    ジョブ CCSID への変換なしでのデータベース・ファイルのオープン制御キーワード OPENOPT(*NOCVTDATA) またはファイル・キーワード DATA(*NOCVT) を使用することによって、データベース・ファイルがオープンされるときに、英数字データおよびグラフィック・データに対するジョブ CCSID からの変換およびジョブ CCSID への変換が入出力操作の際に実行されないようにオープンされることを指定できます。 5-35ページの『OPENOPT (* {NO}INZOFL * {NO }CVTDATA)』を参照してください。

    デフォルト CCSID、日付形式、または時刻形式の一時的な変更/SET 指示と /RESTORE 指示を使用することによって、日付形式、時刻形式、および CCSID のデフォルト値を設定できます。 3-10ページの『/SET』を参照してください。

    %SUBDT によって戻される長さの制御任意指定のパラメーターである %SUBDT の第 3 パラメーターを使用して、結果の桁数を指定できます。例えば、%SUBDT(MyDate:*YEARS:4) と指定すると、年数の値を 4 桁の値として戻すことができます。

    6-141ページの『%SUBDT (日付、時刻、またはタイム・スタンプの一部の取り出し)』を参照してください。

    タイム・スタンプ・データの精度向上タイム・スタンプ・データは、0 から 12 桁の秒の小数部を含むことができます。 4-88ページの『タイム・スタンプ・データ・タイプ』を参照してください。

    オープン・アクセス・ファイルオープン・アクセス・ファイルは、オペレーティング・システムではなく、ユーザー作成のプログラムまたはプロシージャーによってすべての処理が行われるファイルです。このプログラムまたはプロシージャーは「オープン・アクセス・ハンドラー」または単に「ハンドラー」と呼ばれます。HANDLER キーワードがハンドラーを指定します。 3-110ページの『オープン・アクセス・ファイル』を参照してください。

    XML-INTO の新規オプション

    新着情報

    新着情報 2-3

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

  • v "ns" オプションおよび "nsprefix" オプションによって XML 名前空間がサポートされます。nsオプションおよび nsprefix オプションを参照してください。

    v サブフィールド名に使用することを RPG がサポートしていない文字を含む XML 名が"case=convert" オプションによってサポートされます。case オプションを参照してください。

    ソース文字がターゲット文字セット中に存在しない場合はデータ逸失を起こす CCSID 変換のサポート制御仕様キーワード CCSIDCVT(*EXCP : *LIST)。 5-23ページの『CCSIDCVT(*EXCP | *LIST)』を参照してください。

    v CCSIDCVT(*EXCP) を使用すると、ソース文字と一致するものがターゲット文字セット中にないことが原因で CCSID 変換でデータ逸失が起こった場合には例外を取得することができます。

    v CCSIDCVT(*LIST) を使用すると、モジュール内のすべての CCSID 変換のリストを取得でき、リスト中の各変換についてデータ逸失の可能性があるかどうかが診断メッセージで示されます。

    RPG コンパイラーが日付データ、時刻データ、およびタイム・スタンプ・データを処理中に妥当性検査ステップをスキップすることを許可する VALIDATE(*NODATETIME)

    制御仕様書キーワード VALIDATE(*NODATETIME) を使用すると、 RPG コンパイラーは、妥当性検査を行わずに、日付データ、時刻データ、およびタイム・スタンプ・データを文字データとして扱うことができます。 5-42ページの『VALIDATE(*NODATETIME)』を参照してください。

    これによって、日付、時刻、およびタイム・スタンプに関する一部の操作のパフォーマンスが向上する可能性があります。

    注: 妥当性検査ステップをスキップすることによって重大なデータ破壊問題が起こる場合があります。この機能を使用するのは、日付データ、時刻データ、およびタイム・スタンプ・データが常に有効であるという確信がある場合に限定するべきです。

    表 2-1. 7.2 で変更された言語要素: 制御仕様書キーワード

    要素 説明

    CCSID キーワード v CCSID(*EXACT) は、モジュール内のすべての英数字データの CCSID に注意するようコンパイラーに指示します。

    – 英数字リテラルおよびグラフィック・リテラルの CCSID はソース・ファイルの CCSIDです。

    – 英数字データには常に CCSID があると見なされます。

    CCSID(*EXACT) が指定されていない場合、 RPG コンパイラーは、リテラル、変数、または、データベース・ファイルの入力バッファーおよび出力バッファーに入っているデータのCCSID に関して誤った想定を行う可能性があります。 5-20ページの『CCSID(*EXACT)』を参照してください。

    v CCSID(*CHAR:ccsid) は、*HEX、*UTF8、ASCII CCSID、および EBCDIC CCSID をサポートします。

    DFTACTGRP キーワード

    自由形式制御仕様があり、ACTGRP、BNDDIR、または STGMDL キーワードのうちの少なくとも 1 つが使用されている場合、DFTACTGRP(*NO) が想定されます。 5-28ページの『DFTACTGRP(*YES | *NO)』を参照してください。

    新着情報

    2-4 IBM i: ILE RPG 解説書

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    |

    ||

    ||

    |||

    ||

    |

    ||||

    ||

    |||||

  • 表 2-1. 7.2 で変更された言語要素: 制御仕様書キーワード (続き)

    要素 説明

    OPENOPT キーワード

    OPENOPT(* {NO}CVT) は、データベース・ファイルに対する DATA キーワードのデフォルトを制御します。

    v OPENOPT(*CVT) は、DISK および SEQ ファイルに DATA キーワードが指定されていない場合は DATA(*CVT) が想定されることを示します。

    v OPENOPT(*NOCVT) は、DISK および SEQ ファイルに DATA キーワードが指定されていない場合は DATA(*NOCVT) が想定されることを示します。

    5-35ページの『OPENOPT (* {NO }INZOFL * {NO }CVTDATA)』を参照してください。

    表 2-2. 7.2 で変更された言語要素: 指示

    要素 説明

    /FREE および/END-FREE 指示

    自由形式コードの始まりと終わりを示すためのこれらの指示は、必要ではなくなりました。コンパイラーはこれらを無視します。 3-9ページの『/FREE... /END-FREE』を参照してください。

    表 2-3. 7.2 で変更された言語要素: 定義仕様書キーワード

    要素 説明

    CCSID キーワード v 英数字データに対してサポートされますv 外部記述データ構造に対してサポートされ、英数字サブフィールドの CCSID を制御できます

    DTAARA キーワード 自由形式定義では、次のとおりです。

    v *VAR は使用されません。引用符で囲まずに指定されている名前は、変数または名前付き定数の名前であると想定されます。

    v データ構造の場合、それがデータ域データ構造であることを指定するには、*AUTO を使用します。IN、OUT、および UNLOCK 命令を使用してデータ域が操作可能であることを指定するには、*USRCTL を使用します。

    5-118ページの『DTAARA キーワード』を参照してください。

    EXTFLD キーワード 自由形式のサブフィールド定義では、次のとおりです。

    v パラメーターは任意指定です。v パラメーターが引用符で囲まずに指定されている場合、前に定義済みの名前付き定数の名前であると想定されます。

    5-123ページの『EXTFLD{(フィールド名) }』を参照してください。

    EXTNAME キーワード

    自由形式のデータ構造定義では、次のとおりです。

    v ファイル名パラメーターまたは形式名パラメーターが引用符で囲まずに指定されている場合、前に定義済みの名前付き定数の名前であると想定されます。

    5-125ページの『EXTNAME(ファイル名{:形式名}{:*ALL| *INPUT|*OUTPUT|*KEY})』を参照してください。

    新着情報

    新着情報 2-5

    |

    ||

    ||||

    ||

    ||

    ||

    ||

    ||

    ||||||

    ||

    ||

    ||

    ||

    ||

    ||

    |||

    |

    ||

    |

    ||

    |

    |||

    ||

    ||

  • 表 2-3. 7.2 で変更された言語要素: 定義仕様書キーワード (続き)

    要素 説明

    EXPORT およびIMPORT キーワード

    自由形式定義では、次のとおりです。

    v 外部名に対して *DCLCASE を指定できます。これは、外部名が独立フィールドまたはデータ構造の指定方法と、大/小文字混合文字が同じであることを含めて、同一であることを示します。

    5-122ページの『EXPORT{(外部名)}』および 5-133ページの『IMPORT{(外部名)}』を参照してください。

    EXTPROC キーワード

    自由形式のプロトタイプ定義またはプロシージャー・インターフェース定義では、次のとおりです。

    v 外部プロシージャー名またはメソッド名に対して *DCLCASE を指定できます。これは、外部名が、プロトタイプまたはプロシージャー・インターフェースの指定方法と、大/小文字混合文字が同じであることを含めて、同一であることを示します。

    v プロシージャー・インターフェース名が *N と指定されている場合は、外部名はDCL-PROC ステートメントから取得されます。

    5-126ページの『EXTPROC({*CL|*CWIDEN|*CNOWIDEN| {*JAVA:クラス名:}}名前)』を参照してください。

    LIKE キーワード 自由形式定義で、LIKE キーワードには長さ調整を指定する任意指定の第 2 パラメーターがあります。

    5-137ページの『LIKE(名前 {: 長さ調整 })』を参照してください。

    LEN キーワード 自由形式定義では、データ構造定義に対してのみ LEN キーワードの使用が許可されています。他の自由形式定義では、長さはデータ・タイプ・キーワードの一部として指定されます。

    5-136ページの『LEN(長さ)』を参照してください。

    CLASS、DATFMT、PROCPTR、TIMFMT、および VARYING キーワード

    これらのキーワードは、自由形式定義では使用されません。これらのキーワードによって指定される情報は、関連するデータ・タイプ・キーワードの一部として指定されます。

    FROMFILE、PACKEVEN、およびTOFILE キーワード

    自由形式定義では、これらのキーワードの使用は許可されません。

    OVERLAY キーワード

    パラメーターに、自由形式サブフィールド定義のデータ構造の名前を指定することはできません。代わりに POS キーワードが使用されます。

    5-161ページの『POS(開始位置)』を参照してください。

    表 2-4. 7.2 で変更された言語要素: リテラル

    要素 説明

    タイム・スタンプ・リテラル

    タイム・スタンプ・リテラルは、0 から 12 桁の秒の小数部を含むことができます。

    4-5ページの『リテラル』を参照してください。

    新着情報

    2-6 IBM i: ILE RPG 解説書

    |

    ||

    |||

    |||

    ||

    ||||

    |||

    ||

    ||

    |||

    |

    |||

    |

    ||||

    ||

    |||

    |

    ||||

    ||

    ||

    ||

    |||

    ||

  • 表 2-5. 7.2 で変更された言語要素: ステートメントの順序

    要素 説明

    ファイルおよび定義ステートメント

    ファイル・ステートメントと定義ステートメントを混在させることができます。

    5-1ページの『RPG IV の仕様書タイプ』を参照してください。

    表 2-6. 7.2 で変更された言語要素: 組み込み関数

    要素 説明

    %CHAR オペランドがタイム・スタンプの場合、戻り値の長さはタイム・スタンプのバイト数に基づきます。形式が *ISO0 の場合、バイト数は、14 から 26 の間です。形式が *ISO の場合、バイト数は、19、または 21 から 32 の間です。

    6-78ページの『%CHAR(日付|時刻|タイム・スタンプ {: 形式})』を参照してください。

    %DEC オペランドがタイム・スタンプの場合、桁数は 14 から 26 の間であり、タイム・スタンプに含まれる秒の小数部の桁数に基づきます。

    6-87ページの『日付、時刻、またはタイム・スタンプ式』を参照してください。

    %DIFF オペランドがタイム・スタンプの場合、任意指定の第 4 パラメーターが、戻される秒の小数部の桁数を指定します。

    6-89ページの『%DIFF (2 つの日付、時刻、またはタイム・スタンプ値の差)』を参照してください。

    %SECONDS %SECONDS を使用してタイム・スタンプに秒数を加算する場合、パラメーターには小数点以下の秒数を指定する小数部も指定できます。

    6-131ページの『%SECONDS (秒数)』を参照してください。

    %SUBDT v 任意指定の第 3 パラメーターは、結果の桁数を指定します。v 第 1 オペランドがタイム・スタンプで、第 2 オペランドが *SECONDS の場合、任意指定の第 4 オペランドは、結果に含まれる秒の小数部の桁数を示します。

    6-141ページの『%SUBDT (日付、時刻、またはタイム・スタンプの一部の取り出し)』を参照してください。

    %TIMESTAMP v 最初のパラメーターにタイム・スタンプを指定できます。v 最初のパラメーターに *SYS を指定できます。v 最初のパラメーターが、日付、タイム・スタンプ、または *SYS である場合、任意指定の第 2 パラメーターには、秒の小数部の桁数を示す 0 から 12 までの値を指定できます。

    v 最初のパラメーターが文字または数値の場合、任意指定の第 3 パラメーターには、秒の小数部の桁数を示す 0 から 12 までの値を指定できます。

    6-146ページの『%TIMESTAMP (タイム・スタンプへの変換)』を参照してください。

    表 2-7. 7.2 で変更された言語要素: 固定形式定義仕様書

    要素 説明

    長さ入力 タイム・スタンプの長さを指定する入力項目は、19、または 21 から 32 までの値にすることができます。

    5-106ページの『33 から 39 桁目 (終了位置/長さ)』を参照してください。

    新着情報

    新着情報 2-7

    ||

    ||

    |||

    ||

    ||

    ||

    ||||

    |

    |||

    |

    |||

    ||

    |||

    |

    ||

    ||

    ||

    ||

    |

    ||

    ||

    |