Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: KiTaMann am 21.03.06 - 18:59:41
-
Guten Abend zusammen,
ich versuche gerade aus 7 Datenbanken eine zu machen, indem ich die Dokumente der "glorreichen 7" über einen Agenten kopiere und in die neue Datenbank hineinschmeiße - funktioniert soweit für meine Begriffe ganz ordentlich.
Nun befinden sich in den Ursprungsdokumenten jedoch neben Text auch diverse "Buidln", die ich nicht in die neuen Dokumente herüberkopiert bekomme.
Hat jemand eine Idee?
Gruß
Klaus
-
Das ist jetzt schwierig.
Kopierst Du die ganzen Dokumente oder nur den Inhalt der Dokumente in ein neues Dokument?
Gruss
André
-
Hallo Klaus,
welche Methode bzw. Formelsprachenbefehel verwendest Du denn zum Kopieren?
Ich würde empfehlen, ein
call doc.CopyToDatabase( targetdb )
zu verwenden. Damit werden Dokumente 1 zu 1 kopiert, auch die "Buidln".
Mit CopyAllItems könnte es Schwierigkeiten geben.
Du kannst ja mal den Code posten...
Andreas
-
Guten Morgen,
ich skizziere nochmals kurz mein Problem:
@André:
ich möchte die INHALTE der Felder kopieren und in neue Dokumente einfügen. Hierbei habe ich auch ein RT-Feld, in dem neben Text auch Bilder vorhanden sind.
@Andreas:
ich möchte die Infos aus den Dokumenten der 7 DBs in eine neue Maske der Zieldatenbank abbilden; wenn es nur darum ginge, die Dokumente in ein DB zu packen, hätte ich dies ja auch einfach per Copy & Paste tun können.
Da ich nur 5 Felder habe, deren Inhalte ich kopieren und einfügen möchte, habe ich item für item angesprochen (und dabei auch (erfolglos) mit RTItem "experimentiert"). Code sieht nunmehr so aus:
Sub FeldwerteEinfügen
Dim session As New NotesSession
Dim AuswahlDoc As NotesDocument
Dim ZielDoc As NotesDocument
Dim db As NotesDatabase
Dim Infothek As NotesDatabase
Dim col As NotesDocumentCollection
Dim Item As NotesItem
Dim Thema As String
Dim import As Variant
Dim quelle As String
Dim doctype As String
Set db = session.CurrentDatabase
Set Infothek = New Notesdatabase("","Infothek50")
Set col = db.unprocessedDocuments
If col.count > 0 Then
For i = 1 To col.count
Set AuswahlDoc = col.GetNthDocument(i)
Set item = AuswahlDoc.GetFirstItem("doctype")
doctype = Trim(item.Text)
Set item = AuswahlDoc.GetFirstItem("Thema")
Thema = Trim(item.Text)
Set item= AuswahlDoc.GetFirstItem("Import")
import = (item.values)
Set item = AuswahlDoc.GetFirstItem("Quelle")
Quelle = Trim(item.Text)
Set ZielDoc = Infothek.CreateDocument
ZielDoc.Form = "Gesundheit"
ZielDoc.doctype = doctype
ZielDoc.Thema = Thema
ZielDoc.import = import
ZielDoc.quelle = quelle
Call ZielDoc.save(True,True)
Next
End If
End Sub
Text ist da, Buidln fehlen.
Grüße
Klaus
-
Das RTI musst Du kopieren mit NotesItem.CopyItemToDocument. Du kopierst bisher ja ausdrücklich nur Plain Text.
Bernhard
-
Bernhard, Du bist echt immer schneller.... :)
Set notesItem = notesItem.CopyItemToDocument( notesDocument, newName$ )
Gruss
André
-
Hallo Bernhard, hallo André,
hatte ja schon eerwähnt, dass ich vorher schon mit z.B. mit RTItem experimentiert hatte; als autodidaktischer Script-Anfänger stehe ich vor dem Problem, wie ich das Dokument ansprechen soll, welche Variable "fülle" ich mit den kopierten Werten?
Oder soll das so aussehen?
Set item = AuswahlDoc.CopyItemToDocument("Import",ZielDoc.import)
Gibt aber leider folgende Fehlermeldung:
"WRONG NUMBER OF ARRAY SUBSCRIPTS"
???
Gruß
Klaus
-
Die Syntax für diese Methode ist falsch verwendet - die Parameter sind exakt verdreht.
Bernhard
-
Ich würde es so machen
Dim rtitem_Source as NotesRichTextItem
Dim rtitem as NotesRichTextItem
...
set rtitem_Source = AuswahlDoc.GetFirstItem( "Import" )
Set rtitem = rtitem_Source.CopyItemToDocument( ZielDoc, "Import")
Andreas
-
Stimmt!
So geht's ;D:
Set item = AuswahlDoc.GetFirstItem("Import")
Call item.CopyItemToDocument(ZielDoc,"Import")
Danke Bernhard!
Gruß
Klaus
-
Hallo Andreas,
bist mir gerade beim Antworten "rein- " und damit "durchgerutscht".
Auch Dir besten Dank!
Klaus