lotus notes表单中实现RTF域的值的拷贝

在lotus notes的表单中,想使用一些一般域(文本域,日期域等,下拉列表域等)的值都是比较容易的,直接在公式中使用域的名字或者使用@Text()函数就可以了。
但是要使用RTF域的值,就不能通过直接使用域的名字或者一行代码来搞定了。
一个简单的应用就是拷贝一个RTF域的内容到另外一个RTF域中,下面分别提供了使用公式,LotusScript来实现这一功能的Sample。

1. 公式:( 前台)
@Command([EditGotoField];"A");
@Command([EditSelectAll]);
@Command([EditCopy]);
@Command([EditGotoField];"B");
@Command([EditPaste])

2. LotusScript:( 前台)
Sub Click(Source As Button)
   
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
   
    Set uidoc = workspace.CurrentDocument
    Call uidoc.GotoField("A")
    Call uidoc.SelectAll()
    Call uidoc.Copy()
    Call uidoc.GotoField("B")
    Call uidoc.FieldClear()
    Call uidoc.Paste()   
   
End Sub

3. LotusScript:( 后台)
Dim doc As NotesDocument
Dim item1 As NotesRichTextItem
Dim item2 As NotesRichTextItem

Set item1 = doc.GetFirstItem("A")
Set item2 = New NotesRichTextItem(doc,"B")
Call item2.AppendRTItem(item1)
Call doc.Save(True,False)

前台就是指,你在文档中操作时可以直接看到的效果。比如说,你点击一个按钮,就看到了域A的内容拷贝到了域B中。
后台是指,不需要在用户操作文档的时候展现给用户看。大多用于代理等,全部的操作全部在后台完成。完成后,需要先保存,然后重新打开文档,才能看到操作后的效果。

这三种方式,都实现RTF域拷贝的一种方法。其中,第二种是我测试确认过的,第一种和第三种是从网上拷贝的。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值