【问题标题】:HCL Notes client: Events not working in dialogBox formHCL Notes 客户端:事件在对话框形式中不起作用
【发布时间】:2021-11-23 18:41:27
【问题描述】:

不知何故,当在对话框调用(onChange、onClose)中使用时,Notes 表单中的标准事件都无法运行。有人可能会说这是一项功能,但对我来说绝对不是。

If workspace.DialogBox( "FilterDB", True, True, False, False,  False, False, title, dlgdoc, 
    True, False, True ) Then

表单有一些字段和一些用于 Notes 客户端的 JavaScript,以便允许在文本字段中预先输入。表单中还有一个富文本字段,它仅用作大于 64Kb 的文本的传输机制。表单上有一些按钮可以对数据进行一些转换。两个按钮被隐藏,它们被 JavaScript 代码点击。

这是一种新的形式,正在进行中,而且是事件过去工作形式的早期版本,我很确定这一点。我会尝试从表单中删除一些元素,也许这些事件会重新焕发生机。

有没有其他人观察到这一点(在 Notes V12 上),或者有没有人知道为什么许多(如果不是全部)表单事件没有被触发?或者我可以做些什么来重新激活它们?

【问题讨论】:

  • 我创建了一个表单并填写了所有表单事件以及两个字段的“onFocus”和“onChange”,一个使用 JavaScript,一个使用 LotusScript……一切正常,无论是在我打开的文档中“通常”以及我用上面的代码作为对话框打开的一个......我用 Notes 11.0.1FP4 进行了测试。你用的是什么版本?
  • N12,Q 更新了,谢谢!
  • 用 Notes 12 交叉检查了我的测试表单:同样有效...您的代码/表单似乎有问题...
  • 不...见下文。

标签: javascript lotus-notes lotusscript


【解决方案1】:

我刚刚发现了事件未执行的原因:我使用了一个代理来测试 DialogBox。显然,当对话框不是从活动表单启动时,不会触发事件。

我创建了一个带有启动对话框的按钮的虚拟表单,并且所有事件都有效。现在,幸运的是,在大多数情况下,对话框将从表单中调用,因此问题解决了。谢谢!

PS 我认为 DialogBox 的行为是不合逻辑的。为什么不应该在单独的对话框中触发事件??

【讨论】:

  • 我做的例子是数据库中的一个表单,然后是一个使用Set dlgdoc = New NotesDocument( db ), Call workspace.DialogBox( "FilterDB", True, True, False, False, False, False, title, dlgdoc, True, False, True ) 的代理,称之为...运行良好...在您的示例中一定有其他问题。
  • 哦,真的吗??我所做的只是在一个新的虚拟表单中放置一个按钮来调用 DialogBox 函数,并且一切正常。没有其他变化。多么奇怪。也许对 NotesUIWorkspace 或当前文档的某些引用无效?你也为 dlgdoc 创建了一个空的 NotesDocument 吗?
  • 这是我所做的:1)在我的“虚拟测试数据库”中创建表单,并在所有事件中放置 Print 或 Msgbox(LotusScript)和警报(JavaScript),2)使用上述创建代理代码(如您所见:我创建了一个“新”dlgdoc),3)从工作区运行代理,仅选择 Tile(数据库未打开)。代理设置为“目标 = 无”。有趣的是:从设计器运行代理时(右键单击 - 运行),我真的可以重现您的问题:没有字段事件,但表单事件触发。此表单中是否有嵌入式视图?我曾经发现,这可以阻止表单的事件被触发...
  • 我确实从 Designer 启动了代理(为什么不,它就在那里;-)),这就解释了为什么某些事件没有被触发。但在我的情况下,甚至 PostOpen 都没有被解雇(我也有 Target=None)。至于嵌入式视图:没有这种东西,最后,表单完全是空的,仍然没有事件。感谢您对此进行测试!!我继续前进,我的客户不耐烦了......
猜你喜欢
  • 2015-12-15
  • 2021-11-11
  • 2021-02-14
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
  • 2017-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多