Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: ttorben am 24.01.03 - 18:47:36

Titel: Rich Text Felder löschen und Link einfügen in mehreren Dokumenten über Agenten
Beitrag von: ttorben am 24.01.03 - 18:47:36
Hallo,

diesmal hab ich ein etwas größeres Problem als sonst, leider :-(

Hintergrund:
Datenbank, wo Dokumente einem Hauptdokument zugeordnet werden. Diese Dokumente haben eine gemeinsame ID. In jedem Dokument soll ein Link zu dem Hauptdokument sein.

Was ich brauche:
Einen Agenten, der die ganze Datenbank durchsucht nach Dokumenten mit der gemeinsamen ID. (ID ist in Environmentvariable)
In diesen Dokumenten muß dann das Richt text Feld gelöscht werden, das evtl einen alten Link enthält und dann muß der neue Link aus der Zwischenablage in dieses Feld gepastet werden.

Da ich nur Formelsprache beherrsche, komme ich irgendwie nicht weiter. z.B. wie überrede ich meinen Agenten (run once wg. der @commands) die Datenbank nach Dokumenten mit der gemeinsamen ID zu durchsuchen?

Lotusscript auch ok, irgendwann muß man ja mal damit anfangen ;-)

Danke im voraus!
Titel: Re:Rich Text Felder löschen und Link einfügen in mehreren Dokumenten über Agente
Beitrag von: Pjorn am 24.01.03 - 19:08:34
Hi ttorben,
die gesamten Dokumente mit der gemeinsamen ID bekommst Du, indem Du Dir zB eine sortierte (nach ID) Ansicht bastelst.
Anschliessend hast Du über folgenden Code Zugriff auf alle dieser Dokumente:

Code
Dim session As New NotesSession
Dim db as NotesDatabase
Dim view as NotesView
Dim docCollection as NotesDocumentCollection
Dim doc as NotesDocument
Dim item As NotesItem
Set db = session.CurrentDatabase
Set view = db.GetView(<Deine gebastelte View>)
Set docCollection = view.GetAllDocumentsByKey(Key, 1)
For x = 1 To docCollection.Count
      Set doc = doCollection.GetNthDocument(x)
      Set item = doc.GetFirstItem(Name des RT-Feldes)
      Call item.Remove
      Set item = doc.CreateRichTextItem(Name des RT-Feldes)
      Call item.AppendRTItem(neuer Inhalt)
Next x
Call doc.save(true, true)
Dies nur mal auszugsweise der Code, die Starcoder hier haben sicher wieder eine performantere Lösung *g*
Wie man nun den Link aus der Zwischenablage bekommt, überlass ich, dank Wissenslücken, den eben genannten... ;D oder ich schau's mir am Montag noch mal an, wenn ich wieder planlos vor meinem Designer sitze...

Hoffe ich konnte Dir mit diesem Ansatz helfen!


cu Pjorn
Titel: Re:Rich Text Felder löschen und Link einfügen in mehreren Dokumenten über Agente
Beitrag von: ttorben am 27.01.03 - 17:30:06
Hallo Pjorn,

dein Beitrag hat mir zwar erstmal weitergeholfen, aber nicht endgültig.

!Trotzdem danke!

Ich löse das nun über einen Button, der für mich das gleiche macht und weitere Probleme umgeht. Der Button hat folgenden Code:

@command([fileopendatabase];"";"versteckte Ansicht mit sortierter ID";ID;"1";"1");
@command([opendocument];"0";ID);
@command([fileopendatabase];"";"versteckte Ansicht mit sortierter ID");
@command([fileclosewindow]);

Der Bildschirm flakert dann zwar ein bißchen, aber da gibt es schlimmeres ;-)