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

1.2 イベント駆動型プログラムとは

アプリケーションを作成するためのプログラムスタイルには、手続き型プログラムスタイルとイベント駆動型プログラムスタイルの2つのスタイルがあります。

従来のプログラムスタイル

従来のメインフレームやオフコンで使用していたバッチ型アプリケーションのプログラムスタイルは、手続き型プログラムスタイルです。プログラムの実行は、手続き部の先頭から始まり、記述したCOBOLの文単位に実行されます。手続き型プログラムスタイルは、バッチ型アプリケーションだけでなくクライアントアプリケーションの開発でも利用することができるので、従来のプログラム資産を流用することが可能です。

COBOLを使って、ウィンドウへアクセスするプログラムを作成するには、ファイルを扱うようにWRITE文を使ってデータをウィンドウに出力したり、READ文を使ってウィンドウから入力したデータを受け取ったりします。このように手続き型プログラムでは、WRITE文/READ文、DISPLAY文/ACCEPT文の実行順序は、実行する手続き自身が制御します。また、スクリーン機能を使ったプログラムでは、DISPLAY文が実行されるとスクリーンにデータを表示し、ACCEPT文が実行されるとスクリーンからデータを読み込みます。COBOLを使ったプログラミング方法の詳細は、『NetCOBOL ユーザーズガイド』を参照してください。

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID.    DENPYOU1.
000400 ENVIRONMENT    DIVISION.
      *>    …
000700     SELECT 伝票画面 ASSIGN TO GS-DISPFILE
000800       SYMBOLIC DESTINATION IS “DSP”
000900       FORMAT               IS 伝票
      *>    …
001400     SELECT 商品ファイル ASSIGN TO SYOUHIN
001500       FILE STATUS IS ファイル状態
001600       ORGANIZATION IS INDEXED
      *>    …
002000 DATA           DIVISION.
002100 FILE           SECTION.
002200 FD 商品ファイル.
002300    COPY  SYOHINM1.
002400 FD 伝票画面.
002500    COPY  DENPYO01 OF XMDLIB.
002700 WORKING-STORAGE SECTION.
      *>    …
006900 PROCEDURE              DIVISION.
010300    OPEN INPUT 商品ファイル.
011900    OPEN I-O 伝票画面.        *>  表示ファイルオープン
      *>    …
012500    WRITE DENPYOU1.           *>  画面出力  
012600    READ 伝票画面.            *>  画面データ入力
012700    IF END-KYE THEN
012800      GO TO 入力終了.
      *>    …
025000 入力終了.
025100    CLOSE 伝票  画面商品ファイル. *>  クローズ
025200    EXIT PROGRAM.

イベント駆動型のプログラムスタイル

イベント駆動型のプログラムスタイルは、ある事象を単位として、その事象が発生した場合の動作を手続きとして記述していく方法です。事象には、「ボタンが押された(クリックされた)」、「テキスト(入力データ)が変更された」といったものがあり、これらをイベントと呼んでいます。これらのイベントに対応する手続きを記述していく方法を、イベント駆動型プログラムスタイルといいます。

PowerCOBOLのプログラムスタイル

PowerCOBOLのプログラムスタイルは、イベント駆動型プログラムスタイルです。

PowerCOBOLでは、イベントごとに実行される手続きをCOBOLで記述していきます。

たとえば、「ボタンが押された」場合には、"Click"というイベントが発生します。また、「テキストが変更された」場合には、"Change"というイベントが発生します。これらのイベントごとに、イベントが発生したときの動作をCOBOLで記述していきます。

PowerCOBOLでは、1つのウィンドウが1つの翻訳単位(外部プログラム)となります。この外部プログラムは、翻訳時にPowerCOBOLによって自動的に生成されます。記述した各イベントに対応するCOBOLの手続きは、その外部プログラムに含まれる内部プログラムとして展開されます。外部プログラムは、以下のようなCOBOLソースとして生成されます。

プログラムが実行されると、PowerCOBOLの実行システム(ランタイムシステム)は、Windowsからのイベントを受け取り、そのイベントに対応する内部プログラムを呼び出すための制御をします。