精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 群件>>开发>>脚本LotusScript>>Re: 如何通过后台文档更新当前文档的RTF

主题:Re: 如何通过后台文档更新当前文档的RTF
发信人: xia_pu()
整理人: kamkam(2002-05-01 23:52:56), 站内信件
【 在 xia_pu (轻松) 的大作中提到: 】
: 【 在 adyou (zhyad) 的大作中提到: 】
: : 【 在 xia_pu (轻松) 的大作中提到: 】
: :    .......
: 谢谢adyou (zhyad)的回答 
:    .......

以上问题已经解决,现附上解决办法及转载文章:

解决方法:

在更新当前文档的RTF域后
Call doc.Save( False, True )
Call uidoc.close
Set uidoc = WS.EditDocument( True ,doc)
一切正常! 

转载文章:
=======================
   RTF域完全掌握 
1、RTF域是Notes中最重要的域,由于它能够保存文本、声音、图片、动画、附件
以及按钮操作、链接等多媒体信息资料,是Notes不同于普通关系型数据库的重要
特征。

2、RTF域的存储容量仅受机器硬盘限制,可以任意大的文件和程序。

3、当存储各种类型的RTF域,改变域类型成为文本类型时,仅其中的文本字符能
够保存,其他的图片、附件等不能保存在文本类型域中。

4、RTF域在编程中,是不能通过公式函数来计算处理的,只能通过LotusScript来
对其进行复制操作。

5、以下是用LotusScript复制、添加RTF域内容,经测试无误。

Sub Click(Source As Button)
%REM RTF域复制操作
作者:tnda 2000.3.5
http://notes.363.net mail:[email protected]

RTF域值在程序中编辑修改后,只能调用doc.save(false,true)
不能调用uidoc.save,也不能在文档中单击保存按钮,
否则后台修改无效。
并且其修改的内容当前不能显示,只有不保存退出文档,再打开才能显示。

因为RTF域只能通过后台LotusScript修改。
%END REM 
Dim uiw As New notesuiworkspace
Dim uidoc As notesuidocument
Dim doc As notesdocument
Set uidoc = uiw.currentdocument
Set doc = uidoc.document '获得当前文档

Dim rtitem1 As NotesRichTextItem
Set rtitem1 = doc.GetFirstItem( "aaaa" )

If rtitem1 Is Nothing Then Exit Sub
If rtitem1.Type <> RICHTEXT Then Exit Sub
'文档没有保存以前,无法发现RTF域

Call rtitem1.AppendText( "这是第一个域值内容" ) 

Dim rtitem2 As NotesRichTextItem
Set rtitem2 = rtitem1.CopyItemToDocument( doc,"bbbb")
Call rtitem2.AppendText( "这是第二个域新内容" ) 

Call doc.Save( False, True )
End Sub 
=======================


--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.100.132.88]

[关闭][返回]