ノーツの文書にあるアイテムの型を調べるときは NotesItem クラスの Type プロパティを参照しますが、文書ではなく設計要素の「フォーム」から直接フィールドの型を調べるときは NotesForm クラスの GetFieldType メソッドが使えます。
標準テンプレート等にあるフォーム上の「Subject」フィールドのタイプは通常「テキスト」です。
テキスト型の場合、次のコードにある form.Getfieldtype("Subject") は 1280 を返します。
Sub Initialize
Dim ss As New NotesSession
Dim form As NotesForm
Set form = ss.Currentdatabase.Getform("MainTopic")
msgbox form.Getfieldtype("Subject")
End SubGetFieldType メソッドが返す値について、オンラインヘルプに次のような一文があります。
Integer. The type of the field as specified in Type in NotesItem.
そして文の "Type" のところに設定されていたリンクをクリックしたところ、NotesItem クラスの Type プロパティについて書かれたヘルプ文書が開きました。
開いたヘルプ文書には、テキスト型の値の説明として次のように書かれています。
TEXT (1280) means text or text list.
「text or text list」とあるので複数値を許可したフィールドも 1280 を返すようです。
そこで「複数値も可」にチェックをつけたフィールド「MultiValueSubject」をフォームに追加して、どんな値が返ってくるか確認しました。
Sub Initialize
Dim ss As New NotesSession
Dim form As NotesForm
Set form = ss.Currentdatabase.Getform("MainTopic")
msgbox form.Getfieldtype("MultiValueSubject")
End Subものは試しと、「テキスト」以外にも「数値」と「日付/時刻」のフィールドを2つずつ追加し、一方は「複数値も可」をチェック「無し」、他方を「有り」にしました。
すると、チェック「有り」のフィールドに対する戻り値は、「無し」のフィールドのそれより 1 多い値が返りました。
| フィールドタイプ | 単数値 | 複数値も可 |
|---|---|---|
| テキスト | 1280 | 1281 |
| 数値 | 768 | 769 |
| 日付/時刻 | 1024 | 1025 |



0 件のコメント:
コメントを投稿