例: 列にプログラムを追加する

次の例では、一般的な列のプログラム技法をいくつか紹介します。

フィールド値に基づいて文字を判別する

条件に応じて、任意の文字列を列に表示できます。例えば、売上高が一定額を超えた場合に特定の文字列を表示する式を作成できます。次の式は、[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 つの列に 2 つのフィールドの値を表示する

名前と電話番号を 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);
注: 色の名前を定義する必要はありません。数値の組み合わせを直接式に入力できます。しかし、色を定義すると作業が分かりやすくなり、同じ色を何度も使用する場合に入力ミスの可能性を減らすことができます。色を定義すると、数値の組み合わせではなく語を使用しやすくなりますが、色の列のセットにデータ自体は表示されません。例えば、カテゴリ「cats」を赤で表示するには、このカテゴリを表示するための後続列を設定する必要があります。

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 座標を指定することにより、プログラムから列の背景色と文字色を設定することもできます。

注: この機能は Web 上でサポートされますが、色の RGB 座標を番号リスト (例: 255:0:255) で指定する必要があります。文字色の値 (例: "FF00FF") はサポートされません。

列の値を、RGB 座標を指定するフィールドの値に等しくすることもできます。カラーフィールドとともにこの機能を使用すると、ユーザーはカラーピッカーで色を設定できます。これにより、例えば列の中のテキストなどの、ビューの要素に色を指定できます。ビューの色をカスタマイズ可能にする機能の使用については、「ユーザーがビューで色を設定できるようにする」を参照してください。