Eingabeliste (drop-down) - Wahl per Makro ändern

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

Moderator: Moderatoren

openforoffice
Beiträge: 2
Registriert: Sa, 24.09.2016 16:28

Eingabeliste (drop-down) - Wahl per Makro ändern

Beitrag von openforoffice »

Hallo,

Ich habe ein OpenOffice Writer Dokument (Apache OO 4.0.1), darin eine Eingabeliste (erstellt mit Einfügen -> Feldbfehl -> Andere -> Funktionen -> Eingabeliste), mit versch. Listeneinträgen ("Vormittag", "Nachmittag", "Abend") und dem Name "Zeitraum".

Im Dokument sehe ich also den "Vormittag" grau hinterlegt, ein Mausklick darauf öffnet ein Pop-Up-Fenster (Titel "Eintrag auswählen: Zeitraum"), wo ich aus den vorgegebenen Listeneinträgen einen auswählen kann.

Nun will ich das aber nicht von Hand mit der Maus, sondern mit einem Makro (OpenOffice Basic) machen.
Kann mir jemand einen Beispielcode machen, der z. B. den Zeitraum auf Abend setzt?

Ich habs mit "Makro aufzeichnen" versucht, aber das Makro aufzeichnen zeichnet keine Mausklick-Aktionen auf. Und meines Wissens kann man eine Eingabeliste (leider) nur mit Mausklick, nicht aber mit einer Tastaturbedienung öffnen / bedienen.

Grüße
Jens
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Eingabeliste (drop-down) - Wahl per Makro ändern

Beitrag von F3K Total »

Moin,
habe dir mal was gebaut:

Code: Alles auswählen

Sub Vormittag
    Set_Value(1)'ersten Eintrag wählen
end Sub

Sub Nachmittag
    Set_Value(2)'zweiter Eintrag wählen
end Sub

Sub Abend
    Set_Value(3)'dritter Eintrag wählen
end Sub

Sub Set_Value(nEintragsNummer)
    oTFEnum = thisComponent.TextFields.createEnumeration
    while oTFEnum.hasmoreElements
        oTF = oTFEnum.NextElement
        if oTF.Name = "Zeitraum" then 'Name der Eingabeliste
            aItems = oTF.Items
            oTF.selectedItem = aItems(nEintragsNummer-1)
            oTF.update
            'xray oTF
         endif
    wend
End Sub
Hier eine Beispieldatei, mit eigener Symbolleiste Zeitraum:
SL.png
SL.png (4.02 KiB) 3182 mal betrachtet
Viel Spaß damit, Gruß R
Dateianhänge
EingabeListePerMakro.odt
(11.69 KiB) 154-mal heruntergeladen
openforoffice
Beiträge: 2
Registriert: Sa, 24.09.2016 16:28

Re: Eingabeliste (drop-down) - Wahl per Makro ändern

Beitrag von openforoffice »

Super, vielen Dank!

In meinem Dokument sind noch andere Variablen / Eingabefelder / usw. drin.
Offensichtlich hat nicht jedes Textfield einen "Name", aber das konnte ich lösen:

Code: Alles auswählen

	...
	oTF = oTFEnum.NextElement
		if oTF.getPropertySetInfo().hasPropertyByName("Name") Then
			if oTF.Name = "Zeitraum" then 
			...
Grüße
Jens
Antworten