Преброяване на броя документи в изглед с формула на Lotus Notes

Имам бутон в лентата с инструменти, който изпраща избрани документи в пощенска кутия. Проблемът е, че нямам идея как да накарам кода на формулата на бутона да се изпълнява за всеки избран документ. Както е сега, той ще се изпълнява само веднъж, независимо колко документа са избрани. Това не е идеално, тъй като потребителите често имат много документи за изпращане по пощата.

Невъзможно е да се създаде агент, който да направи това, тъй като нямам достъп до достъпа за разработка на самата база данни. Хората също ми казаха, че кодът ще се изпълнява за всеки избран документ, но тествах това и то не от бутон на лентата с инструменти.

Благодаря предварително :)


person user1579279    schedule 06.08.2012    source източник


Отговори (3)


Има възможност да получа избраните документи и да работя върху всеки от тях, без да се налага да променям базата данни, но това е трудно и ми трябваше известно време, за да го разбера.

Вашият код в лентата с инструменти трябва да изпълни @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

За съжаление този трик не е възможен в Formula Language, тъй като само агент има възможност да действа върху избрани документи и всеки извикан агент ще има грешен контекст...

Трябва да затворите този формуляр след това (или опитайте да зададете continue = False в queryopen или направете uidoc.Close по-късно), но тук трябва сами да разберете кое е най-подходящо за вашите нужди.

person Torsten Link    schedule 11.04.2013

Страхувам се, че вашето тестване е правилно - не можете да стартирате макрос на лентата с инструменти върху избрани документи. Ще ви трябва агент за това.

person Ken Pespisa    schedule 06.08.2012

Вярвам, че ако създадете формулен агент (същото съдържание на формула като бутона на лентата с инструменти) и зададете целта като „Избран документ“, тогава в бутона на лентата с инструменти добавете:

@command([toolsrunmacro];"Име или псевдоним на агент тук");

  • той ще стартира агента на формулата срещу всеки избран документ. Задайте целта на агента да бъде Selected Dcouments.
person user2808054    schedule 24.09.2013