Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: KiTaMann am 21.03.06 - 18:59:41

Titel: Richtextfeld-Inhalte in neue Maske importieren
Beitrag 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
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: DerAndre am 22.03.06 - 07:48:51
Das ist jetzt schwierig.

Kopierst Du die ganzen Dokumente oder nur den Inhalt der Dokumente in ein neues Dokument?

Gruss

André
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: Glombi am 22.03.06 - 07:57:57
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
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: KiTaMann am 22.03.06 - 08:35:49
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
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: koehlerbv am 22.03.06 - 08:42:39
Das RTI musst Du kopieren mit NotesItem.CopyItemToDocument. Du kopierst bisher ja ausdrücklich nur Plain Text.

Bernhard
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: DerAndre am 22.03.06 - 08:43:37
Bernhard, Du bist echt immer schneller....  :)

Set notesItem = notesItem.CopyItemToDocument( notesDocument, newName$ )

Gruss

André
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: KiTaMann am 22.03.06 - 08:57:16
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         
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: koehlerbv am 22.03.06 - 09:01:35
Die Syntax für diese Methode ist falsch verwendet - die Parameter sind exakt verdreht.

Bernhard
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: Glombi am 22.03.06 - 09:04:56
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
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: KiTaMann am 22.03.06 - 09:13:15
Stimmt!

So geht's  ;D:

   Set item = AuswahlDoc.GetFirstItem("Import")
   Call item.CopyItemToDocument(ZielDoc,"Import")

Danke Bernhard!

Gruß
Klaus
Titel: Re: Richtextfeld-Inhalte in neue Maske importieren
Beitrag von: KiTaMann am 22.03.06 - 09:15:43
Hallo Andreas,

bist mir gerade beim Antworten "rein- " und damit "durchgerutscht".

Auch Dir besten Dank!


Klaus