我在工具栏中有一个按钮,可以将选定的文档邮寄到邮箱。问题是我不知道如何为每个选定的文档运行按钮公式代码。就目前而言,无论选择了多少文档,它都只会运行一次。这并不理想,因为用户经常有很多文件要邮寄。
无法创建代理来执行此操作,因为我无权访问数据库本身的开发访问权限。人们还告诉我,代码将为每个选定的文档运行,但我已经对此进行了测试,但它不是来自工具栏按钮。
提前致谢 :)
我在工具栏中有一个按钮,可以将选定的文档邮寄到邮箱。问题是我不知道如何为每个选定的文档运行按钮公式代码。就目前而言,无论选择了多少文档,它都只会运行一次。这并不理想,因为用户经常有很多文件要邮寄。
无法创建代理来执行此操作,因为我无权访问数据库本身的开发访问权限。人们还告诉我,代码将为每个选定的文档运行,但我已经对此进行了测试,但它不是来自工具栏按钮。
提前致谢 :)
有可能获得选定的文档并处理每个文档,而无需修改数据库,但这很棘手,我需要一些时间来弄清楚。
您在工具栏中的代码必须执行 @Command([Compose]; "" : "yourActionDb.nsf" ; "StartAction" )
数据库“yourActionDb.nsf”(在本例中为本地)必须有一个表单(此处称为 StartAction),这是诀窍:在表单的“QueryOpen”中,上下文仍然是视图......所以你可以使用如下代码:
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),但在这里您必须找出最适合您需要的表单。
我相信,如果您创建一个公式代理(与工具栏按钮的公式内容相同)并将目标设置为“选定文档”,那么在您的工具栏按钮中,添加:
@command([toolsrunmacro];"此处的代理名称或别名");
恐怕您的测试是正确的——您不能在选定的文档上运行工具栏宏。你需要一个代理。