我在工具栏中有一个按钮,可以将选定的文档邮寄到邮箱。问题是我不知道如何为每个选定的文档运行按钮公式代码。无论选择了多少文档,它现在只会运行一次。这并不理想,因为用户通常会有许多文件要邮寄。
创建代理是不可能的,因为我无权访问数据库本身的开发访问权限。人们还告诉我代码将针对每个选定的文档运行,但我已对此进行了测试,而且它不是来自工具栏按钮。
提前致谢:)
答案 0 :(得分:1)
有可能获取所选文档并在不必修改数据库的情况下处理每个文档,但这很棘手,我需要一些时间来弄明白。
工具栏中的代码必须执行 @Command([Compose];“”:“yourActionDb.nsf”;“StartAction”)
数据库“yourActionDb.nsf”(在本例中为local)必须有一个表单(在这里称为StartAction),这里有诀窍: 在Form的“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),但在这里您必须找到最适合您需求的内容。
答案 1 :(得分:0)
我担心您的测试是正确的 - 您无法在选定的文档上运行工具栏宏。你需要一个代理人。
答案 2 :(得分:0)
我相信如果您创建一个公式代理(与工具栏按钮相同的公式内容)并将目标设置为“选定文档”,则在工具栏按钮中添加:
@command([toolsrunmacro];“代理商名称或Alias here”);