在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域拷贝的一种方法。其中,第二种是我测试确认过的,第一种和第三种是从网上拷贝的。
但是要使用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域拷贝的一种方法。其中,第二种是我测试确认过的,第一种和第三种是从网上拷贝的。