ページの先頭行へ戻る
NetCOBOL V12.2 PowerCOBOL ユーザーズガイド
FUJITSU Software

7.4 登録集ファイルの利用方法

登録集ファイルを利用する場合、PowerCOBOLでは#INCLUDE文を使います。

#INCLUDE文を使うことにより、PowerCOBOL固有のプロパティへのアクセスやメソッドの呼び出し処理で、登録集ファイル内で定義されたデータ項目を利用することや、同一の完結文を複数の手続き中で利用することができます。

#INCLUDE文の書き方

  #INCLUDE  ”登録集ファイル名”
登録集ファイル名

#INCLUDE文で展開する原文が記述されている、ファイルの名前です。

ファイルの形式は可変長でなければなりません。

#INCLUDE文の記述規則

#INCLUDE文の使用例

登録集ファイル"NUMDATA.COB"を利用する場合、以下のように記述します。

  ENVIRONMENT     DIVISION.
  DATA            DIVISION.
  WORKING-STORAGE SECTION.
  #INCLUDE "NUMDATA.COB".
  PROCEDURE       DIVISION.
      ・
      ・
      MOVE "Text" OF "TableCells"(WK-1 WK-2) OF Table1 TO WK-D1.
      MOVE WK-D1 TO WK-D2.

登録集ファイル"NUMDATA.COB"の内容は、以下のように記述します。

  000100 01 WK-G.
  000200   02 WK-D1 PIC 9(8).
  000300   02 WK-D2 PIC 9(8).
  000400 01 WK-1    PIC S9(9) COMP-5.
  000500 01 WK-2    PIC S9(9) COMP-5.

注意

  • COBOLのCOPY文を使って登録集ファイルを利用することもできます。ただし、その場合、登録集ファイル内で定義されたデータ項目を、プロパティへのアクセスやメソッドの呼び出し処理で使用することはできません。使用した場合、エラーとなります。
    たとえば、上記の例で#INCLUDE文をCOPY文に置き換えた場合、2つめの手続きはエラーにはなりませんが、1つめの手続きは表コントロールのプロパティへアクセスしているため、エラーとなります。
    これは、フォームを翻訳する場合の、PowerCOBOLの実行論理によるものです。「イベント駆動型のプログラムスタイル」で説明したように、PowerCOBOLは、記述されたイベント手続きを、COBOLコンパイラで翻訳する直前に1つのプログラムにまとめています。同時にプロパティへのアクセスやメソッド呼び出し文を、COBOLコンパイラが認識できる形に変換しています。また、使用しているデータの項類をCOMの型と対応づけています。
    #INCLUDE文で指定された登録集ファイルは、この変換処理の最中に展開されます。したがって、登録集ファイル内で定義されたデータ項目を、プロパティへのアクセスやメソッドの呼び出し文の変換時に認識できます。
    これに対し、COPY文で指定された登録集ファイルは、COBOL翻訳時に展開されます。したがって、登録集ファイル内のデータ項目を、プロパティへのアクセスやメソッド呼び出し文の変換時に認識できません。

  • #INCLUDE文で取り込むファイルが#INCLUDE文の記述規則に違反している場合、デバッガおよび診断機能を正しく利用できない場合があります。この場合、#INCLUDE文の記述規則を満たすようにソースプログラムを修正してください。