Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: lnfan am 23.12.05 - 22:35:06
-
Hallo,
bin nicht so erfahren... brauche einen Tipp.
Habe eine View mit vielen Dokumenten.
In der View ist ein Action-Button.
Der Action-Button startet einen Agenten.
Der Agent soll den Inhalt eines Feldes für alle selektierten Dokumente ändern.
Die möglichen Keywörter kommen aus einer Keywortliste (@Prompt...OKCANCELLIST...
Problem: der Prompt öffnet das Fenster mit der Keywortliste PRO selektierten Dokument.... das Fenster soll natürlich nur einmal kommen.
Hmm - wie muss der Code aussehen?
Zusatzfrage: In welcher Variable steht wieviele Dokumente ich selektiert habe?
Wäre super, wenn jemand die Antwort hätte.
Danke, Manfred
-
Das musst du mit einem Script-Agenten, der aus augewählte Dokumente zielt, machen.
Mit UnprocessedDocuments aus der Klasse NotesDatabase bekommst du die ausgewählten Documente.
Der Rumpf könnte so aussehen. Auf eine größere Fehlerbehandlung habe ich verzichtet.
...
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
'Wenn keine Docs mnarkiert sind, dann Ende.
If collection.Count = 0 Then Exit Sub
Set doc = collection.GetFirstDocument
While Not (doc Is Nothing)
'Hier werden die Felder geändert
'Speichern des Dokuments
Call doc.Save(True, False)
Set doc = collection.GetNextDocument(doc)
Wend
...
Axel
-
Hallo Axel,
vielen Dank für die weihnachtliche Hilfe. Ich habe befürchtet, dass ich nicht um LotusScript rum komme. Meine Hoffnung war, dass es auch mit Formelsprache geht. Bei Script fehlen mir leider alle Kenntnisse - sogar die Basis (Beweis: was ist DIM?).
Ich werde mich mal ein wenig einlesen (müssen). Vielleicht kriege ich das mit ein paar Stunden Aufwand hin. Ich kann ja nicht erwarten, dass mir hier jemand den fertigen Code schreibt. In meiner grossen dunkelblauen Firma würde ich sicher jemanden finden... nur ist fast keiner da in dieser Zeit und meine DB muss Anfang Januar in Produktion gehen.
Also dann, mal sehen wie es weiter geht. Gruss, Manfred.
-
Ich nochmal.. Hallo.
es sieht so aus, als ob ich zurecht komme. Dank der klasse Hilfe von Axel hatte ich ein "Gerüst" und habe dieses angepasst. Gut gehlfen hat mir wieder mal die ausführliche Hilfe vom Designer-Help.. die ist wirklich klasse.
War mühsam, aber interessant... mein erstes LotusScript... wow.
Gruss, Manfred
-
nur so nebenbei: Solche Konstrukte lassen sich auch rein in Formel- Sprache programmieren, ist halt immer etwas "blöde", weil man nicht einen sondern zwei Agenten braucht:
1. Agent: Ziel: keines.
Enthält: 3 Zeilen Code:
1. @Prompt( ) für den Wert
2. schreiben dieses Wertes in eine @Environment- Variable. (z.B. @Environment( "tmpVal" ; deinPromptErgebnis)
3. aufruf eines 2. Agenten
2. Agent: Ziel: Ausgewählte Dokumente
1 Zeile:
FIELD TestFeld := @Environment( "tmpVal" )
Fertig.
HTH
Tode