Seite 1 von 1

Re: Optionsgruppe auswerten

Verfasst: Sa, 29.02.2020 09:46
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

Re: Optionsgruppe auswerten

Verfasst: Sa, 29.02.2020 12:46
von F3K Total

Re: Optionsgruppe auswerten

Verfasst: So, 01.03.2020 12:50
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