Domino 9 und frühere Versionen > ND8: Entwicklung

Absatzmarke in einem RichText Feld

(1/2) > >>

vrhsva:
Hallo,
irgendwie bekomme ich mit Script und auch mit Formel keine echte Absatzmarke in ein RichTextFeld.
Also, ich habe ein offenes Dokument, das letzte Feld ist ein RichText Feld für Notizen. Über dem Feld ist ein Knopf, der folgendes macht:
Curser an das Ende des Richtext-Feldes setzen,
Absatz einfügen,
aktuelles Datum einfügen, UserNamen einfügen, Doppelpunkt, Tab
Anschließend kann ich dann meine Notiz dahinterschreiben.
Wenn ich das nächste Mal auf den Knopf drücke, wieder Datum und User in eine neue Zeile, usw.

Funktioniert auch tadellos. Jetzt wollte ich dieses Feld ein bischen übersichtlicher gestalten und habe in den Feldeigenschaften den Linken Einzug so eingestellt, dass die erste Zeile des Absatzes auf 0cm steht und die folgenden auf 4cm. (FieldProperties->5. Reiter->FirstLine 3.Schaltfläche->Outdent 4cm) Also dass das Ganze wie 2 Spalten wirkt.
Wenn ich über die Tastatur eine neue Zeile beginne, springt der Curser auch brav zurück auf 0cm. Wenn ich das aber über den Knopf mache, dann fängt die neue Zeile erst bei 4cm an. Als hätte ich Hochstellung + Enter gedrückt und nicht einfach nur Enter

Ich habe es mit char 0, 10 und 13 ausgetestet. Keines davon führt ein echtes Enter aus.

Habe den Knopf mit Formel und alternativ mit Script bestückt. In beiden Fällen nutze ich UI Funktionen wie @command(EditBottom) (das RichtextFeld ist das letzte Feld in der Maske) und InsertText

Ich habe über Menü->View->Show->Hidden Caracters mal die Sichtbarkeit der Absatzmarken eingeschaltet, da ist mir aufgefallen, dass nach der Knopfbetätigung keine Absatzmarke (¶ ) angezeigt wird. Nur wenn ich Enter drücke.

Gibt es denn überhaupt eine Möglichkeit über UI einen neuen Absatz einzufügen?
Also die Möglichkeit mir im Backend das RichtextItem zu schnappen und AppendNewLine dort reinzuschreiben, und anschließend das Dokument im Frontend zu schließen und wieder zu öffnen wäre für mich keine Option, weil ich nach Betätigung des Knopfes immernoch entscheiden möchte, ob ich die Änderung denn auch abspeichern möchte oder nicht.

Ich hoffe ich habe das Problem halbwegs verständlich rübergebracht und mir kann jemand einen Tip geben.

jBubbleBoy:
mit sendKeys scheint es zu gehen, ist LotusScript für dich eine Variante?

vrhsva:
mit
      Call uidoc.Gotobottom()
      SendKeys "~", true

bekomme ich nur einen IllegalFunctionCall

Aber ich habe in der Vergangenheit schon öfter mal mit sendKeys rumgespielt und nie ein brauchbares Ergebnis erziehlt. Selbst wenn ich das Beispiel aus der DesignerHilfe 1:1 in einen Button kopiere, bekomme ich einen IllegalFunctionCall

Muss man das noch irgendwie freischalten? Oder spielt da ein AntiViren Programm noch eine Rolle?

jBubbleBoy:
ja diese LS-Funktion geht nicht, probier es mal damit:

--- Code: ---Sub sendKeys2(keyString As String)
Dim wsh
Set wsh = CreateObject("WScript.Shell")
wsh.SendKeys keyString, True
End Sub

--- Ende Code ---

vrhsva:
Aha, das funktioniert schon mal StandAlone. Aber in meinem Code führt er erst das Einfügen der Zeichenkette und dann die Zeilenschaltung aus dem SendKeys aus, obwohl das Statement vorher ausgeführt wird. Ich möchte aber, dass die Zeilenschaltung vor der Zeichenkette ausgeführt wird
Hier ist mein Code:

--- Code: ---Sub Initialize
Dim ns As New NotesSession
Dim ws As New NotesUIWorkspace
ma = "(" & ns.Commonusername & "):"
Dim uid As NotesUIDocument
Set uid = ws.CurrentDocument
If uid.Editmode=false Then uid.Editmode=True
If Not uid.Fieldgettext("Maßnahmen")="" Then
Call uid.Gotobottom()
Call Zeilenschaltung
End If
Call uid.Fieldappendtext("Maßnahmen",CStr(Today)& ": " & ma & Chr$(9))
Call uid.Gotobottom()
End Sub

Sub Zeilenschaltung
Dim wsh
Set wsh = CreateObject("WScript.Shell")
wsh.SendKeys "~", true
End Sub

--- Ende Code ---

Komisch, oder?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln