将Document(form) - EditMode设置为false

时间:2012-08-22 07:30:41

标签: lotus-notes

我想将一个表单(文档)放到EditMode = false;因此,当表单打开时,我想要修改任何字段等,直到我按下放置文档的按钮。在EditMode = true。

我的代码是这样的:

Sub Initialize Dim ws作为新的NotesUIWorkspace Dim uidoc作为NotesUIDocument Dim doc作为NotesDocument 设置uidoc = ws.CurrentDocument '设置doc = uidoc.Document

uidoc.EditMode = False

End Sub

我选择在Form的Initialize方法中编码...

但它不起作用,它给我一条消息:“文档命令不可用”。请帮助,我将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:3)

作为一般经验法则,不应在表单中使用Initialize事件。其中一个原因是,在Initialize运行时,表单未必完成加载所有内容。

此代码应放在QueryOpen事件中。

另一个最佳实践是不使用NotesWorkspace.CurrentDocument来获取当前表单的句柄,而是使用传递给QueryOpen事件的Source参数。 NotesWorkspace.CurrentDocument只应在代理程序和表单尚未在上下文中的其他位置使用。当前文档已经在上下文中时调用NotesWorkspace.CurrentDocument会导致Notes中的奇怪行为。

以下是一些应该有效的代码:

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
    If (Not Source Is Nothing) Then Source.EditMode = False
End Sub