レコード ID 基準の指定
ここでは、コピーブックまたはテンプレートに複数のレコード・タイプが含まれ、各タイプは当初そのレコード長によって識別されます。各タイプに固有のレコード長がある場合は、各種のタイプを選択して表示できます。ただし、複数のレコード・タイプが同じ長さである場合は、特定のレコード ID 基準の指定が必要となります。これには通常、同じタイプの各レコードに固有な値を組み込むフィールドの形式で行われます。
例えば、次のコピーブック定義では、「順序」と「項目」のレコードは異なった長さとなります。そのようにして、追加の ID 基準なしでレコードを選択して表示することができます。
01 ORDERS.
05 ORDER-ID PIC X(5).
05 CUSTOMER-ID PIC X(5).
05 ORDER-DATE.
10 ORDER-YEAR PIC 9(4).
10 ORDER-MONTH PIC 9(2).
10 ORDER-DAY PIC 9(2).
01 ITEM.
05 PRODUCT-ID PIC X(9).
05 QUANTITY PIC 9(4) BINARY.
05 UNIT-COST PIC 9(8) BINARY.
ただし、下記に示すサンプル・コピーブックのように、レコードが同一の長さである場合は、なんらかのレコード ID 基準を使用しない限り、File Manager はこれらのレコードを識別できません。データを検査することによって、すべての REC-TYPE01 レコードでは、REC-TYPE フィールドに値「01」が含まれていて、すべての REC-TYPE02 レコードでは、REC-TYPE フィールド値が「02」となっていることが分かります。この場合、両方のレコード・タイプに REC-TYPE フィールドが含まれますが、各レコード・タイプはその識別で同じフィールドを使用する必要はありません。
01 REC-TYPE01.
05 REC-TYPE PIC XX.
05 NAME PIC X(20).
05 EMPLOYEE-NO PIC 9(4) BINARY.
05 AGE PIC 9(4) BINARY.
05 SALARY PIC 9(7) PACKED-DECIMAL.
05 MONTH PIC 9(8) BINARY OCCURS 12 TIMES.
05 FILLER PIC XX.
01 REC-TYPE02.
05 REC-TYPE PIC XX.
05 NAME PIC X(20).
05 JOB-TITLE PIC X(14).
05 ADDR1 PIC X(20).
05 ADDR2 PIC X(20).
05 POSTCODE PIC X(4).
いずれかのレコード・タイプに同じレコード長のデータがある場合には、レコード ID 基準を指定して File Manager がレコード間で識別できるようにすることを強くお勧めします。そうしない場合には、予期しない結果になる可能性があります。
それぞれのレコード・タイプの長さが固有な場合でも、やはりすべてのレコード・タイプにレコード ID 基準を指定することをお勧めします。そうすると、有効なレコード・タイプの長さと一致しており、しかもそのタイプに無効なデータが入っているレコードを分離できるようにするのに役立ちます。
レコード ID 基準を指定するには、
- 入力パネルで、複数のレコード・タイプを含むコピーブックまたはコピーブック・テンプレートを指定して、そのテンプレートを編集します。
これは、いくつかの方法で行うことができます。例えば、「View Entry (表示項目の入力)」パネル、「Edit Entry (編集項目の入力)」パネル、または各種の「Utilities (ユーティリティー)」パネルから、「Edit Template (テンプレートの編集)」オプションを選択することができます。また、「View (表示)」または「Edit (編集)」パネルでは、
TE
コマンドを入力でき、「Template Workbench (テンプレート・ワークベンチ)」パネルでは、E
コマンドを入力できます。「Record Type Selection (レコード・タイプ選択)」パネルが表示されます。
- 編集したいタイプの横の「Cmd」フィールドに、
E
接頭部コマンドを入力して Enter キーを押します。「Field Selection/Edit (フィールド選択/編集)」パネルが表示されます。
- 以下のいずれかを実行します。
- 「Record Identification Criteria (レコード ID 基準)」フィールドにフリー・フォームの式を入力します。
- コマンド行に
1
を入力して Enter キーを押してから、フィールド別にレコード ID 基準を指定します。「Record Identification Criteria (レコード ID 基準)」パネルが表示されます。このパネルは、次の点を除いて、「Dynamic Template (動的テンプレート)」パネルと同じです。
- 「Field Name (フィールド名)」、「Start (開始)」、「Length (長さ)」および「Type (タイプ)」のフィールドが編集不可である。
- 80 x 24 画面では、デフォルトで「Field Name (フィールド名)」フィールドが (「Start (開始)」、「Length (長さ)」および「Type (タイプ)」のフィールドの代わりに) 表示される。
終了時には、作成された式は直前のパネルの「Record Identification Criteria (レコード ID 基準)」フィールドに戻ります。
注: フリー・フォーム基準式と、「フィールド別基準」式は一緒には使用できません。
レコードをタイプ別に (レコード長またはレコード ID 基準のいずれかによって) 識別できると、File Manager は、エディター・オプション「Expose (do not group) records of types: Suppressed
」の設定に従って、そのレコード・タイプ以外のすべての表示を自動的に抑制します。デフォルトでは、最初に識別されたレコード・タイプが表示されます。
関連トピック
関連概念