Domino 9 und frühere Versionen > ND6: Entwicklung
Textinhalt in anderes Dokument kopieren
marschul:
Noch'n Tipp: True ist in Script nicht 1, sondern -1 (i.G. zur Formelsprache).
m3:
--- Zitat von: marschul am 08.06.11 - 11:26:27 ---Noch'n Tipp: True ist in Script nicht 1, sondern -1 (i.G. zur Formelsprache).
--- Ende Zitat ---
Wobei "True" bzw. "False" als Werte sowieso lesbarer sind.
marschul:
--- Zitat von: m3 am 08.06.11 - 11:29:07 ---
--- Zitat von: marschul am 08.06.11 - 11:26:27 ---Noch'n Tipp: True ist in Script nicht 1, sondern -1 (i.G. zur Formelsprache).
--- Ende Zitat ---
Wobei "True" bzw. "False" als Werte sowieso lesbarer sind.
--- Ende Zitat ---
Jupp, würde ich auch immer so schreiben - True/False liest sich einfach besser und eine Zahl kann ja auch eine andere Bedeutung in einer Parameterliste haben...
Mich90:
Hallo,
vielen Dank für die vielen Tipps.
Ich habe mein Skript nun folgendermaßen geändert:
--- 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 land As NotesItem
Dim feldZuKopierenIndication As NotesItem
Dim feldZuKopierenInhaltIndication As String
Dim feldZuKopierenAI As NotesItem
Dim feldZuKopierenInhaltAI As String
Dim feldZuKopierenBrand As NotesItem
Dim feldZuKopierenInhaltBrand As String
Dim neu 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 feldZuKopierenIndication = uidoc.Document.GetFirstItem("fldProd_Indications_User")
feldZuKopierenInhaltIndication = feldZuKopierenIndication.Text
'Simikolons ersetzen
feldZuKopierenInhaltIndication = Evaluate({@ReplaceSubstring("} & feldZuKopierenInhaltIndication & {";";Chr(10)}) 'FEHLER
Msgbox feldZuKopierenInhaltIndication 'Ausgabe zum Test
Set feldZuKopierenAI = uidoc.Document.GetFirstItem("fldProd_Products_User")
feldZuKopierenInhaltAI = feldZuKopierenAI.Text
Set feldZuKopierenBrand = uidoc.Document.GetFirstItem("fldProd_Brands_User")
feldZuKopierenInhaltBrand = feldZuKopierenBrand.Text
'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
Dim itemCopy As NotesItem
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").Text = land.Text Then
'Inhalt des Feldes ersetzen
docAdmin.fldProd_Indications = feldZuKopierenInhaltIndication
docAdmin.fldProd_Products = feldZuKopierenInhaltAI
docAdmin.fldProd_Brands = feldZuKopierenInhaltBrand
'Dokument speichern und schließen
'Call docAdmin.Save(True,True)
Call ws.EditDocument(True,docAdmin)
End If
'nächstes Dokument
Set docAdmin=coll.getnextdocument(docAdmin)
Wend
Call uidoc.Document.Save(True,True) 'aktuelles Dokument am Ende noch speichern
End Sub
--- Ende Code ---
Wie man sieht, möchte ich aus einem Feld (bzw. später aus mehreren) die ";" zu "Chr(10)", also einem Zeilenumbruch (Klick auf Enter) ändern. Hierbei handelt es sich um Felder mit Mehrfacheinträgen. Diese werden beim auslesen wohl mit einem ";" getrennt, was mein Einfügen natürlich wieder geändert werden müsste...
Das Ersetzen klappt allerdings nicht (siehe Kommentar : Fehler). Hier wird der Fehler:
Operation failed
ausgegeben. Das ist natürlich nicht wirklich aussagekräftig.
Kann mir an der Stelle jemand weiterhelfen?
Danke schön ^-^
Mitch:
Naja, du hast Fehler in der Formel die du ins Evaluate steckst.
Tipp: Schreibe die Formel erstmal auf, ohne da direkt deine dynamischen Parameter einzubauen. Das ist einfacher, da man mit den Anführungszeichen und Semikolons nicht so schnell durcheinander kommt:
@ReplaceSubstring("hieristtext"; ";"; @NewLine)
Danach kannst du deine Variable einbauen:
{@ReplaceSubstring("} & meinevariable$ & {"; ";" ; @NewLine)}
Und schon klappt's. ;)
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln