Domino 9 und frühere Versionen > ND6: Entwicklung
Daten aus Collection in ein Richtext schreiben
Greenthumb:
Hallo,
Ich möchte in einer Maske Daten aus mehreren Masken zu einem Kunden zeigen.
Erst werden die Daten aus vorhandenen Dokument gelesen (unprocessedDocuments) und in die Zielmaske geschrieben.
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Dim coldoc As NotesDocument
Set coldoc = collection.GetFirstDocument
' Daten lesen aus der Sales-Maske...
coldocid = coldoc.UniversalID
firma = coldoc.GetItemValue("firma")(0)
salesnum = coldoc.GetItemValue("salesnum")(0)
status = coldoc.GetItemValue("status")(0)
...
'Daten in Zielmaske schreiben....
Dim doc As NotesDocument
Set doc= db.CreateDocument
doc.Form = "SchnellInfo-sdoc"
doc.salesdocid= coldocid
doc.firma = firma
doc.salesnum = salesnum
doc.status = status
...
Dann sollen 3 nächsten ToDo für den markierten Kunden aus der Maske "ToDo" ausgelesen werden (das funktioniert auch)
Dim collection1 As NotesDocumentCollection
SSTR = "FORM = ""ToDo"" & firma = """ + firma + """ & salesnum = """ + salesnum + """"
Set collection1 = db.Search(SSTR, Nothing, 0)
For I=1 To collection1.Count
Dim doc1 As NotesDocument
Set doc1 = collection1.GetNthDocument(I)
ansprpart = doc1.GetItemValue ("ansprpart")
...
Und hier habe ich mein Problem: ich will jetzt die ausgelesenen Informationen aus der Kollektion in die entsprechenden RichTextFelder schreiben (um die vorherigen Werte der Collection nicht zu überschreiben), was aber nicht funktioniert
Dim item As NotesItem
Set item = doc.GetFirstItem("ansprpart")
Call item.AppendToTextList (ansprpart)
...
Next
'Document anzeigen
Call ws.EditDocument (False , doc, False)
End Sub
Debugger hängt an der Zeile Call.item.AppendToTextList... mit der Fehlermeldung: "Object variable not set" obwohl alles initialisiert ist. Könnt ihr mir sagen wo ich Fehler mache oder wie ich es lösen kann?
Vielen Dank!
Glombi:
Das
Set item = doc.GetFirstItem("ansprpart")
geht nicht, da das Feld "ansprpart" vorher nie gesetz wurde. Also weiter oben
doc.firma = firma
doc.salesnum = salesnum
doc.status = status
doc.ansprpart = "" 'Item initialisieren
Und dann noch
ansprpart = doc1.GetItemValue ("ansprpart")
durch
ansprpart = doc1.GetItemValue ("ansprpart")(0)
ersetzen, sonst hast Du keinen String.
oder - falls es ein Variant sein muss -
Call item.AppendToTextList (ansprpart(0))
Andreas
Greenthumb:
Vielen, vielen Dank Glombi!
Ich habe das übersehen, jetzt funktioniert`s!
Greenthumb:
Hallo,
kennt ihr irgendeinen Trick, mit dem ich eine leere Zeile (newline) in NotesItem-Klasse machen kann. Ich schreibe nämlich verschiedene Werte in ein RT-Feld und würde sie gerne mit der leeren Zeile trennen.
Bis jetzt werden alle Einträge in eine Zeile geschreiben :-(
Ich habe schon auch mit NotesRichtTextItem-Klasse versucht, sie weist nämlich die Methode AppendText und AddNewLine auf.
....
Dim item As NotesRichTextItem
Set item = doc.GetItemValue("kontakt1")
Call item.AppendText (thema (0))
Call item.AddNewLine (1)
....
Aber das Problem ist hier, dass die Methode GetFirstItem (s.o.)ein Objekt vom Typ NotesItem zurückliefert, das an eine Objektvariable vom Typ NotesRichTextItem zugewiesen wird. Der Compiler meldet einen Fehler (Type mismatch), weil er nicht weiss, dass tatsächlich ein Objekt vom Typ NotesRichTextItem zurückgegeben wird.
Kennt Ihr Lösungen zu diesem Problem?
Ich bin für alle Antworten sehr dankbar!
Glombi:
Du musst ein Chr$(13) verwenden:
"Das ist eine Zeile" & chr$(13) & "und das die nächste"
oder war es ein andere ASCII-Code?
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln