Lotus Notes:使用预填充字段创建新文档,在编辑模式下打开而不保存

时间:2016-04-27 15:36:15

标签: lotus-notes lotusscript

我有一个问题,我不太明白,而且我已经用了很长一段时间了。

从现有文档中我想创建一个新文档(相同的DB不同形式)。 我在这个表单中使用了一个按钮。

Sub Click(Source As Button)
    Dim ws As New NotesUIWorkspace
    Dim thisProject As New kitcProject() '// this only wraps the current document
    Set NREDOC = thisProject.newNREdocument() '// this returns a NotesDocument, that has not been saved yet
    Call ws.EditDocument(False, NREDOC, False, "", True, False)
End Sub

这不起作用,除非我在使用EditDocument调用之前先保存文档,否则它不会打开文档

    Call NREDOC.Save(true, false)

我有一个类似的按钮功能,可以正常使用来自另一个数据库的文档,当使用EditDocument调用打开它时,该文档也处于未保存状态。

这是返回NREDOC的函数

%REM
Function newNREdocument
Description: Returns a new NotesDocument prefilled of type NRE
%END REM
Public Function newNREdocument() As NotesDocument
    Set me.nreDoc = db.Createdocument()
    With me.nreDoc
        .Form = "NRE"
        .nreProjectID = me.uidocument.FieldGetText("prProjectID")
        .nreProjectName = me.uidocument.FieldGetText("prProjectName")
    End with
    Set newNREdocument = me.nreDoc
End Function

在调试模式下检查NREDOC告诉我文档没有任何问题,ParentDatabase设置正确,所有预填充值都已设置,但它不会打开。我做错了什么?

是否可以在表单属性中设置一些标志?我没有进一步的想法

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。这里的关键是最后的newInstance标志

Call ws.EditDocument(True, NREDOC, False, "", False, True)

将标记设置为True解决了我的问题。不幸的是,这是我玩的最后一面旗帜。

答案 1 :(得分:0)

您还可以将新文档显示在DialogBox中,以便所有内容都保留在同一屏幕上,并阻止访问第一个文档。唯一不同的是保存新文档的方法。实际上很有意思......