Domino 9 und frühere Versionen > Entwicklung

NotesForm als Collection

(1/2) > >>

TMC:
Hi,

ich schreibe mir des öfteren "mal schnell" simple Agenten, um Feldwerte von "A" auf "B" zu ändern.

Meine Vorgehensweise bisher kommt mir aber umständlich vor, weil ich immer die Docs zu bearbeiten entweder selektiere oder per View auswähle.

Ich würde aber oft gerne alle Docs behandeln, deren Form z.B. "form_abc" ist.

Ein erster Versuch:


--- Zitat ---Sub Initialize
   Dim Session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim collection As NotesDocumentCollection
   Dim form As NotesForm
   Set db = session.CurrentDatabase
   Set form = db.GetForm("form_abc")
   Set collection = doc.dialogform   
   Set doc = collection.GetFirstDocument
   While Not ( doc Is Nothing )
      doc.DateA = "BlaBla"
      Call doc.save(False, False, False)   
      Set doc = collection.GetNextDocument( doc )
   Wend
End Sub
--- Ende Zitat ---

So funktioniert das (natürlich) nicht, weil ich ja ein "set collection" mache, ohne doc vorher definiert zu haben.

Aber: Ist das überhaupt der richtige Ansatz? In der Designerhilfe kam ich jetzt nicht wirklich weiter....

bye,
TMC

koehlerbv:
Vorschlag:
- Agent läuft auf alle Dokumente in der DB
- DB instantiieren
- Collection = NotesDatabase.AllDocument

Da hast Du dann alle Docs im Zugriff und kannst diese ein- oder aussortieren und mit ihnen treiben, was Du willst ;-)

PS: Alternativ - NotesDatabase.Search (QueryString), aber nicht besonders performant.

Bernhard

TMC:
Hi Bernhard,

erstmal danke für die Antwort.

Mal stichpunktartig :-)

--- Zitat ---- Agent läuft auf alle Dokumente in der DB
--- Ende Zitat ---
OK, klar :-)

--- Zitat ---- DB instantiieren
--- Ende Zitat ---
auch noch klar:
Set db = session.CurrentDatabase


--- Zitat ---- Collection = NotesDatabase.AllDocument
--- Ende Zitat ---
so far so good. Aber wie komm ich dann an meine Form?
Oder versteife ich mich zusehr auf die in der Help erwähnte
"NotesForm"?
D.h. würdest Du "klassisch" einfach das Feld "Form" des Docs auslesen?
Wäre natürlich auch 'ne Alternative....

Grüße in die Traunsteiner Region....

TMC



koehlerbv:
Die Region Traunstein bedankt sich ;-)

Jo, wenn Du alle Docs in der Collection hast, dann durchrattern un duaf Form = "x" prüfen. Oder halt eben NotesDatabase.Search - ist eben nicht so erfrischend performant. FTSearch geht natürlich auch, erfordert aber eben mehr Aufwand.
Sag' mal an, wo es noch klemmt - wir kriegen die Sau schon geschlachtet !

Bernhard

TMC:
ne ne, dann bin ich schon bei Dir :-)

--- Zitat ---Jo, wenn Du alle Docs in der Collection hast, dann durchrattern un duaf Form = "x" prüfen
--- Ende Zitat ---
Hab mir schon sowas gedacht :-)

Hatte nur gemeint, weil es da eben auch Notesform gibt, warum ich dann nicht hier was nehmen sollte.
Aber die Designerhilfe hats auch eh schon angedeutet: dient wohl mehr dafür, direkt die Forms zu behandeln (also löschen etc.), und nicht die Docs die darauf basieren.

However, hast mir schon geholfen.

Danke!

Grüße,
TMC

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln