@SetField (式言語)

文書内のフィールドに値を割り当てます (一時変数に割り当てる場合は @Set を使用します)。これは FIELD キーワードと似ていますが、@SetField の場合は別の @関数に埋め込むことができます。フィールドが存在しない場合はフィールドが作成され、指定した値が設定されます。

構文

@SetField( fieldName ; value )

パラメータ

fieldName

値を割り当てるフィールドの名前を引用符で囲んで指定します。

value

文字列、数値、日時、日時の範囲、または日時の範囲のリスト。fieldName に渡す値を指定します。

使用法

この関数は、エージェント、ホットスポットボタン、アクション、ツールバーボタンで使用すると最も効果的です。列式、選択式、非表示切り替え式、ウィンドウタイトル式、フォーム式では使用できません。

Release 6 では、@SetField で値を割り当てる前にフィールドを宣言する必要がなくなりました。R5 以前のクライアントでは、次のように式の先頭でフィールドを宣言します。

FIELD Fieldname:=Fieldname;

指定したフィールドが文書に存在しない場合に @SetField によって作成され、指定した値が割り当てられるフィールドは、ユーザーには表示されません。このようにしてフォームに追加されたフィールドを削除するには、@DeleteField 関数を使用します。

指定する値はどのようなものでもよく、フォーム上で定義されたフィールドの種類と一致している必要はありません。この関数によって、既存のフィールド上のフラグがリセットされたり、新しく保存されたフィールドにフラグが設定されたりすることはありません。例えば、文字列の値を割り当てることによって、[Readers] フィールドがプレーンテキストになることはありません。また、新しく保存したフィールドを [Readers] フィールドにすることはできません。LotusScript® と Java™ のクラスでは、NotesItemItem を使用してこの操作を行うことができます。

  1. 次の式では、[Priority] フィールドの値が Low または Medium の場合は、[Status] フィールドが Closed に設定されます。そうでない場合は、[Status] は Open に設定されます。この式では、@SetField を実行する前に、FIELD キーワードを使用して [Status] フィールドを宣言しています。
    FIELD Status:=Status;
    @If(Priority="Low"|Priority="Medium";@SetField("Status";"Closed");
    @SetField("Status";"Open"))
  2. 次のコードをビューのアクションボタンで使用すると、選択された文書の [x_1] から [x_20] までのフィールドが削除されます。
    @For(i := 1; i <= 20; i := i + 1;
    @SetField("x_" + @Text(i);@DeleteField));
  3. このボタン式は、[name] フィールドの値を Joseph と Riley を含むリストに設定します。
    @SetField("name"; "Joseph" : "Riley")

クロスリファレンス

LotusScript NotesUIDocument クラスの FieldSetText メソッド

LotusScript NotesDocument クラスの ReplaceItemValue メソッド

Java Document クラスの replaceItemValue メソッド