Domino 9 und frühere Versionen > ND6: Entwicklung

Daten aus Collection in ein Richtext schreiben

(1/3) > >>

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