Lotus notes Workspace.ComposeDocument和查询打开和打开后事件

Lotus notes Workspace.ComposeDocument和查询打开和打开后事件,lotus-notes,lotusscript,Lotus Notes,Lotusscript,我正在使用以下代码在另一个窗体上的操作中创建文档: Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim NewItemDoc As NotesUIDocument Dim ParentUNID As String ParentUNID = ws.CurrentDocument.Document.UNID(0) Set NewItemDoc = ws.ComposeDocument

我正在使用以下代码在另一个窗体上的操作中创建文档:

Sub Click(Source As Button)
    Dim ws As New NotesUIWorkspace
    Dim NewItemDoc As NotesUIDocument
    Dim ParentUNID As String

    ParentUNID = ws.CurrentDocument.Document.UNID(0)

    Set NewItemDoc = ws.ComposeDocument("","","Item")

    Call NewItemDoc.Document.ReplaceItemValue("ParentUNID", ParentUNID)
End Sub
我在
表单的
QueryOpen
PostOpen
事件处理程序中有代码,但是它们根本没有运行。当我使用
@命令([Compose])
时,调用了

调试lotusscript时,它不会单步执行这些事件处理程序

如何在lotusscript中获得等价物?
i、 e.如何触发
QueryOpen
PostOpen
事件?

根据您在这方面的经验,只有两件事

使用“optiondeclare”,并且始终(始终)在sub、函数和UI事件中包含错误捕获。一个实时的节省。使用您的代码示例,我用于UI错误处理的经典代码如下

Sub Click(Source As Button)
    on error goto errHandle
    Dim ws As New NotesUIWorkspace
    Dim NewItemDoc As NotesUIDocument
    Dim ParentUNID As String

    ParentUNID = ws.CurrentDocument.Document.UNID(0)

    Set NewItemDoc = ws.ComposeDocument("","","Item")

    Call NewItemDoc.Document.ReplaceItemValue("ParentUNID", ParentUNID)
    Exit Sub 
  errhandle:
    MessageBox Lsi_info(2) + " : " + Str(Err) + " - " + Error(Err) + ", at line " + Str(Erl)
    Exit Sub 
End Sub
您也可以选择使用打印语句或更复杂的方法来记录错误。不可或缺。(更多信息)已经存在了一段时间,从来都不是我使用的问题

其次,当您从LotusScript启动新表单时,LotusScript调试器不会与新表单一起运行。这是因为LotusScript调试器一次只在一个“UI进程线程”上运行,启动一个新的UI窗体(而不是对话框),运行一个新实例。我在这里使用的术语“进程线程”非常松散,因为我试图区分UI表单彼此独立且不交互,因此调试器不会跟随新表单


与对话框的行为不同,对话框是模态的。调试器也不会进入对话框(请记住,您会收到警告消息),当您关闭表单时,调试器将返回到原始表单,因为它直接链接到原始UI线程。

我刚刚运行了一个快速测试,向每个处理程序添加了一条Msgbox语句,它们确实会被调用。它们应该运行,您在
查询栏中有什么代码?对不起,这是我的错误,代码正在运行,但我犯了一个错误。我没有立即理解的原因是,在调试OccomsScript时,它没有遍历事件的代码。感谢您对幕后发生的事情的清晰解释。我已经使用了
选项explicit
(听起来比
选项declare
!)更令人兴奋。错误日志信息也有帮助。啊。。对您可以使用“显式”来定义。我是一个有点老的学校和断奶的“选择声明”。哈哈