扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
该技巧提供了三种用于在 Lotus Notes 中验证富文本输入域的方法。
该技巧描述了三种在 Lotus Notes中验证富文本输入域的快速方法。第一种方法验证的文本域中,任何文本(包括单个空格字符)都是可接受的输入。第二种方法验证的域中,要求至少有一个非空格文本。第三种方法验证的域中,可以不包含文本,但是可能包含附件、嵌入式对象或者链接。本文假设您具有使用 Domino Designer和 LotusScript开发应用程序的经验。
方法 1
在第一种方法中,只要域中包含有输入(哪怕是单个空格字符),就会通过验证。该验证使用包含域的表单的 Querysave 事件。下面的 LotusScript 示例代码执行这一验证:
ub 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 中的任何字符。只要域中包含输入(哪怕它只是包含一个或多个空格字符),验证就会成功。如果域为空,则代码返回错误消息,并且不保存文档(通过将 Continue 设置为 False)。
方法 2
在第二种方法中,富文本域必须至少包含一个非空格字符(换句话说,只包含一个或多个空格的输入是不允许的)。该检查也使用表单的 Querysave 事件:
ub 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 事件:
ub 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
如果文档的任何地方有一个附件,即使它不在所验证的域中,该代码也会工作。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者