Domino 9 und frühere Versionen > Entwicklung

Problem mit RichtextItem

<< < (2/2)

Glombi:
Wenn Du ein neues Dokument erstellst, "kennt" Notes erst NACH DEM SPEICHERN das Rich Text Feld.
D.h. Du müsstest das Dokument vorher speichern.

call CurDoc.Save
set Doc = CurDoc.Document

Wenn es dann noch Validierungen gibt, ein entsprechendes Error Handling einbauen!

Andreas

dottore:
Weil RichTextItems leider erst nach dem speichern im Dokument vorhanden sind.
Genauso spätere Änderungen - ja RichTextItems machen Spaß!

JimKnopf:
Danke nochmals!

Aber selbst nach dem speichern bekomme ich diese Meldung. Selbst wenn ich das Richtextfeld händisch fülle, speicher und wieder öffne (im Bearbeitungsmodus) funktioniert es nicht.

Ich habe auch einmal ein ganz neues RT-Feld angelegt --> gleiches Ergebnis. Mal eine ganz dumme Frage: Gibt es irgendwelche Bibliotheken , die eingebunden werden müssen? Schreibfehler sind ausgschlossen, bin alles nochmals mit Copy & Paste durchgegangen...



PS: Was ist denn das für ein "Feature", bei dem Felder erst erkannt werden, nachdem alles gespeichert ist?!?!? Ist es nicht meistens so, dass Felder erst gefüllt werden und um sie dann zu peichern?!?!? Manchmal könnte ich Notes...

scipio:
Wenn ich's richtig verstanden habe, dann existiert in der Maske, die zum Erstellen der Dokumente benutzt wird, ein RT-Feld namens "Ergebnis". In der gleichen Maske gibt es eine Schaltfläche, die das RT-Feld füllen soll. Also einfach folgenden Code in das Click-Event:


--- Code: ---Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   Call uidoc.FieldAppendText( "Ergebnis", "Hallo1" )
   Call uidoc.FieldAppendText( "Ergebnis", Chr(10) )
   Call uidoc.FieldAppendText( "Ergebnis", "Hallo2" )
End Sub
--- Ende Code ---

JimKnopf:
Guten Morgen!

Das Problem ist gelöst. Danke allen, die daran beteiligt waren. Die Lösung war einfach: Neustart des Notesclients und es ist natürlich so, dass RT-Felder erst erkannt werden, wenn sie zuvor gespeichert werden :-\ Die Logik leuchtet mir zwar nicht ein, aber damit muß man wohl leben... Ich habe für andere Neulinge den kompletten Code einmal dokumentiert, vielleicht hülft das was:


--- Code: ---Sub Click(Source As Button)
   
   Dim Session As New NotesSession
   Dim Workspace As New NotesUIWorkspace   ' UI steht für UserInterface und meint immer das aktuell "Sichtbare"
   Dim db As NotesDatabase
   Dim curDoc As NotesUIDocument
   Dim Doc As NotesDocument
   Dim rtItem As Variant
   
   Set db = Session.CurrentDatabase            'Die aktuell geöffnete Datenbank wird in der Variable db defininiert
   Set curDoc = Workspace.CurrentDocument    'Das aktuelle Dokument wird zugeordnet
   curDoc.Save                                  'Damit das Richtextfeld erkannt wird, muß vorher gespeichert werden.
   Set Doc = curDoc.Document                   'Das aktuell "sichtbare" Dokument wird wird an ein Hintergrunddokument übergeben
   Set rtItem = Doc.GetFirstItem( "Ergebnis")      'Das Feld "Ergebnis" wird im "Hintergrund" einer Variablen zugeordnet
   
   Call rtItem.AppendText( "Hallo1" )               'Der Text "Hallo1" wird in dem Feld "Ergebnis" angehangen (im Hintergrund)
   Call rtItem.AddNewLine (1)                     'Zeilenumbruch
   Call rtItem.AppendText( "Hallo2" )
   Call Doc.Save (True, False)                     'Das Hintergrunddokument wird gespeichert
   Call curDoc.FieldSetText( "SaveOptions", "0" )   'In das Feld "SaveOptions" wird eine "0" geschrieben, damit das Vordergrunddokument (UI)
                                                'ohne Nachfrage geschlossen werden kann.**
   Call curDoc.Close                              'Das Vordergrunddokument wird ohne Speicherung geschlossen (eine Speicherung würde
                                                'die Änderungen die zuvor im Hintergrund stattfanden wieder überschreiben)
   Set curDoc = Workspace.EditDocument(False, doc) ' Das Hintergrunddokument (mit den Änderungen) wird in den Vordergrund geholt, so dass
                                                      ' die Änderungen sichtbar werden
End Sub


--- Ende Code ---

Ich wünsche allen einen guten Rutsch ins Neue Jahr!

Grüße
Arne

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln