フォームもコントロールと同様、イベント手続きをもっています。たとえば、フォームが開かれたときはOpened、フォームが閉じられたときはClosedといったイベントが発生します。フォームは、これらに加え、フォーム内の手続き全体で有効な共通宣言および共通内部プログラムを定義できます。さらに、フォームをActiveXコントロールとして利用するため、新しいイベント(カスタムイベント)も定義できます。ActiveXコントロールとして利用するための方法は、「9.2 ActiveXコントロールを作成する」を参照してください。
以下に、フォームがもつ共通宣言および共通内部プログラムについて説明します。各宣言の記述方法についての詳細は『COBOL 文法書』を参照してください。
構成節(CONFIGURATION SECTION)の特殊名段落(SPECIAL-NAMES)を記述します。
SPECIAL-NAMESでは、必要となる機能名に対する呼び名や、記号定数などを定義します。そのフォーム中で、機能名に対する呼び名や記号定数を使用しない場合は、記述する必要はありません。
基底場所節(BASED-STORAGE SECTION)を記述します。
BASED-STORAGE SECTIONでは、ポインタデータ項目により、明示的または暗示的に領域のアドレスが決定されるデータ項目を定義します。そのフォーム中で、ポインタデータ項目を使用しない場合は、記述する必要はありません。
ファイル節(FILE SECTION)を記述します。
FILE SECTIONでは、ファイルの物理的な構造、識別名およびファイルに関するレコード名の情報を指定します。そのフォーム中で、ファイルを扱わない場合は、記述する必要はありません。
注意
モジュールのプロパティ設定ダイアログボックスで、[一般]タブの[スクリプト言語]が"0 - COBOL85言語仕様"である場合、ファイル節で定義するファイルは、各手続きの中でOPEN文、CLOSE文、READ文、WRITE文などを使用するために、GLOBAL句を記述する必要があります。記述しないと、手続き中でそのファイルに対する入出力文が、翻訳エラーとなります。
ただし、SORT文/MERGE文ではGLOBAL句の指定ができませんので、SORT文/MERGE文を使用する場合は、個々のイベント手続きのFILE SECTIONに記述してください。
逆に、モジュールのプロパティ設定ダイアログボックスで、[一般]タブの[スクリプト言語]が"1 - OOCOBOL言語仕様"である場合、GLOBAL句を記述する必要はありません。GLOBAL句を記述すると翻訳エラーとなります。
作業場所節(WORKING-STORAGE SECTION)を記述します。
WORKING-STORAGE SECTIONでは、作業用データ項目の宣言をします。そのフォーム中で共通の、作業用データ項目を使用しない場合は、記述する必要はありません。
注意
モジュールのプロパティ設定ダイアログボックスで、[一般]タブの[スクリプト言語]が"0 - COBOL85言語仕様"である場合、作業場所節で定義するデータ項目は、内部プログラムとなる各手続きの中で使用するために、GLOBAL句を記述する必要があります。記述しないと、そのデータ項目を参照している手続きが、翻訳エラーとなります。
逆に、モジュールのプロパティ設定ダイアログボックスで、[一般]タブの[スクリプト言語]が"1 - OOCOBOL言語仕様"である場合、GLOBAL句を記述する必要はありません。GLOBAL句を記述すると翻訳エラーとなります。
定数節(CONSTANT SECTION)を記述します。
CONSTANT SECTIONでは、値が原始プログラムで与えられ、プログラムの実行中に変わることのないデータ項目を記述します。そのフォーム中で共通の、定数用のデータ項目を使用しない場合は、記述する必要はありません。
注意
モジュールのプロパティ設定ダイアログボックスで、[一般]タブの[スクリプト言語]が"0 - COBOL85言語仕様"である場合、定数節で定義するデータ項目は、内部プログラムとなる各イベント手続きの中で使用するために、GLOBAL句を記述する必要があります。記述しないと、そのデータ項目を参照している手続きが、翻訳エラーとなります。
逆に、モジュールのプロパティ設定ダイアログボックスで、[一般]タブの[スクリプト言語]が"1 - OOCOBOL言語仕様"である場合、GLOBAL句を記述する必要はありません。GLOBAL句を記述すると翻訳エラーとなります。
フォーム内で利用する共通内部プログラムは、以下のどちらかの方法で作成します。
個々の共通内部プログラムを新規作成する方法
複数の共通内部プログラムをまとめてPROCEDUREに記述する方法
ただし、そのフォーム中で共通の内部プログラムを使用しない場合、作成する必要はありません。
以下の操作により、共通内部プログラムを新規に作成できます。
通常、共通内部プログラムを作成する場合は、この方法を使用してください。
フォームのポップアップメニューの[手続き部の編集]サブメニューから[新規作成]コマンドを選択します。
共通内部プログラムを記述します。このとき、見出し部(IDENTIFICATION DIVISION)の記述は不要です。
プロジェクトウィンドウのデザインツリーウィンドウで、スクリプト中にある"FjCobCmpScrN"(Nは正数値)を選択します。
ポップアップメニューから[名前の変更]コマンドを選択し、共通内部プログラム名を入力します。
ポイント
以下のような特殊な内部プログラムを作成する場合は、共通内部プログラムをPROCEDUREに記述します。
ここに記述される内部プログラムは、すべての内部プログラムの先頭に位置づけられます。
注意
PROCEDUREに共通内部プログラムを記述する場合、各プログラムには見出し部およびプログラムの終わり見出しが必要です。また、モジュールのプロパティ設定ダイアログボックスで、[一般]タブの[スクリプト言語]が"0 - COBOL85言語仕様"である場合、プログラム名段落には、COMMON属性を付けてください。