Autor Thema: Rich Text Felder löschen und Link einfügen in mehreren Dokumenten über Agenten  (Gelesen 1166 mal)

Offline ttorben

  • Frischling
  • *
  • Beiträge: 17
  • Geschlecht: Männlich
  • Ich lerne noch ;-)
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!
DB-Entwicklung mach ich nur nebenbei (Gott sei Dank bin ich nicht Administrator ;-)
2 R5-Server auf Linux
ca. 30 R5-Clients auf Win98/2000

Pjorn

  • Gast
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
« Letzte Änderung: 25.01.03 - 01:23:08 von Pjorn »

Offline ttorben

  • Frischling
  • *
  • Beiträge: 17
  • Geschlecht: Männlich
  • Ich lerne noch ;-)
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 ;-)
DB-Entwicklung mach ich nur nebenbei (Gott sei Dank bin ich nicht Administrator ;-)
2 R5-Server auf Linux
ca. 30 R5-Clients auf Win98/2000

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz