複数ファイルで同一のフィールド定義を行うには? 同一フィールド名を別ファイルで使用するには? 同一フィールド名をワーク・フィールドで使用するには? 同一フィールド名をプログラムで参照するには? B039 名前があいまいである」エラー発生時の対応は? 複数ファイルを扱っている場合、RECORD-COUNT、RECORD-LENGTHフィールドの参照方法は?

Document created by Masaaki_Iyama Employee on Jun 16, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC000978

製品名: CA-Easytrieve Plus

バージョン: ALL

OS: z/OS, MSP, VOS3

 

Question

複数ファイルで同一のフィールド定義を行うには?

同一フィールド名を別ファイルで使用するには?

同一フィールド名をワーク・フィールドで使用するには?

同一フィールド名をプログラムで参照するには?

B039 名前があいまいである」エラー発生時の対応は?

複数ファイルを扱っている場合、RECORD-COUNT、RECORD-LENGTHフィールドの参照方法は? 

 

Answer

各ファイルのフィールド名を COPY ステ-トメントで展開、または同一名で定義しそのデータを 使用する時どちらのファイルのフィールドかを指定することにより固有フィールドとして取り扱うことができます。


<解説>

フィールド定義ステートメントにおいては、複数のファイルに対して同じフィールド名を使用して定義することができます。

 

[同一フィールド定義の展開の指定]

FILE ファイル名

COPY ファイル名

 

FILEステートメントの直後に COPY ファイル名 と記述することによりプログラム内で定義されている指定したファイルと同一のフィールド定義が展開されます。 複数のファイルに対し同一のフィールド名で定義した場合、フィールドの参照はファイル名で修飾して行います。

 

[フィールド名の記述]

ファイル名 : フィールド名  または フィールド名( ファイル名 )   ファイルのレコード フィールド

WORK : フィールド名     ワーク・フィールド  

 

同一名で定義されたフィールドを参照するとき、ファイル名で修飾されていない場合には、「B039名前があいまいである」エラーが発生します。この場合には、当該フィールドをファイル名で修飾します。

RECORD-COUNT,RECORD-LENGTHなどのEASYPLUSシステム定義フィールドを参照する場合にも、複数ファイルを定義している場合にはファイル名で修飾します。

 

   記述例

   (例) 同一レイアウトのFILEAとFILEBを使用する

 

     FILE FILEA

       FIELD1    1   4   A

       FIELD2    5   5   N

       FIELD3   10  14   A             コンパイルで同一定義が

     *

FILE FILEB

    COPY FILEA                         ←      展開される。

     *

JOB

   MOVE  LIKE  FILEA  TO  FILEB

   IF  FILEA:FIELD3  NOT  SPACE

       MOVE  SPACE TO FILEB:FIELD3

       PRINT

   END-IF

   PUT FILEB

*

REPORT

   TITLE 1 '*** LIST FOR FIELD3 IS NOT SPACE ***'

    LINE  1 FILEA:RECORD-COUNT  FILEA:FIELD3

 


       ※ MOVE LIKE FILEA TO FILEB                           

同一フィールド名で定義されたデータを一括して移送する命令

 

注意 EASYPLUSのCOPYステ-トメントは、同一プログラム内ですでに記述されているファイル名に対してのみ指定可能です。

 

(誤)

  FILE FILEA

    COPY FILEB

  FILE FILEB

  FLD-1

    FLD-2

    FLD-3

 

(正)

  FILE FILEA

    FLD-1

    FLD-2

    FLD-3

  FILE FILEB

    COPY FILEA


Attachments

    Outcomes