Notesで設定できるフィールドの種類は大きく分けて、
1.文字列
2.数値
3.日付/時刻
4.リッチテキスト
です(他にも種類はありますが、上記のいずれかに分類されます)。
このうち、「2.数値」は基本的に10進数しか扱えません。
したがって、16進数だけを入力できるようなフィールドを作ることはできません。
では、どうするか?
「1.文字列」のフィールドを作成して、入力後にチェックする方法が考えられます。
言語の指定がなかったので、@関数とLotusScriptでの例を書いてみます。
@関数の場合の例
@If(@Matches(Num16;"{0-9A-F}{0-9A-F}{0-9A-F}{0-9A-F}")|@Matches(Num16;"{0-9a-f}{0-9a-f}{0-9a-f}{0-9a-f}");@Prompt([Ok];"";"OK");@Prompt([Ok];"";"NG"))
※「Num16」というのは文字列フィールドの名称です。
@Matchesという関数が入力内容をチェックするためのものです。
上記は、「Num16」というフィールドの値が4ケタの16進数(0-9、A-F、a-fのいずれか)であれば、「OK」というプロンプトを表示します。違ったら「NG」というプロンプトを表示します。
LotusScriptの場合
Sub Click(Source As Button)
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim num16 As String
Set uidoc = uiws.CurrentDocument
num16 = uidoc.FieldGetText( "Num16" )
If num16 Like "[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]" Then
Msgbox "OK"
Else
Msgbox "NG"
End If
End Sub
やっていることは@関数のものと同じです。Likeという演算子が入力された文字列を判定するものです。
それぞれの関数及び演算子については、デザイナーヘルプを参照していただければ分かるかと思います。