次の例では、一般的な列のプログラム技法をいくつか紹介します。
条件に応じて、任意の文字列を列に表示できます。例えば、売上高が一定額を超えた場合に特定の文字列を表示する式を作成できます。次の式は、[Sales_February] フィールド (数値フィールド) の値を調べ、その値に応じて文字列を表示します。
@If(Sales_February>60000;"Great month!";"")
[メール (6)] テンプレートの [すべての文書] ビューにある [件名] 列では、次の式が使用されています。これは、文書を作成するときに使用したフォームに基づいて件名を表示します。
@If(Form = "NonDelivery Report"; "DELIVERY FAILURE: " + FailureReason; Form = "Delivery Report"; "DELIVERED: " + Subject; Form = "Return Receipt"; "RECEIVED: " + Subject; Form = "ReturnNonReceipt"; "NOT RECEIVED: " + Subject; Subject)
スケジュール用データベースの列には、テキスト値とフィールド値を組み合わせることによって、文書に関する詳しい説明を追加できます。次の式は、2 つの形式でテキストメッセージと日付を表示します。どちらの形式を使用するかは、[Sched] フィールドの値によって決まります。@Text 式の [D1S0] 部は、フォーマット用のオプションです。この指定により、時刻を省略して日付フィールドの月日の部分だけを表示するため、ビューからは余分な情報が取り除かれます。
@If(Sched = "Special schedule"; "Special schedule for the week of: " + @Text(Date; "D1S0"); "My regular schedule, as of " + @Text(@Modified; "D1S0"))
次の式では、要求の状況に応じて、3 種類の結果になります。
@If(Status="Rejected";"Rejected by " + LastApproveName; SignatureCount=0; "Original Request";"Approved by " + LastApproveName)
[文書ライブラリ] テンプレートの [作成者別] ビューの [作成日] 列には次の式が使用されています。その結果、文書の作成日が表示されます。
@Created
シンプルファンクションの [省略/展開 (+/-)] は、引数を指定しない形式で @IsExpandable を使用します。文書に返答文書があればプラス記号 (+) を表示させて、返答文書が展開されたときにはマイナス記号 (-) を表示させないようにするには、次の式を使用します。
@IsExpandable("+";"")
名前と電話番号を 1 つの列内にまとめて表示したい場合は、昇順 (アルファベット順の場合に推奨) でソートされる列を 1 つ作成します。次の式では、名前と電話番号がまとめて表示され、2 つのフィールド値が空白で区切られます。
Name + " " + Phone
Notes® で返答文書にインデントを付ける場合、インデントは常に同じです。ビュー内のインデントを設定していない状態にして、さらに、返答文書を使用せずに列の値をインデントされているように表示したいことがあります。例えば文書のタイトルを同じ列内にインデントを変えて表示する場合です。これはちょっとした工夫で実現できます。各文書をどのようにインデントするかを、フォーム上のフィールドを使用して設定します。そして列式を使用して、ビューに表示される文書のタイトルに空白文字を追加します。次の式は、Indent フィールドの値に応じて、3 種類の方法で文書を「インデント」します。例えば、Indent フィールドの値が 2 の場合は、文書の [Subject] フィールドの値の前に 18 個の空白文字を付けて列に表示します。
@If(Indent = 1; @Repeat(" "; 12) + Subject; Indent = 2; @Repeat(" "; 18) + Subject; @Repeat(" "; 6) + Subject)
[作成者別] ビューで次の式を使用すると、各作成者のカテゴリの中で文書ごとに 1.、2.、3. という番号が付けられます。
@IsCategory("";@DocNumber("") + ". ")
行が 1 つのカテゴリ (作成者名) になっていると、@IsCategory により NULL 文字列 ("") が返されます。行が 1 つのカテゴリになっていない場合は、各行が 1 つの文書を表示し、@DocNumber によって、文書のエントリ番号を表す文字列が返されます。文書の正確なエントリ番号は、1.1、1.2、1.3 などのようになります。ただし、NULL 文字列 ("") と併用されると、@DocNumber により、エントリ番号の右端部分が返されます。その番号の後ろに、ピリオドと空白 (". ") が式によって追加されます。
Notes クライアントのアプリケーションでは、色制御列を列の左側に挿入することにより、プログラムから列の背景色と文字色を設定できます。色制御列では、列のプロパティ [色で値を表示] が有効になり、列の式によってどの色を使用するかが指定されます。この選択は、その色制御列の後のすべての列に適用され、次の色制御列が挿入されるまで有効です。通常は、2 つの色制御列 (色を設定する列の範囲の前に 1 つ、後に 1 つ) を挿入します。列に対して指定できる値には、以下のものがあります。
1 つのカラーフィールド。文字色が設定され、背景色はそのまま変更されません。
2 つのカラーフィールドをコロンで区切ったリスト。最初のフィールドでは文字色が設定され、2 番目のフィールドでは背景色が設定されます。式の例:
textcolor:bgcolor
例えば、次の式では、1 つのセットと 2 つのセットの両方で RGB 座標を使用する方法が示されています。
red := 255:0:0;
blue := 0:0:255;
yellow := 255:255:0;
pink := 255:193:253;
white := 255:255:255;
black := 1:1:1;
apricot := 255:155:133;
plain:= 0:0:0;
@If (category = "cats";blue:red ;subcategory = "collars";pink;subcategory ="leashes";black:plain;0:0:0);
0 から 255 までの範囲の 3 つの数値から成るリスト。文字色の赤、緑、青の構成要素が設定されます。背景色はそのまま変更されません。
0 から 255 までの範囲の 6 つの数値から成るリスト。文字色と背景色のそれぞれの赤、緑、青の構成要素が設定されます。
特殊値 -1:-1:-1 に設定すると、通常のビューの色に戻ります。
You can't mix color fields and number lists. For example, textcolor:255:255:0 does not work if textcolor is a Color field. However, the Color field is just stored as a string of hexadecimal digits, so you can hardcode a color field value into the column formula as quoted text; in this case, colorfield:
00FFFF00.
[列のプロパティ] インフォボックスの [情報] タブにある [色で値を表示] オプションを選択してからプログラムペインで列の値として RGB 座標を指定することにより、プログラムから列の背景色と文字色を設定することもできます。
列の値を、RGB 座標を指定するフィールドの値に等しくすることもできます。カラーフィールドとともにこの機能を使用すると、ユーザーはカラーピッカーで色を設定できます。これにより、例えば列の中のテキストなどの、ビューの要素に色を指定できます。ビューの色をカスタマイズ可能にする機能の使用については、「ユーザーがビューで色を設定できるようにする」を参照してください。