Autor Thema: Mit GetSelectedText Text verändern: Was machen bei doppelt vorkommenden Wörtern?  (Gelesen 3731 mal)

Offline Schnubbel

  • Junior Mitglied
  • **
  • Beiträge: 88
Moin,

folgender Fall:

In einer Maske ist ein Textfeld und über die Aktionsleiste gibt es die Möglichkeit den Text in dem Textfeld zu verändern.

Bsp:
Der Text im Textfeld lautet:

Für das erste minderjährige anspruchsberechtigte Schulkind einer Familie sind monatlich 11,20 € und
für das zweite anspruchberechtigte minderjährige Schulkind einer Familie sind monatlich 6,00 € zu zahlen.


Nun markiert man z.B. das Wort "Schulkind"im Satz (für das zweite anspruchberechtigte minderjährige Schulkind einer Familie sind monatlich 6,00 € zu zahlen.). Vor und nach diesem Wort soll nun etwas eingefügt werden. Das Problem ist, dass ja zuvor in dem Text bereits einmal Schulkind steht und daher mit meinem bisherigen Code das erste Schulkind verändert wird.

   
Code
        Dim ws As New Notesuiworkspace
	Dim uidoc As NotesUIDocument
	Dim SText As String
	Dim Text As String
	
	Set uidoc = ws.CurrentDocument
	SText = uidoc.GetSelectedText("Textbausteintext")
	Text = uidoc.FieldGetText("Textbausteintext")
	If Text ="" Then
		Msgbox "Fehler: Kein Text markiert!"
		Exit Sub
	End If
	
	Text = Left(Text,Instr(Text,SText)-1) & { </fett*>} & Fulltrim(SText) & {<*fett/> }  & Right(Text,Len(Text)-(Instr(Text,SText) - 1 + Len(SText)))
	
	Call uidoc.FieldSetText("Textbausteintext",Text)

Gibt es eine Möglichkeit die Position der Markierung noch über etwas anderes als GetSelectedText zu bestimmten? Oder hat jmd eine andere Idee? Vielen Dank schonmal.

Thorsten
« Letzte Änderung: 09.09.11 - 10:54:48 von Schnubbel »
Client -> Notesclient 8.5.3
Betriebssystem ->Windows 7
User-> Thorsten :)

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 477
Hallo Thorsten,

die gesuchte Funktion heißt uidoc.InsertText() und könnte bei Dir in etwa so eingesetzt werden:

Code
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	
	Dim tmp As String
	
	Set uidoc = ws.CurrentDocument
	
	tmp = uidoc.GetSelectedText("")
	
	Call uidoc.InsertText(" ********* " + tmp + " ************ ")

Die Sternchen musst Du natürlich noch anpassen - aber damit wird der aktuell markierte Bereich mit dem neuen Text überschrieben.

Gruß

André

Offline Schnubbel

  • Junior Mitglied
  • **
  • Beiträge: 88
Danke schon @ André.
Das war genau das was ich gebraucht hab! :D
Client -> Notesclient 8.5.3
Betriebssystem ->Windows 7
User-> Thorsten :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz