式言語


フィールド
式は処理する文書のフィールドにアクセスできます。各フィールドの名前と種類は、データベース設計で指定されたものになります。

データ型データ型は、実行する操作や @関数に適したものでなければなりません。たとえば、TotalValue が数値フィールドの場合は、@Prompt で直接表示することはできません。@Prompt には文字列の引数が必要なためです。まず @Text で引数を変換しなければなりません。
@Prompt([OK]; "Value of MyNumber"; @Text(TotalValue));

リッチテキストフィールド@Text を次のように使って、リッチテキストフィールドをプレーンテキストに変換できます。
plainText := @Text(Body);

添付ファイル、およびタブと空白を除く書式がすべて失われます。

メモ リッチテキストの変換は Release 6 で新しく追加されました。

@Abstract を使っても、次のようにリッチテキストフィールドをプレーンテキストに変換できます。

plainText := @Abstract([TryFit]; 100; ""; "Body");

リストリストは、複数の値を含むフィールドです。リストを操作する専用の @関数と演算子が用意されています。たとえば Locations が複数の値を含むフィールドの場合は、次のステートメントはリスト内の値の数を返します。
@Elements(Locations)

フィールドの値フィールドの値は、式の起動時に文書で指定されていた値です。アクセス制御で禁止されていない限り、フィールドの値は式によって修正できます。フィールドの値を変更するには、FIELD 予約語を使わなければなりません。そうしない場合、変数は、一時変数とみなされます。FIELD 予約語は、現在の文書にフィールドを新規作成するときにも使います。次の式は、テキストフィールド Subject に値を書き込みます。
FIELD Subject := "No Subject"

ヌルフィールドヌルフィールドは、文字列定数 "" (空の引用符) と同等です。次の例は、現在の文書の Subject という名前のフィールドを評価します。Subject の値がヌルの場合、「No Subject」に設定します。それ以外の場合は、値をそのまま残します。
FIELD Subject := @If(Subject=""; "No Subject"; Subject)

"" は文字列定数なので、文字列以外のフィールドでは使わないでください。特に、編集可能な非文字列のフィールドでは、デフォルト式を使って、フィールドに正しい型の値が入るようにしてください。

フィールドを削除する文書からフィールドを削除するときは @DeleteField を使います。
FIELD BodyText := @DeleteField

Form フィールド作成に使ったフォームが文書に保存されていない場合は、[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"

関連項目