以下は、リッチクライアントタスクで式を使用した動作に関する情報をまとめたものです。
サーバ側でのみ実行される関数とクライアント側でのみ実行される関数の両方によって構成される式は、両方をアクセスすることになり定義できません。
ユーザ定義関数
(メインプログラムを除く)開発時のタスクツリー内に定義され、サーバ側の処理コマンドが含まれているユーザ定義関数は、式をサーバ側で使用するものとして変換します。
(コンポーネントを含む)メインプログラムで定義されたユーザ定義関数は、式をどちらで処理されるか不明なものとして変換します。
ユーザ定義関数には、クライアント側およびサーバ側の処理コマンドの両方を含めることができません。
クライアント側の式
以下の式は、クライアント側で評価される式のみを使用することができます。
[フォーム/コントロール]特性
[タスク終了条件]特性
[循環入力]特性
[確認確認]特性
[キャンセル確認]特性
[強制レコード後]特性
[修正]特性
[照会]特性
[削除]特性
[登録]特性
サーバ側の式
以下の式は、タスクの初期設定処理で評価され、クライアント側の式を含めることはできません。
メインソースとリンクテーブルの各カラムの範囲式と位置付式
SQL Where句
項目の[代入]特性
ニュートラルな式と処理コマンド
サーバ側とクライアント側の両方で評価することができるものを「ニュートラル」と呼びます。以下の式は、サーバ側とクライアント側の両方で評価することができるため、これらはニュートラルとなります。
[範囲/位置付]ウィンドウ内の[範囲式]と[位置付式]
ニュートラルな式や処理コマンドが実際にどちらで評価されるかは、定義される場所や定義内容によって異なります。
クライアントでのみ評価される式を持つニュートラルな処理コマンドは、クライアント側の処理コマンドとみなされます。
サーバでのみ評価される式を持つニュートラルな処理コマンドは、サーバ側の処理コマンドとみなされます。
混在の式と処理コマンド
混在式(クライアント側の関数とサーバ側の関数を両方とも含んでいる式)は使用できません。
混在処理コマンド(少なくとも1回はクライアント側とサーバ側の両方での実行が要求される処理コマンド)は使用できません。
ロジックユニットでの推奨事項
[コントロール]と[レコード前/後]は、ユーザがレコードを参照している間に実行されます。このため、サーバにアクセスする処理を定義しないようにすることを推奨します。
[項目変更]は、ユーザがレコードを参照している間に実行されます。このため、サーバにアクセスする処理を定義しないようにすることを推奨します。
[エラー]は、サーバ上で実行されます。
サーバに対する混在アクセスの実行は推奨されません。従って、クライアント側の定義群の次にサーバ側の処理が定義され、さらに、別のサーバ側の処理が続くようになっている場合、サーバ側のアクセス処理をまとめて定義するようにしてください。
[ブロックWhile]処理コマンド内で、クライアント側とサーバ側の両方の処理群が定義されている場合、サーバへの混在アクセスが発生することになります。このような設定は推奨しておりません。