Lotus notes 使用Lotus Notes公式计算视图中的文档数

Lotus notes 使用Lotus Notes公式计算视图中的文档数,lotus-notes,lotus-formula,Lotus Notes,Lotus Formula,我在工具栏上有一个按钮,可以将选定的文档发送到邮箱。问题是,我不知道如何使按钮公式代码为每个选定文档运行。现在,无论选择了多少个文档,它都只会运行一次。这并不理想,因为用户通常有许多文档要发送 不可能创建代理来执行此操作,因为我没有访问数据库本身的开发访问权限。人们还告诉我,代码将为每个选定的文档运行,但我已经测试过了,它不是从工具栏按钮运行的 提前感谢:)恐怕您的测试是正确的——您无法在所选文档上运行工具栏宏。你需要一个代理人 可以在不修改数据库的情况下获取所选文档并处理每一个文档,但这很棘手

我在工具栏上有一个按钮,可以将选定的文档发送到邮箱。问题是,我不知道如何使按钮公式代码为每个选定文档运行。现在,无论选择了多少个文档,它都只会运行一次。这并不理想,因为用户通常有许多文档要发送

不可能创建代理来执行此操作,因为我没有访问数据库本身的开发访问权限。人们还告诉我,代码将为每个选定的文档运行,但我已经测试过了,它不是从工具栏按钮运行的


提前感谢:)

恐怕您的测试是正确的——您无法在所选文档上运行工具栏宏。你需要一个代理人

可以在不修改数据库的情况下获取所选文档并处理每一个文档,但这很棘手,我需要一些时间来解决

工具栏中的代码必须执行以下操作: @命令([Compose];“”:“yourActionDb.nsf”;“StartAction”)

数据库“yourActionDb.nsf”(在本例中为本地数据库)必须有一个表单(此处称为StartAction),诀窍如下: 在表单的“查询栏”中,上下文仍然是视图。。。因此,您可以使用如下代码:

Dim ws as New NotesUIWorkspace
Dim uiviw as NotesUIView
Dim dc as NotesDocumentCollection
Set uiviw = ws.CurrentView
If not uiviw is Nothing then
  set dc = uiviw.Documents
  ...your code comes here
End if
不幸的是,这种技巧在公式语言中是不可能的,因为只有一个代理可以对选定的文档进行操作,而每个被调用的代理都将具有错误的上下文


您必须在之后关闭此表单(尝试在queryopen中设置continue=False或稍后执行uidoc.close),但您必须找到最适合您需要的内容。

我相信如果您创建一个公式代理(与工具栏按钮相同的公式内容),并将目标设置为“选定的文档”然后在工具栏按钮中,添加:

@命令([toolsrunmacro];“此处的代理名称或别名”)

  • 它将针对每个选定文档运行公式代理。将代理目标设置为选定的数据元素