Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Lord_Fipsy am 03.03.10 - 14:05:36

Titel: RichText-Feld beschreiben
Beitrag von: Lord_Fipsy am 03.03.10 - 14:05:36
Hallo,
mein Problem sollte eigentlich nicht allzu groß sein... aber irgendwie steh ich grad aufm Schlauch. Hoffentlich könnt ihr mir helfen.

Dies hier ist das Grundszenario und mein Problem:
Ich habe genau zwei Sachen in meiner Testmaske: ein RichText-Feld und eine Schaltfläche. Mit einen Klick auf die Schaltfläche wird etwas in das Richtext-Feld geschrieben und anschließend noch ein Doc-Link hinzugefügt.
In dem Feld sollte jetzt also beispielsweise sowas drinstehen: "xyz yxz <Link>"
Allerdings macht es das nicht. Das Feld bleibt einfach leer. Im Debugger seh ich aber, dass das Valuefeld durchaus mit dem Wert gefüllt wird. Dieser wird aber nicht angezeigt.
Warum nicht bzw. was kann ich machen damit es angezeigt wird?

Vielen Dank für die Hilfe
Philipp

Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace	
	Dim uidoc As NotesUIDocument
	Dim doc As Notesdocument	
	Dim rtitem As Variant
	
	Set uidoc = workspace.CurrentDocument	
	Set doc = uidoc.Document
	Set rtitem = doc.GetFirstItem("Test_Feld")	
	'oder etwa:
	'Set rtitem = New NotesRichTextItem( doc, "Test_Feld" )
	If rtitem.Type = RICHTEXT Then
		Call rtitem.AppendText("Feld wurde erfolgreich gefüllt")
		Call rtitem.AppendDocLink( doc, "Link zu CRM" )		
	End If	
	
        'oder (hier weiß ich aber keine möglichkeit einen Link hinzuzufügen):
	'Call uidoc.FieldAppendText("Test_Feld", "Beispieltext")
End Sub
Titel: Re: RichText-Feld beschreiben
Beitrag von: Kadlec am 03.03.10 - 14:12:40
Wenn das Dein ganzer Code ist fehlt das speichern.

Boris
Titel: Re: RichText-Feld beschreiben
Beitrag von: DerAndre am 03.03.10 - 14:22:22
Such mal nach re-open.

Richtextfelder sind fies gemein und überhaupt
Titel: Re: RichText-Feld beschreiben
Beitrag von: koehlerbv am 03.03.10 - 14:22:52
Da fehlt nicht nur das Speichern, Boris.

Es gibt viele, viele Beiträge hierzu. Hier nur ein Beispiel (http://atnotes.de/index.php/topic,23381.0.html).

Bernhard
Titel: Re: RichText-Feld beschreiben
Beitrag von: Lord_Fipsy am 03.03.10 - 14:44:29
Wenn das Dein ganzer Code ist fehlt das speichern.

Boris

mmh eigentlich soll das Dokument noch nicht gespeichert, sondern nur das Textfeld richtig angezeigt werden. Später soll das RT-Feld benutzt werden um Kundennamen und den passenden Link zum CRM-System anzeigen zu lassen. Da ist ein Speichern nicht wirklich praktisch.

Oder speicher ich nicht das Dokument? Das Backend/Frontend verwirrt mich grade ein wenig...
Sorry arbeite noch nicht so lang mit Notes.

Philipp
Titel: Re: RichText-Feld beschreiben
Beitrag von: koehlerbv am 03.03.10 - 14:53:27
Setze den Link doch erst beim Speichern ein, dann umgehst Du den ganzen Stress bzgl. des Widerspruchs "RTI aktualisieren vs. Nicht-zwangsweise-Speichern".

Bernhard
Titel: Re: RichText-Feld beschreiben
Beitrag von: m3 am 03.03.10 - 14:55:13
Aus der Designer-Help, Kapitel "Refresh method":
Zitat
Syntax
Call notesUIDocument.Refresh( [ IncludeRichTextItems ] )
...
The parameter is useful when you use Document and want to be sure the back-end document contains the most current front-end data including rich text. No method exists to get rich text changes from the back-end document into the front-end document. The user must close and reopen the document.

Und dem Kapitel "Writing in rich text items in LotusScript classes":
Zitat
Updates to rich text items accessed through NotesUIDocument are not immediately incorporated into the NotesUIDocument object. You must close and open the document to see the updates.
Titel: Re: RichText-Feld beschreiben
Beitrag von: Lord_Fipsy am 03.03.10 - 15:19:22
Danke für die schnellen Antworten.
Die Hinweise hab ich irgendwie überlesen.

Den Link beim Speichern setzen ist leider auch keine Alternative. Muss das ganze Konzept nochmal ändern und gründlich überarbeiten.
Trotzdem danke schön.
Titel: Re: RichText-Feld beschreiben
Beitrag von: pram am 03.03.10 - 18:09:35
Aus der Designer-Help, Kapitel "Refresh method":
Zitat
Syntax
Call notesUIDocument.Refresh( [ IncludeRichTextItems ] )
...
The parameter is useful when you use Document and want to be sure the back-end document contains the most current front-end data including rich text. No method exists to get rich text changes from the back-end document into the front-end document. The user must close and reopen the document.
Der Vollständigkeit: Dies ist nicht ganz richtig.
http://www.qtzar.com/blogs/qtzar.nsf/d6plinks/DSLH-7NRK85
(Als weiteren Würgaround kenn ich noch den Weg über Dialogbox + Zwischenablage)

Phillip, mit oben genannter Funktion sollte sich das Problem (zumindest unter 8.5) lösen lassen.
Allerdings ist es immer riskant, undokumentierte Funktionen zu verwenden.

Gruß
Roland

/edit
seh grad dass wir hier im 6er Forum sind...