我在计算显示文字字段时出错。 对于每个文档,我在编辑模式下打开它并重新保存以进行更正。 我在许多数据库和文档上遇到同样的问题。 我尝试使用uiworkspace中的EditDocument函数在整个基础上使用代理进行更正。如下:
Option Public
Option Declare
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim view As NotesView
Dim doccand As NotesDocument
Dim doc As NotesDocument
Dim result As Integer
Dim uiwks As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set db = session.Currentdatabase
Set col = db.Unprocesseddocuments
Set docCand = col.getfirstdocument
On Error Resume next
While Not docCand Is Nothing
Set uidoc = uiwks.Editdocument(True, docCand)
Call uidoc.save
Call uidoc.close(True)
Set docCand = view.getNextdocument(docCand)
Wend
End Sub
此功能仅在我从Notes客户端启动时才能解决问题。它不能作为多米诺骨牌服务器中的计划任务。我尝试使用没有uiworkspace的computewithform,它也不起作用。 任何人都有一种方法可以通过编辑和保存预定代理中的文档进行刷新吗?
答案 0 :(得分:3)
为显示文本字段计算
此类字段不会保存在文档中,它与计算文本类似。
关于您的解决方案:
NotesUIWorkspace和EditDocument无法在后台运行的计划代理中使用(即在服务器上),但仅限于用户界面(这就是运行LN时其工作原理)。
您需要做的是使用NotesDocument中的ComputeWithForm方法。它将在后台刷新文档(无需打开/保存)。
While Not docCand Is Nothing
Call docCand.ComputeWithForm(False, False)
Call docCand.save
Set docCand = col.getNextdocument(docCand)
Wend
请注意,在您的脚本中存在一个问题,您正在尝试从未初始化的视图中获取下一个文档。我想你想用col来代替。
Set docCand = view.getNextdocument(docCand)
答案 1 :(得分:1)
计算显示字段不应保存。你不应该刷新。
我所知道的只有一种情况是保存显示字段的计算值。当窗体上的字段最初设计为常规计算字段时会发生这种情况,但有人会将其更改为计算显示。原始计算字段被保存为存储文档中的项目,即使在将字段更改为计算组合注释后,将继续查看保存的值。如果这是正在发生的事情,那么您真正想要做的是运行代理以删除保存的值。如,
FIELD myFieldThatUsedToBeComputedButIsNowCFD := @DeleteField;