Domino 9 und frühere Versionen > ND6: Entwicklung

Textinhalt in anderes Dokument kopieren

(1/3) > >>

Mich90:
Guten Morgen liebe Community,

ich möchte von einem Dokument den Inhalt eines Textfeldes in ein Textfeld eines anderen Dokuments kopieren. Dabei müssen allerdings die Ländernamen der beiden Dokumente übereinstimmen  ;)

Meines Erachtens müsste das folgendermaßen gehen:

* alle Dokumente der anderen Maske durchlaufen
* prüfen, ob Ländernamen identisch sind
* wenn identisch, dann Feldinhalt mit neuem Inhalt ersetzen (vorher in den Editiermodus)
* Dokument speichern und schließen

Nun habe ich angefangen:

--- Code: ---Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim db As NotesDatabase
Dim feldZuKopieren As NotesItem
Dim land As NotesItem
Dim feldZuKopierenInhalt  As String

Set uidoc = ws.CurrentDocument
Set db = session.CurrentDatabase
Set doc = New NotesDocument ( db )

     'hole aus dem geöffneten Dokument den Inhalt des zu kopierenden Feldes
Set feldZuKopieren = uidoc.Document.GetFirstItem("fldProd_Indications_User")
Set feldZuKopierenInhalt = feldZuKopieren.Text
Msgbox feldZuKopierenInhalt   'Ausgabe zum Test

'Land-Feld speichern
Set land = uidoc.Document.GetFirstItem("fldCou_Name")
Msgbox land.Text

'hier werden alle Dokumente der Maske frmCatalog_Country durchlaufen
Dim coll As NotesDocumentCollection
Dim docAdmin As NotesDocument
Set coll=db.search(|Form="frmCatalog_Country"|, Nothing, 0)
Set docAdmin=coll.getfirstdocument
While Not docAdmin Is Nothing
'prüfen, ob Land übereinstimmt
If docAdmin.GetFirstItem("fldCou_Name") = land Then
'Inhalt des Feldes ersetzen
docAdmin.ReplaceItemValue("fldProd_Indications", feldZuKopierenInhalt) 'FEHLER
'Dokument speichern und schließen
Call docAdmin.Save(1,1)
End If
'nächstes Dokument
Set docAdmin=coll.getnextdocument(docAdmin)
Wend


Call uidoc.Document.Save(1,1) 'aktuelles Dokument am Ende noch speichern
End Sub
--- Ende Code ---

Ist meine Logik im Quelltext korrekt? Ich bekomme in der Zeile mit
docAdmin.ReplaceItemValue("fldProd_Indications", feldZuKopierenInhalt)
einen Fehler "Illegal use of parentheses".
Woran liegt das? ???

Gruß,
Micha

klaussal:
In der Designer-Hilfe steht die Lösung...    :o

m3:
Um den Tipp von Klauss etwas spezifischer zu machen:
Du willst ein Set oder Call vor dem Aufruf (ReplaceItemValue liefert ja was zurück).


Und noch ein Nota-Bene aus der Designer-Hilfe zu ReplaceItemValue:

--- Zitat ---Do not use this method to replace the value of a rich text item (or MIME entity) unless you want to change it to a text item. To replace the contents of a rich text item, use NotesDocument.RemoveItem or NotesRichTextItem.Remove to delete the old item, NotesDocument.CreateRichTextItem to create a new one with the same name, and NotesRichTextItem.AppendText and other methods to provide the new content.
--- Ende Zitat ---

marschul:
Alternative: Wenn Du kein Set oder Call verwendest, dann lass die Klammern für die Parameter weg - passend zur Fehlermeldung.

klaussal:
Wenn das Dokument gefunden wurde, ist dann die Schleife nicht zu Ende ?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln