式フィールドは、購読リストにデータを設定する場合に使用されます。購読リストは、Headlines.nsf データベースと連携して機能します。購読データベースは、Notes クライアントのホームページとして使用されます。購読データベースには、購読という機能があります。データベースの設計者は、データベースを購読に使用するかどうかを選択できます。ユーザーが ([作成] - [購読] を選択して) データベースを購読すると、関心のある文書が特定のデータベースに保存されると通知する、というサーバータスクがトリガーされます。サーバーが探す基準は、購読フォームの式フィールドに含まれています。ユーザーは購読したいデータベースの購読フォームに記入しますが、購読文書は各ユーザーのローカルクライアントにあるユーザーの購読データベース (デフォルトは headlines.nsf) に保存されます。
自分のデータベースに合わせてカスタム購読フォームを作成する場合は、Domino® Designer に組み込まれている HEADLINES.NSF データベースまたは HEADLINES.NTF データベースにあるデフォルトの購読フォーム ($Subscription) をひな型にすることができます。まず購読フォームをコピーして設計中のデータベースに貼り付け、カスタマイズします。購読フォームをカスタマイズする場合は、式フィールドを組み込む必要があります。$Subscription フォームの式フィールドは、$HLFormula という名前であり、フォームの右側にありタブで区切られた表の、2 番目のタブに表示されます。$HLFormula フィールドは計算結果フィールドです。式フィールドを計算結果フィールドのままにする場合は、購読リストの選択式として解決される式を書き込みます。式フィールドは、サーバーがユーザーの購読基準を検索できるように、選択式として解決される必要があります。
式フィールドのもう 1 つのオプションは、[フィールドのプロパティ] インフォボックスの [フィールド情報] タブで [確認してから計算する] を選択することです。[確認してから計算する] オプションを選択した場合、入力した式をコンパイルしないで使用するように式フィールドをプログラムすることになります。この場合の参照フィールドは、テキスト、数値、数値リスト、日付、日付範囲、日付リストのいずれかを指定する必要があります。参照するフィールドがその他の種類の場合は、フィールド参照の対象外とみなされます。
オプションとして [確認してから計算する] が選択された式フィールドの式の例を次に示します。
Select (Names = ExampleNames) & (Numbers = ExampleNumbers) & (Categories = ExampleCategories)& (Dates = ExampleDates)
現在の文書が次のフィールドと値を持つとします。
フィールド |
値 |
---|---|
ExampleNames |
"CN=Sara Ryan/O=Acme" : "CN=Jack Town/O=Acme" |
ExampleNumbers |
1: 2: 3 |
ExampleCategories |
"Arizona" : "Florida" : "New York" |
ExampleDates |
[3/26/82]:[10/08/86]:[5/30/98] |
式フィールドは、次のように文字列として認識されます。
Select (Names = "Sara Ryan/Acme" : "Jack Town/Acme" ) & (Numbers = 1 : 2 : 3) & (Categories = "Arizona" : "Florida" : "New York") & (Dates=[3/26/82]:[10/08/86]:[5/30/98]
計算結果オプションを選択した場合は、入力した式は別の式を決定することになります。これにより、複雑な式を保存する前に、その式を最適化できます。式が評価されてから、結果式が保存されます。
結果式が無効の場合は、フィールドはタイプエラーという値で保存されます。場合によっては、ユーザーは文書を永久に終了できなくなります。成功か失敗かを区別するには、QuerySave イベントでテストを行い、式フィールドが実際に式であることを判定する必要があります。実際に式でない場合は、計算は有効な結果式にはなりません。
例えば、計算結果式フィールドに次の式が設定されているとします。
tLitNames := "¥"" + @Implode( ExampleNames; "¥" : ¥"") + "¥"";
tLitNumbers := @Implode( @Text(ExampleNumbers); " : ");
tLitCategories := "¥"" + @Implode( ExampleCategories; "¥" : ¥"") + "¥"";
"Select (Names = " + tLitNames + ") & (Numbers = " + tLitNumbers + ") & (Categories = " + tLitCategories + ")"
現在の文書が次のフィールドと値を持つとします。
フィールド |
値 |
---|---|
ExampleNames |
"CN=Sara Ryan/O=Acme" : "CN=Jack Town/O=Acme" |
ExampleNumbers |
1: 2: 3 |
ExampleCategories |
"Arizona" : "Florida" : "New York" |
式は、次のようにコンパイルされます。
Select (Names = "Sara Ryan/Acme" : "Jack Town/Acme" ) & (Numbers = 1 : 2 : 3) &(Categories = "Arizona" : "Florida" : "New York")