问题描述
数据库A为文档,数据库B为文档附件在数据库A中编写代码,需要取出在数据库B中对应文档的附件内容(RTF域),请教该如何实现??目前遇到的问题是:如何判断数据库B中对应文档的RTF附件域的内容是否为空,为空时就不用取出其内容,否则取出其内容看到网上有一段判断RTF域是否为空的代码FunctionIsRTFNull(rtfieldAsString)AsIntegerOnErrorGotoErrhandleDimworkspaceAsNewNotesUIWorkspaceDimuidocAsNotesUIDocumentSetuidoc=workspace.CurrentDocumentcurrentfield=uidoc.CurrentFieldCalluidoc.GotoField(rtfield)Calluidoc.SelectAllCalluidoc.DeselectAllIfcurrentfield<>""ThenCalluidoc.GotoField(currentfield)EndIfIsRTFNull=FalseExitFunctionErrhandle:SelectCaseErrCase4407'theDeselectAlllinegeneratedanerrormessage,indicatingthattherichtextfielddoesnotcontainanythingIfcurrentfield<>""ThenCalluidoc.GotoField(currentfield)EndIfIsRTFNull=TrueExitFunctionCaseElse'Foranyothererror,forcethesameerrortocauseLotusScripttodotheerrorhandlingErrorErrEndSelectEndFunction这段代码只对判断当前打开的文档中的RTF域是否为空,而目前当前打开的文档为数据库A的文档,不是数据库B的文档,所以就无法判断数据库B中文档的RTF域是否为空,请教一下,该如何编写代码实现呢?
解决方案
解决方案二:
如何判断数据库B中对应文档的RTF附件域的内容是否为空你的库是怎么设计的嘛?你看看保存文档附件时候是怎么和主文档相关联的。起码这个要搞清楚,不然大家都不知道是怎么回事。。。。
解决方案三:
通过主文档的ID和附件文档相关联。目前我可以取出附件文档的非RTF域的内容,但就是判断不了RTF域是否为空,部分代码如下:在视图中编写以下代码1、视图选择:selectform="frmMain"(主文档对应的表单)2、视图上的操作条的click代码如下:dimssasnewnotessessiondimdbasnotesdatabasedimdocasnotesdocumentdb=ss.currentdatabasedbserver=db.serverdbpath=db.filepathdbpath=left(dbpath,instr(1,dbpath,db.filename)-1)fj_dbname=dbpath+"fj.nsf"setfj_db=newnotesdatabase(dbserver,fj_dbname)setfj_view=fj_db.getview("indexfj")setdoc=view.getfirstdocument(主文档)key=doc.fkdCurrentDocNumber(0)setfj_doc=fj_view.getdocumentbykey(key)(附件文档)setbt=fj_doc.getitemvalue("bt")msgbox("附件标题="+bt(0))'可以显示附件文档的bt域的内容
解决方案四:
你已经取到附件里,判断返回值fj_doc是否存在就可以了呀。ifnotfj_docisnothingthen'不为空.....else......显示文档呀endif
解决方案五:
现在是如何判断fj_doc文档中的RTF域是否为空,不是判断fj_doc是否为空。
解决方案六:
通过主文档的ID和附件文档相关联。目前我可以取出附件文档的非RTF域的内容,但就是判断不了RTF域是否为空,部分代码如下:在视图中编写以下代码1、视图选择:selectform="frmMain"(主文档对应的表单)2、视图上的操作条的click代码如下:dimssasnewnotessessiondimdbasnotesdatabasedimdocasnotesdocumentdimrtitemasvariantdimfj_filenameasstringdb=ss.currentdatabasedbserver=db.serverdbpath=db.filepathdbpath=left(dbpath,instr(1,dbpath,db.filename)-1)fj_dbname=dbpath+"fj.nsf"setfj_db=newnotesdatabase(dbserver,fj_dbname)setfj_view=fj_db.getview("indexfj")setdoc=view.getfirstdocument(主文档)key=doc.fkdCurrentDocNumber(0)setfj_doc=fj_view.getdocumentbykey(key)(附件文档)setbt=fj_doc.getitemvalue("bt")msgbox("附件标题="+bt(0))'可以显示附件文档的bt域的内容setrtitem=fj_doc.getfirstitem("fj")ifrtitem.Type=RICHTEXTthenforalloinrtitem.embeddedobjectsifo.type=EMBED_ATTACHMENTthenfj_filename=fj_filename+"|"+o.Nameendifendforallmsgbox("附件内容="+fj_filename)endif目前当fj域有内容时,可以显示附件内容,当fj域为空时,报typemissmatch,如何解决???急急急!!!!
解决方案七:
当执行到foralloinrtitem.embeddedobjects时就提示typemissmatch错误!
解决方案八:
你可以在之前作个判断ubound(rtitem.embeddedobjects)是否为0
解决方案九:
setobject=fj_doc.GetAttachment()ifobjectisnothingthenendif
解决方案十:
能否提供一段生成域的rtf代码
解决方案十一:
你需要在那个循环执行前加一个判断:IfNotIsEmpty(rtitem.embeddedobjects)Thenifrtitem.Type=RICHTEXTthenforalloinrtitem.embeddedobjectsifo.type=EMBED_ATTACHMENTthenfj_filename=fj_filename+"|"+o.Nameendifendforallmsgbox("附件内容="+fj_filename)endifElsemsgbox("附件内容是空的!!!")EndIf
解决方案十二:
更正,需要把"ifrtitem.Type=RICHTEXTthen"放到外层。