Autor Thema: RichText zu PlainText  (Gelesen 4136 mal)

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
RichText zu PlainText
« am: 09.11.16 - 12:16:54 »
Ich habe folgende Herausforderung.

In einer Maske befindet sich ein RichText-Feld, welches einfach nur während des Speichervorgangs, im Event QuerySave zu PlainText konvertiert werden soll. Hört sich erst mal ganz einfach an, scheint es aber nicht zu sein, denn die besondere Herausforderung ist, dass sämtliche Zeilenumbrüche die im RichText-Feld eingebunden wurden erhalten bleiben. Aus diesem Grund scheiden die klassischen Mechanismen @Abstract bzw. @AbstractSimple schon einmal aus, da beide Funktionen sämtliche Zeilenumbrüche entfernen. Auch kann ich nicht auf die NotesItem Klasse zugreifen, weil das Dokument ja noch nicht gespeichert wurde und die Items somit noch nicht zur Verfügung stehen. Die einzige Funktion, mit der ich den Text ordnungsgemäß aus dem RichText-Feld abgreifen und in ein anderes Feld übertragen kann befindet sich im uidoc. Mithilfe von fieldgettext kriege ich den Text und kann ihn auch ordnungsgemäß in das neue Zielfeld des gleichen Dokumentes (ein reines Textfeld) übertragen. Bedauerlicherweise entfernt aber auch diese Funktion sämtliche Zeilenumbrüche.

Somit meine Frage. Gibt es irgendeine Möglichkeit, den Inhalt des RichText Feldes während des Speichervorganges in ein Textfeld zu übertragen und im Rahmen dieser Maßnahme sämtliche Zeilenumbrüche zu erhalten?

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: RichText zu PlainText
« Antwort #1 am: 09.11.16 - 12:28:10 »
Du musst ins PostSave- Event ausweichen, und dort nochmal ein doc.Save (NICHT uidoc.Save) hinterherschiessen nach Deinen Änderungen, weil eben im QuerySave das Richtextitem noch nicht die aktuellen Informationen enthält...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Re: RichText zu PlainText
« Antwort #2 am: 09.11.16 - 13:37:29 »
hi tode. aber genau das wollte ich eben nicht. naja trotzdem danke für deine mühe

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: RichText zu PlainText
« Antwort #3 am: 09.11.16 - 14:25:03 »
mit Zeilenumbrüche, geht bei mir so:
Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	Msgbox source.document.GetFirstItem("Body").text
	source.Document.txt = source.document.GetFirstItem("Body").text
End Sub

Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Re: RichText zu PlainText
« Antwort #4 am: 09.11.16 - 17:02:31 »
Klappt bei mir nur bei bereits bestehenden (also keinen neuen) Docs oder in TextItems (nicht RT Items).
Schade. Trotzdem Danke

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: RichText zu PlainText
« Antwort #5 am: 09.11.16 - 17:22:02 »
Welche NotesClient Version habt ihr im Einsatz?
Auch ein @Abstract entfernt bei mir nicht alle Zeilenumbrüche, meine Testergebnisse beziehen sich auf das erste QuerySave.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Flachmann

  • Senior Mitglied
  • ****
  • Beiträge: 284
  • Geschlecht: Männlich
  • Mal wieder: Flachmann ist Schuld!
Re: RichText zu PlainText
« Antwort #6 am: 10.11.16 - 07:49:52 »
Auch ein @Abstract entfernt bei mir nicht alle Zeilenumbrüche, meine Testergebnisse beziehen sich auf das erste QuerySave.
Ich glaube das bezieht sich auf die Hilfe. Dort heißt es:
Note  This function removes all carriage returns and linefeeds, regardless of which keywords are selected.

Aber bloß weil es dort steht heißt natürlich nicht, dass das auch so ist.  :-X
Gruß,
  __________
  _/_
  /lachmann

Offline Gutierrez

  • Aktives Mitglied
  • ***
  • Beiträge: 112
Re: RichText zu PlainText
« Antwort #7 am: 10.11.16 - 12:06:11 »
Probier mal:
Code
Sub Postopen(Source As Notesuidocument)
	
	Dim rt As NotesRichTextItem
	
	If Source.Isnewdoc Then
		Set rt = Source.Document.CreateRichTextItem("Body")		
	End If
	
End Sub
Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	
	Dim rt As NotesRichTextItem
	
	Call Source.Refresh(True)
	Set rt = Source.Document.GetFirstItem("Body")
		
End Sub

In der Maske gibt es natürlich ein RTFeld "Body" ;)

Beste Grüße
« Letzte Änderung: 10.11.16 - 12:08:15 von Gutierrez »

Offline Alexander 28

  • Aktives Mitglied
  • ***
  • Beiträge: 190
  • Geschlecht: Männlich
  • Meistens gibt es eine Lösung!
Re: RichText zu PlainText
« Antwort #8 am: 11.11.16 - 12:31:32 »
Hi Gutierrez. Das sieht vielversprechend aus. Werde das mal am WE testen und ein Feedback geben.

@Flachmann  + @jBubbleBoy
Notes 9.0.1
@Abstract killt bei mir alle Zeilenumbrüche!!!

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: RichText zu PlainText
« Antwort #9 am: 14.11.16 - 12:06:32 »
Unter der Voraussetzung, daß beide Felder bearbeitbar sind - wie wäre es mit:

Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	Call Source.GotoField("frtf")
	Call Source.SelectAll()
	Call Source.Copy()
	
	Call Source.GotoField("ftxt")
	Call Source.SelectAll()
	Call Source.Paste()
End Sub

Dabei ist frtf das RTF-Feld und ftxt das Textfeld. Unter 8.5.3 geht das bei mir  ;D

Gruss,
Th.
« Letzte Änderung: 14.11.16 - 12:08:50 von thkn777 »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz