我使用下面的代码来验证Richtext字段中的附件。
如果我不使用Call source.Refresh(True) 然后验证不起作用,但每次在按钮中调用querysave时,此代码也会刷新文档。
所以有任何选项或任何其他想法,以便我不应该使用此刷新部分或整个代码进行验证。
如果有人拥有更高效的代码,那么请分享一下。
If Source.Document.YesNo20(0)="Yes" Then
Call source.Refresh(True)
Dim rtitem As NotesRichTextItem
Set rtitem = source.Document.GetFirstItem( "Atchmnt20" )
NotesEmbeddedObjectArray = rtitem.EmbeddedObjects
If Isempty ( NotesEmbeddedObjectArray ) Then
Messagebox "Please enter an attachment in 20a. As you selected option Yes"
continue=False
Exit Sub
End If
End If
答案 0 :(得分:0)
验证Lotus Notes中的富文本字段是一种黑暗的艺术,但你能不能这样做吗? (其中doc
是后端):
If(doc.HasEmbedded) Then Continue = True
您还可以做其他事情。查看此Lotus Developer Domain帖子,其中包含附件,文本,嵌入对象,各种类型:
http://www-10.lotus.com/ldd/nd6forum.nsf/0/8b3df10667d355768525719a00549058
答案 1 :(得分:0)
您可以使用公式验证RT字段吗?
我使用此输入验证公式在富文本字段下创建了一个隐藏字段:
REM {Validate just when saving};
@If(!@IsDocBeingSaved; @Return(@Success); "");
REM {Should contain some file};
_filenames := @AttachmentNames;
@If(
@Elements(_filenames)=0;
@Return(@Failure("You should attach at least one file"));
@Success);
答案 2 :(得分:0)
假设您想要避免刷新,因为它需要太长时间,您可能需要查看以下内容,如果可行,请尝试更改:
答案 3 :(得分:0)
即使对于新的(未保存的)文档,LotusScript中也有一种检查附件存在的方法。
使用公式:
创建隐藏的计算字段,例如 AttachmentNames@If(@AttachmentNames!=“”;“1”;“”);
在LotusScript中执行以下操作:
'in new documents Form field may be empty
If doc.Form(0) = "" then
doc.Form = "YourFormAlias"
End If
'computing doc contents with the form
call doc.ComputeWithForm(false, false)
If doc.AttachmentNames(0) = "" then
MsgBox "Please attach a file",,"Attention"
Continue = False 'if you are running this code in QuerySave
Exit Sub
End If