いいね!数

0

閲覧数
331

Notesで16進数しか入力できないようなフィールドを作ることはできますか?

どのような設定になるでしょうか? ご教示下さい。よろしくお願い申し上げます。

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - Notes アプリ | タグ:
  | 質問日時:2017/11/21 12:08:43

回答・コメント

いいね!数

2

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という演算子が入力された文字列を判定するものです。

 

それぞれの関数及び演算子については、デザイナーヘルプを参照していただければ分かるかと思います。

回答日時:2017/11/21 21:04:09