式は処理する文書のフィールドにアクセスできます。各フィールドの名前と種類は、データベース設計で指定されたものになります。
データ型は、実行する操作や @関数に適したものでなければなりません。例えば、TotalValue が数値フィールドの場合は、@Prompt で直接表示することはできません。@Prompt には文字列の引数が必要なためです。まず @Text で引数を変換しなければなりません。
@Prompt([OK]; "Value of MyNumber"; @Text(TotalValue));
@Text を使用して、リッチテキストフィールドをプレーンテキストに変換できます。
plainText := @Text(Body);
添付ファイル、およびタブと空白を除く書式がすべて失われます。
@Abstract を使用しても、リッチテキストフィールドをプレーンテキストに変換できます。
plainText := @Abstract([TryFit]; 100; ""; "Body");
リストは、複数の値を含むフィールドです。リストを操作する専用の @関数と演算子が用意されています。例えば Locations が複数の値を含むフィールドの場合は、次のステートメントはリスト内の値の数を返します。
@Elements(Locations)
フィールドの値は、式の起動時に文書で指定されていた値です。アクセス制御で禁止されていない限り、フィールドの値は式によって修正できます。フィールドの値を変更するには、FIELD 予約語を使用しなければなりません。そうしない場合、変数は、一時変数とみなされます。FIELD 予約語は、現在の文書にフィールドを新規作成するときにも使用します。次の式は、テキストフィールド Subject に値を書き込みます。
FIELD Subject := "No Subject"
Null フィールドは、文字列定数 "" (空の引用符) と同等です。次の例は、現在の文書の Subject という名前のフィールドを評価します。Subject の値が Null の場合、「No Subject」に設定します。それ以外の場合は、値をそのまま残します。
FIELD Subject := @If(Subject=""; "No Subject"; Subject)
"" は文字列定数であるため、文字列以外のフィールドでは使用しないでください。特に、編集可能な非文字列のフィールドでは、デフォルト式を使用して、フィールドに正しい型の値が入るようにしてください。
文書からフィールドを削除するときは @DeleteField を使用します。
FIELD BodyText := @DeleteField
作成に使用したフォームが文書に保存されていない場合は、[Form] というフィールドにフォーム名が保存されます。フォームが文書に保存されている場合は、$TITLE、$Info、$WindowTitle (設計でウィンドウのタイトルが指定されている場合)、$Body の各フィールドを使用できます。$TITLE にはフォームの名前が含まれています。ボタンかホットスポットで機能する次の例は、現在の文書の作成に使用したフォームの名前を表示します。
@Prompt([OK]; "Form"; @If(@IsAvailable(Form); Form; $TITLE))
文書内にどのようなフィールドがあるかを表示するには、[ファイル] - [文書のプロパティ]、[フィールド] の順に選択します。
$TITLE、$Info、$WindowTitle、$Body を削除すると、文書に保存されたフォームを削除できます。ただし、その後、[Form] フィールドを作成して、データベース内のフォームの名前を入れておかなければなりません。エージェントとして機能する次の式では、文書に保存されたフォーム [Travel Request] を削除し、データベースフォーム [Travel Arrangements] に置換します。
SELECT $TITLE ="Travel Request";
FIELD $TITLE := @DeleteField;
FIELD $Info := @DeleteField;
FIELD $WindowTitle := @DeleteField;
FIELD $Body := @DeleteField;
FIELD Form := "Travel Arrangements"