Einfaches Makro zum Setzen einer Benutzervariablen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Dr. Morgenes
Beiträge: 3
Registriert: Mi, 22.04.2015 14:02

Einfaches Makro zum Setzen einer Benutzervariablen

Beitrag von Dr. Morgenes »

Hallo,

Ich bin nicht vertraut mit OpenOffice Basic, müsste es aber nun benutzen um mein Ziel
zu erreichen, verfüge jedoch leider nicht über genügend Zeit um mich anzulernen.

Ich bräuchte ein Makro, welches ich einem Knopf zuweisen kann, das dann ein beliebiges
Feld (z.B Name "Testfeld") auf einen konstanten Wert (z.B. "Test") setzt. Ich spreche hier
von einem Benutzerfeld, wie man es in der GUI im Dialog "Feldbefehle", Registerkarte
"Variablen" setzen kann. Bei Nicht-Existenz sollte die Variable automatisch angelegt werden.

Wie würde das funktionieren bzw. wie sähe der Code dann aus?


_________________
Moderation: Thema verschoben von OOo Writer nach OOo Basic und Java, wo alle Themen zur individuellen Programmierung hingehören.—lorbass, Moderator
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Einfaches Makro zum Setzen einer Benutzervariablen

Beitrag von Stephan »

z.B. wenn das Benutzerfeld den Namen "meinTextFeldName" hat und auf Wert "meinNeuerText" gesetzt werden soll:

Code: Alles auswählen

Sub Main
	tmp = ThisComponent.TextFields.createEnumeration
	Do While tmp.hasMoreElements
		tf = tmp.nextElement
		if tf.supportsService("com.sun.star.text.TextField.User") And _
			tf.TextFieldMaster.Name = "meinTextFeldName" then
			tf.TextFieldMaster.Content = "meinNeuerText"
		end if
	Loop
	ThisComponent.TextFields.refresh
End Sub
Dr. Morgenes
Beiträge: 3
Registriert: Mi, 22.04.2015 14:02

Re: Einfaches Makro zum Setzen einer Benutzervariablen

Beitrag von Dr. Morgenes »

Herzlichen Dank! Ich werde es sofort ausprobieren.
Dr. Morgenes
Beiträge: 3
Registriert: Mi, 22.04.2015 14:02

Re: Einfaches Makro zum Setzen einer Benutzervariablen

Beitrag von Dr. Morgenes »

Ok, funktioniert wunderbar! Danke.
Antworten