Optionsgruppe auswerten

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

Moderator: Moderatoren

F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Optionsgruppe auswerten

Beitrag von F3K Total »

Moin, ist ein bissel komplizierter,
anbei ein Beispiel mit zwei Optionsgruppen, denen ich die Namen "Abitur" und "Farbe" gegeben habe.
Die dazugehörigen Makro-auslösenden Schaltflächen tragen in ihrer Eigenschaft "Zusatzinformation" den Namen der auszuwertenden Gruppe.
Dann geht's mit diesem Makro:

Code: Alles auswählen

Sub Get_Option_Status(Event)
    sGoupname = Event.source.model.Tag
    for i = 0 to ThisComponent.Drawpage.count -1 
        if ThisComponent.Drawpage(i).Name = sGoupname then
            oGroup = ThisComponent.Drawpage(i)
            for k = 0 to oGroup.count - 1
                oControl = oGroup(k).Control
                if oControl.State = 1 then
                    sText = oControl.label
                    msgbox ("Es ist """ & sText & """ausgewählt",64,"Optionsfelder")
                endif
            next k
        endif
    next i
End Sub
Beispiel anbei, Gruß R
Dateianhänge
Optionsgruppe.odt
(14.48 KiB) 125-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Optionsgruppe auswerten

Beitrag von F3K Total »

mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Optionsgruppe auswerten

Beitrag von mikeleb »

Hallo,
als Ergänzung: ApacheOpenOffice und LibreOffice unterscheiden sich beim Umgang mit Optionsfeldern ein wenig.
Eine Gruppe von Optionsfeldern bedeutet, dass stets nur eines der Felder aktiviert sein kann.
Unter AOO gehören mehrere Optionsfelder zu einer Gruppe, wenn sie denselben Namen haben. Unter LO geht das auch, man kann aber (und das halte ich für die geschicktere Variante) einen Gruppennamen vergeben. Verschiedene Optionsfelder mit demselben Gruppennamen gehören dann zusammen.
Ausgehend von F3K Total's Datei habe ich das mal abgewandelt.
Zwei Optionsfelder ("Optionsfeld 1" und "Optionsfeld 2"), die beide zur Gruppe "Abitur" gehören. Um jetzt herauszubekommen, welche Option gewählt ist, kann man entweder den Status der beiden Felder abfragen oder nur eines (wenn das nicht gewählt ist, muss es ja das andere sein).

Code: Alles auswählen

Sub abitur_status
	oForm=Thiscomponent.DrawPage.Forms.getByIndex(0)
	oControl=oForm.getByName("Optionsfeld 1")
	if oControl.State = 1 then
		sText = oControl.label
	else
		sText = oForm.getByName("Optionsfeld 2").label
	endif
	msgbox ("Es ist """ & sText & """ausgewählt",64,"Optionsfelder")
end sub
Dateianhänge
Optionsgruppe neu.odt
(10.87 KiB) 127-mal heruntergeladen
Gruß,
mikeleb
Antworten