Hallo!
gibt es eine Möglichkeit , dass MArkierfeld in Writer größer darzustellen. Über Eigenschaften - Höhe verändert sich nur der Rahmen, nicht das Kästchen selber.
Grüße von der Ostsee
Susanne
Hallo!
gibt es eine Möglichkeit , dass MArkierfeld in Writer größer darzustellen. Über Eigenschaften - Höhe verändert sich nur der Rahmen, nicht das Kästchen selber.
Grüße von der Ostsee
Susanne
Nein, das Feld ist so fest einprogrammiert. Ich würde so etwas gegebenenfalls mit Makros und einem Textfeld lösen, das z.B. ein großes X in das Textfeld setzt, wenn das Feld angeklickt wird.
Hi!
Ich habe dasselbe Problem - möchte gerne das Markierfeld grösser darstellen. Nur habe ich leider überhaupt keine Ahnung von Makros… Wie lautet der Code für die Lösung mit dem Textfeld und dem X?
Beste Grüsse
Regula
Wenn Du bisher überhaupt nichts mit Makros zu tun hattest, dann ist dies wohl nicht der geeignete Einstieg. Du müsstest nämlich beim Einlesen des Wertes eine Umwandlung von “True” zu einem “X” erstellen und beim Abspeichern wiederum aus dem “X” ein “True” machen.
Markierfeld.odb (12.1 KB)
Schau einmal, ob Dir die Alternative mit einem Listenfeld nicht genügt, die ich hier angehängt habe. Ich habe in dem Formular extra noch ein Markierfeld mit drin gelassen, das das gleiche Feld bedient. Du kannst statt des “X” in so einem Listenfeld auch einen Haken anzeigen lassen. Ich würde dazu bei den Sonderzeichen nachschauen, was denn passend ist.
Ich habe jetzt auch noch eine entsprechende Makrolösung erstellt:
GLOBAL stChecked AS STRING
REM +++ Einstellen des Boolean-Feldes beim Wechsel des Datensatzes im Formular
REM +++ Der Name des Feldes steht in einem versteckten Kontrollfeld, Bei mehreren Feldern durch ein Semikolon getrennt
REM +++ In den Zusatzinformationen des Feldes steht der Name des Datenfeldes
SUB BoolStart(oEvent AS OBJECT)
DIM oForm AS OBJECT
DIM oField AS OBJECT
DIM stCheckbox AS STRING
DIM stCheck AS STRING
DIM stValue AS STRING
DIM arCheck()
oForm = oEvent.Source
IF hasUnoInterfaces( oForm, "com.sun.star.form.XForm" ) THEN
stChecked = ""
stCheckbox = oForm.getByName("hidCheckbox").HiddenValue
arCheck = split(stCheckbox,";")
FOR n = LBound(arCheck()) TO UBound(arCheck())
oField = oForm.getByName(Trim(arCheck(n)))
stCheck = oField.Tag
stValue = oForm.getString(oForm.findColumn(stCheck))
IF stValue = "true" THEN
oField.Text = stChecked
ELSE
oField.Text = "" 'Gegebenenfalls kann über die globale Variable hier ein anderes Zeichen eingebaut werden.
END IF
NEXT
END IF
END SUB
REM +++ Änderung der Anzeige eines Wertes in dem Textfeld, das als Checkbox angelegt sein soll
REM +++ Das Makro wird von dem Textfeld über Ereignisse → Teste gedrückt (Umweg über SUB BoolChangeKey) und über Ereignisse → Maustaste gedrückt ausgelöst.
SUB BoolChange(oEvent AS OBJECT)
DIM oField AS OBJECT
DIM oForm AS OBJECT
oField = oEvent.Source.Model
oForm = oField.Parent
IF oField.Text = stChecked THEN
oField.Text = ""
oForm.updateBoolean(oForm.findColumn(oField.Tag),false)
ELSE
oField.Text = stChecked
oForm.updateBoolean(oForm.findColumn(oField.Tag),true)
END IF
END SUB
REM +++ Das Makro wird von dem Textfeld über Ereignisse → Teste gedrückt ausgelöst.
SUB BoolChangeKey(oEvent AS OBJECT)
REM 1282 ist der Code für den Tablulator, siehe http://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1awt_1_1Key.html
REM Wird der Tabulator nicht ausgeschlossen, so wird er wie eine Taste und nimmt auch Änderungen an dem Feld vor.
IF oEvent.KeyCode <> 1282 THEN
BoolChange(oEvent)
END IF
END SUB
In dem Formular befindet sich ein verstecktes Kontrollfeld, hier mit dem Namen “hidCheckbox”. In dem sind die Checkboxfelder mit dem Namen aufgeführt, der in dem Formularnavigator angezeigt wird. Die Checkboxfelder sind mit keinem Datenfeld verbunden. Das Datenfeld steht lediglich in den Zusatzinformationen des jeweiligen Checkboxfeldes.
Eine Prozedur wird über das Formular ausgeführt (beim Datensatzwechsel), eine andere Prozedur wird ausgeführt, wenn die Chekbox mit der Maus auf dem Feld gedrückt wird und eine kurze Prozedur muss für das Drücken der Taste vorhergeschoben werden. Dadurch wird die Tabulatortaste davon ausgenommen, die Felder umzustellen.
Die Checkboxfelder selbst enthalten nur ein Zeichen und sind auf “Nur lesen” eingestellt.
Markierfeld.odb (23.1 KB)