このヒントには、Lotus Notesのリッチ・テキスト・フィールドを検証する3つの簡単な方法が記載されています。最初の方法では、任意の文字 (1文字のスペース文字を含む) を受け付けるテキスト・フィールドを検証します。2番目の方法では、少なくとも何らかの非スペース文字を入力しなければならないフィールドを検証します。3番目の方法では、文字が含まれないか、添付ファイル、埋め込みオブジェクト、リンクが含まれる可能性のあるフィールドを検証します。このヒントは、Lotus Domino DesignerおよびLotusScriptを使用したアプリケーション開発の経験がある方を対象として書かれています。
最初の方法では、フィールドに任意の入力があれば (たとえ1文字のスペース文字だけの場合でも)、フィールドは検証を通過します。この検証では、フィールドが存在するフォームのQuerysaveイベントを使用します。この検証を行うLotusScriptのサンプル・コードを以下に示します。
Sub Querysave(Source As Notesuidocument, Continue As Variant)
If ( Source.FieldGetText( "rtfield" ) = "" ) Then
Messagebox( "Please enter some text." )
Call Source.GotoField( "rtfield" )
Continue = False
End If
End Sub
|
このコードは、rtfieldフィールドで任意の文字をチェックします。フィールドに入力がある場合は (たとえ、それが1つまたは複数のスペース文字であっても)、検証は成功します。フィールドが空の場合、コードはエラー・メッセージを返し、文書を保存しません (ContinueをFalseに設定します)。
2番目の方法では、リッチ・テキスト・フィールドには、少なくとも1文字の非スペース文字が含まれる必要があります (つまり、1つまたは複数のスペースだけで構成される入力は、受け付けません)。この方法も、フォームのQuerysaveイベントを使用します。
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim rtitem As NotesRichTextItem
Set doc = Source.Document
Set rtitem = doc.GetFirstItem( "rtfield" )
Dim text As String
text$ = Source.FieldGetText("rtfield")
trimmed$ = Trim(text)
if ( trimmed$ = "") Then
Msgbox "Please enter some text."
Continue = False
source.GotoField("rtfield")
source.Refresh(True)
Else
Continue = True
End If
End Sub
|
3番目の方法では、添付ファイル、埋め込みオブジェクト、またはリンクだけが入力され、文字が含まれないリッチ・テキスト・フィールドを検証します。ここでも、フィールドを含むフォームのQuerysaveイベントを使用します。
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim rtitem As NotesRichTextItem
Set doc = Source.Document
Set rtitem = doc.GetFirstItem( "rtfield" )
Dim text As String
text$ = Source.FieldGetText("rtfield")
trimmed$ = Trim(text)
If(doc.Hasembedded) Then
Continue = True
Elseif ( trimmed$ = "") Then
Msgbox "Please enter some text."
Continue = False
source.GotoField("rtfield")
source.Refresh(True)
Else
Continue = True
End If
End Sub
|
このコードは、検証するフィールドに添付ファイルが存在しない場合でも、文書内のどこかに添付ファイルがあれば機能します。
- developerWorks Japan: Lotus: Lotusの日本の技術情報サイトです
- developerWorks: Lotus(US) : Lotusの英語の技術情報サイトです
- ディスカッション・フォーラム(US)にご参加ください。
- Lotus Notes/Dominoの製品ページは、Lotus Notesについての情報の宝庫です。
- Lotus Domino Designerについての詳細は、Lotus Domino Designerのヘルプ(US)をご参照ください。
- developerWorksブログ(US)を通じてdeveloperWorksコミュニティーにご参加ください。