当前位置:软件学习 > 其它软件 >>

请问如何判断并取出另外一个数据库文档中RTF域的内容????

数据库A为文档,数据库B为文档附件
在数据库A中编写代码,需要取出在数据库B中对应文档的附件内容(RTF域),请教该如何实现??
目前遇到的问题是:
如何判断数据库B中对应文档的RTF附件域的内容是否为空,为空时就不用取出其内容,否则取出其内容

看到网上有一段判断RTF域是否为空的代码
Function   IsRTFNull(rtfield   As   String)   As   Integer   
      On   Error   Goto   Errhandle   
      Dim   workspace   As   New   NotesUIWorkspace   
      Dim   uidoc   As   NotesUIDocument   
      Set   uidoc   =   workspace.CurrentDocument   
      currentfield   =   uidoc.CurrentField   
      Call   uidoc.GotoField(rtfield)   
      Call   uidoc.SelectAll   
      Call   uidoc.DeselectAll   
      If   currentfield   <>   ""   Then   
      Call   uidoc.GotoField(currentfield)   
      End   If   
      IsRTFNull   =   False   
      Exit   Function   
      Errhandle:   
          Select   Case   Err   
          Case   4407   
          'the   DeselectAll   line   generated   an   error   message,   indicating   that   the   ri   
  ch   text   field   does           not   contain   anything   
          If   currentfield   <>   ""   Then   
          Call   uidoc.GotoField(currentfield)   
          End   If   
          IsRTFNull   =   True   
          Exit   Function   
          Case   Else   
          'For   any   other   error,   force   the   same   error   to   cause   LotusScript   to   do   th   
  e   error   handling   
          Error   Err   
          End   Select   
          End   Function
这段代码只对判断当前打开的文档中的RTF域是否为空,而目前当前打开的文档为数据库A的文档,不是数据库B的文档,所以就无法判断数据库B中文档的RTF域是否为空,
请教一下,该如何编写代码实现呢? --------------------编程问答-------------------- 如何判断数据库B中对应文档的RTF附件域的内容是否为空

你的库是怎么设计的嘛?你看看保存文档附件时候是怎么和主文档相关联的。起码这个要搞清楚,不然大家都不知道是怎么回事。。。。 --------------------编程问答-------------------- 通过主文档的ID和附件文档相关联。
目前我可以取出附件文档的非RTF域的内容,但就是判断不了RTF域是否为空,部分代码如下:
在视图中编写以下代码
1、视图选择:select form="frmMain" (主文档对应的表单)
2、视图上的操作条的click代码如下:
dim ss as new notessession
dim db as notesdatabase
dim doc as notesdocument
db = ss.currentdatabase

dbserver = db.server
dbpath= db.filepath
dbpath = left(dbpath,instr(1,dbpath,db.filename)-1)
fj_dbname = dbpath + "fj.nsf"
set fj_db = new notesdatabase(dbserver,fj_dbname)
set fj_view = fj_db.getview("indexfj")
set doc = view.getfirstdocument (主文档)
key = doc.fkdCurrentDocNumber(0)
set fj_doc=fj_view.getdocumentbykey(key)(附件文档)
set bt=fj_doc.getitemvalue("bt")
msgbox("附件标题="+bt(0))   '可以显示附件文档的bt域的内容



--------------------编程问答-------------------- 你已经取到附件里,判断返回值fj_doc是否存在就可以了呀。

if not fj_doc is nothing then    '不为空
.....
else
...... 显示文档呀
end if --------------------编程问答-------------------- 现在是如何判断fj_doc文档中的RTF域是否为空,不是判断fj_doc是否为空。 --------------------编程问答-------------------- 通过主文档的ID和附件文档相关联。 
目前我可以取出附件文档的非RTF域的内容,但就是判断不了RTF域是否为空,部分代码如下: 
在视图中编写以下代码 
1、视图选择:select form="frmMain" (主文档对应的表单) 
2、视图上的操作条的click代码如下: 
dim ss as new notessession 
dim db as notesdatabase 
dim doc as notesdocument
dim rtitem as variant 
dim fj_filename as string
db = ss.currentdatabase 

dbserver = db.server 
dbpath= db.filepath 
dbpath = left(dbpath,instr(1,dbpath,db.filename)-1) 
fj_dbname = dbpath + "fj.nsf" 
set fj_db = new notesdatabase(dbserver,fj_dbname) 
set fj_view = fj_db.getview("indexfj") 
set doc = view.getfirstdocument (主文档) 
key = doc.fkdCurrentDocNumber(0) 
set fj_doc=fj_view.getdocumentbykey(key)(附件文档) 
set bt=fj_doc.getitemvalue("bt") 
msgbox("附件标题="+bt(0))  '可以显示附件文档的bt域的内容 
set rtitem=fj_doc.getfirstitem("fj")
if rtitem.Type=RICHTEXT then
  forall o in rtitem.embeddedobjects
    if o.type = EMBED_ATTACHMENT then
       fj_filename = fj_filename+"|"+o.Name
    end if
  end forall
  msgbox("附件内容="+fj_filename)
end if
目前当fj域有内容时,可以显示附件内容,当fj域为空时,报type missmatch,如何解决???急急急!!!! --------------------编程问答-------------------- 当执行到forall o in rtitem.embeddedobjects 时就提示type missmatch错误! --------------------编程问答-------------------- 你可以在之前作个判断 ubound(rtitem.embeddedobjects)是否为0 --------------------编程问答-------------------- set object=fj_doc.GetAttachment() 
if object is nothing then 
end if --------------------编程问答-------------------- 能否提供一段生成域的rtf代码 --------------------编程问答-------------------- 你需要在那个循环执行前加一个判断:
If Not IsEmpty( rtitem.embeddedobjects) Then

if rtitem.Type=RICHTEXT then
  forall o in rtitem.embeddedobjects
  if o.type = EMBED_ATTACHMENT then
  fj_filename = fj_filename+"|"+o.Name
  end if
  end forall
  msgbox("附件内容="+fj_filename)
end if

Else
     msgbox("附件内容是空的!!!")
End If --------------------编程问答-------------------- 更正,需要把"if rtitem.Type=RICHTEXT then"放到外层。
补充:企业软件 ,  Lotus
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,