请问如何判断并取出另外一个数据库文档中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