Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: wuschel am 04.06.03 - 14:01:28
-
Hallo,
ich möchte eine Ansicht bereitstellen, in der die Anwender bestimmte Dokumente markieren können und über eine Aktion in den markierten Dokumenten ein Feld damit auf einen bestimmten Wert setzen.
-
schreib in den Actionbutton rein:
@command([toolsrunmacro];"(Agentname)")
Der Agent selbst enthält zB
Field ABC:="123"
und ist so eingestellt, daß er auf ausgewählte Dokumente läuft.
Soll der User allerdings bestimmte Docs trotz Auswahl nicht ändern, nimmste in den Agent noch ne Zeile dazu:
@if(FeldABC="nicht beendet";@return(void);@success);
Field ABC:="123"
So läuft er nur über die zulässigen Docs und läßt unzulässige außen vor in einem Abwasch.
-
Besten Dank,
hab ich verstanden, umgesetzt, - funktioniert...
Wie kriege ich aber den Agenten so hin, dass er nur über die Aktion gestartet werden kann und nicht aus Menü Aktionen
-
...funktioniert doch noch nicht so ganz.
Aus dem Menü Aktionen aufgerufen, macht der Agent, was er soll,
aus der Aktion aufgerufen, wird nur das Dokument geändert, das sich in der Vorschau befindet.
-
in der die Anwender bestimmte Dokumente markieren können ...
hst du doch so geschrieben, oder ::)
-
und wenn der Agent so eingestellt wird, daß er aus einer "Liste" aufgerufen wird, statt aus dem Menue, bekommt er "Klammern" um den Namen. Daher im Beispiel auch "@command([toolsrunmacro];"(Agentname)")". Sorry, hätte ich deutlicher machen sollen. Und klausals Hinweis dazu, dann haste es.
-
vielleicht habe ich mich nicht deutlich ausgedrückt:
die Anwender sollen über den Auswahlrand bestimmte Dokumente markieren können, so dass sie mit dem Häkchen versehen sind.
Und nicht ein Dokument anklicken, so dass ein dicker Rand um diesen Eintrag angezeigt wird.
Der Agent, so wie ihn jetzt eingerichtet habe, arbeitet für die "angehakten" Dokumente richtig, wenn ich ihn aus dem Menü Aktionen aufrufe. Rufe ich ihn über die von mir eingerichtete Aktion auf, werden die "Anhakungen" ignoriert und nur das Dokument verändert, das den dicken Rand hat.
Der Agent reagiert also unterschiedlich. Ich hätte gerne die Lösung mit den "Anhakungen" UND dem Aufruf über die Aktion.
Vielleicht laienhaft ausgedrückt, aber so ist es vielleicht verständlicher.
-
was steht konkret in dem
Aktionsbutton drin?
und imm Agent drin?
Wie heißt der Agent, über welche Docs soll er laufen und wie wird er aufgerufen (aus Menue, aus Liste, bei Einfügen)...
Ich frage deswegen so explizit, weil es wie oben beschrieben auf jeden Fall läuft, es sei, Du hast was vergessen, korrekt einzustellen.
-
... dokumente sidn dann markiert, wenn sie einen haken vorne dran haben.
-
ok, mit den Haken sprechen wir also jetzt dieselbe Sprache...
Hier das Umfeld:
Die Ansichtenaktion hat folgende Befehle:
@Command([ToolsRunMacro];"(Sonderstatus)");
@Command([EditDeselectAll])
Der Agent
- heisst Sonderstatus
- ist gemeinsam genutzt
- wird manuell aus der Liste der Agenten gestartet
- gilt für ausgewählte Dokumente
- beinhaltet die einfache Aktion 'Feld "Status" ändern in "3"'
Wie gesagt, speichere ich ihn mit Startoption "Manuell aus dem Menü Aktionen" läuft er auch wie gewünscht. Nur eben über die Aktion nicht, hier werden die Anhakungen ignoriert.
-
habe gerade selber die Lösung gefunden,
durch den deselect werden wohl vor dem Agentenstart die Markierungen gelöscht.
Jetzt funktionierts also bestens
DANKE für Eure Hilfe
-
Das '@Command([EditDeselectAll])' muss aus dem Actionbutton raus...
-
@commands werden in einer bestimmten Reihenfolge im Client ausgeführt. Und zwar eben nicht so, wie Du sie Zeile für Zeile reingeschrieben hast.
Help dazu:
Dieser Befehl wird erst nach allen @Funktionen ausgeführt....etc etc.. es gibt in der Help ein Doc zur Ausführungsreihenfolge.
Probier daher mal diesen Trick:
@Command([ToolsRunMacro];"(Sonderstatus)");
@POSTEDCommand([EditDeselectAll])
Wenn das nicht geht, dann dasin die ACtion:
@Command([ToolsRunMacro];"(Sonderstatus)");
@Command([ToolsRunMacro];"(Deselect)");
Wobei im letzteren Agent steht:
@Command([EditDeselectAll])
UND
auf "einmalig ausführen" eingestellt ist.
-
Meiner Meinung nach wird das @Command([EditDeselectAll]) gar nicht benötigt, da Agenten, die auf selektierte Dokumente laufen die Markierung nach Ausführung ohnehin aufheben.
Viele Grüße
ghost
-
... und jetzt machen wir noch einen HAKEN bei ERLEDIGT ;D