プログラム・パーツの概要
プログラム・パーツは、1 つのエントリー・ポイントを持つ、メインの論理パーツです。プログラム・パーツは、ランタイム・プログラムの中心となるロジックを定義します。
各プログラム・パーツには、プログラムの開始時に実行するロジックを表す main() 関数が含まれます。プログラムには、他の関数を含めることができ、プログラムの外部の関数にアクセスできます。 関数 main() は、これらの他の関数を呼び出すことができます。任意の関数が他のプログラムに制御を渡すことができます。
プログラム・パーツでは、ステレオタイプを使用して、ユーザー・インターフェースに合わせてコードを特殊化します。 BasicProgram は、コア EGL パッケージのパーツである唯一のステレオタイプです。BasicProgram は、データベースやファイルにアクセスし、計算を実行し、ほとんどの EGL ステートメントを使用することができます。一部の UI テクノロジーは、追加のステレオタイプを提供します。
コードの振る舞いに影響する多数のプロパティーをプログラム・レベルで使用できます。使用可能なプロパティーは、UI およびデータ・アクセス・テクノロジーによって異なります。
メインプログラムと呼び出し先プログラム
Program custProcessing1 type basicProgram (customerNum INT)
// 必要な main() 関数
function main()
// 渡された顧客番号に基づいて
// 正しい顧客名を取得
customerName = getCustName(customerNum);
...
end
// 別の関数
Function getCustName(customerNum INT) returns (CHAR(25))
...
end
end
program custProcessing1 type basicProgram (customerNum INT)
program custProcessing1 type basicProgram ()
program custProcessing1 type basicProgram
customerName CHAR(30)
...
call custProcessing1(customerName);
program custProcessing1 type basicProgram (custName CHAR(80) inout)
EGL はポインターを customerName 変数に渡すことから、custName 変数の実際の長さは 30 文字になります。custName 変数の桁 31 から 80 に書き込む場合、これはプログラムでは正しい操作ですが、ランダム・メモリーを上書きすることがあります。 このような未定義の振る舞いが発生する場合には、EGL デバッガーから警告が出される点に注意してください。
呼び出し先プログラムの詳細については、プログラム間での制御権の移動を参照してください。