Seite 1 von 1
Optionbutton Status abfragen
Verfasst: Mo, 03.08.2009 23:04
von clumsy
Kann mir mal jemand verraten wie man den status abfragen kann?
Habe 2 Optionsfelder erstelltmit dem gleichen Namen "auswahl"
Man kann jetzt also immer nur ein Optionsfeld markieren!
Wie kann ich denn jetzt den Status von "auswahl" abfragen?
Muss man vorher noch die beiden Optionsbuttons unter "Kontrollfeld" bearbeiten? Einen Wert zuweisen, oder so?
Das hier funktioniert nicht, warum?!
Code: Alles auswählen
Sub Read_Settings
Opt_Btn = myDialog.getControl("auswahl")
Status = Opt_Btn.model.State
if Status = 0 then
msgbox "0"
else
msgbox "1"
end if
End Sub
oder das funktioniert auch nicht:
Code: Alles auswählen
Sub Formular_Optionsfeld
oForm=ThisComponent.drawpage.forms.getByIndex(0)
sOptionName="hcl" 'so heißt das Element
for i =0 to oForm.count-1 'alle Elemente des Formulars durchlaufen
oFeld=oForm.getByIndex(i)
if oFeld.name=sOptionName then 'bis der Name des Elementes mit sOptionName übereinstimmt
if oFeld.state=1 then 'das merkierte Element hat State=1
iWert=oFeld.RefValue 'RefValue liefert den hinterlegten Referenzwert
sLabel=oFeld.Label 'angezeigter Name der Option
end if
end if
next
REM **** und die weitere Verarbeitung
msgBox sLabel + ": "+iWert
end sub
Re: Optionbutton Status abfragen
Verfasst: Mo, 03.08.2009 23:20
von komma4
clumsy hat geschrieben:Habe 2 Optionsfelder erstelltmit dem gleichen Namen "auswahl"
Das kannst Du nicht!
Jedes Kontrollelement muss einen eindeutigen Namen haben.
Und: Dein Code funktioniert (hier: 3.0.1/Linux)
Re: Optionbutton Status abfragen
Verfasst: Mo, 03.08.2009 23:33
von clumsy
komma4 hat geschrieben:clumsy hat geschrieben:Habe 2 Optionsfelder erstelltmit dem gleichen Namen "auswahl"
Das kannst Du nicht!
Jedes Kontrollelement muss einen eindeutigen Namen haben.
Und: Dein Code funktioniert (hier: 3.0.1/Linux)
Aber was hat das denn für einen Sinn?
Ich will doch bezwecken, dass nur ein Optionsbutton ausgewählt werden kann!
Wenn ich beiden einen anderen Namen gebe, dann können ja beide ausgewählt werden... Und das ist ja nicht mein Ziel
Der zweite Code den ich gepostet habe, sollte das doch schaffen.
Bloß schaffe ich es nicht ihn zu realisieren.
Vielleicht kann ja mal jemand ein Calc-Dokument mit dem 2. Code erstellen? Ich stehe gerade auf'n Schlauch...
Re: Optionbutton Status abfragen
Verfasst: Mo, 03.08.2009 23:42
von komma4
Ich habe es mit zwei Optionsschaltflächen in einem Dialog probiert.
Vor der Änderung Deines postings war nur ein Codestück vorhanden, und da hiess es myDialog - nicht Formular!
Zeichne ich (zwei) Optionsschaltflächen in einem Dialog (oder einem Gruppierungsrahmen) werden diese automatisch zu einer Gruppe verbunden, sodass nur eine der Schaltflächen aktiv sein kann.
Und mit einem Dialog funktioniert Dein (erster) Code.
Re: Optionbutton Status abfragen
Verfasst: Mo, 03.08.2009 23:58
von clumsy
Das Problem ist bloß, dass ich vom Programieren nicht viel Ahnung habe.
Diese Codes habe ich irgendwo gefunden und versuche sie für meinen speziellen Einsatz anzupassen.
Egal was ich mache, ich bekomme eine Fehlermeldung nach der anderen.
Und ein Beispiel mit 2 Optionsfeldern und einem passendem Makro sucht man im Netz auch vergebens.
Wenn mir hier keiner helfen kann, weiß ich auch nicht mehr weiter. Ich möchte doch nur eine Auswahl treffen können um darauf verschieden reagieren zu können. Das kann dochnicht so kompliziert sein.
Hier mal das Dokument um das es geht:
http://rapidshare.com/files/263391065/A ... wasser.ods
Ist Variante 1 ausgewählt, soll auf klick "Eintragen" die Zelle (10,i) schwarz ausgefüllt werden.
Ist Variante 2 ausgewählt, soll auf Klick "Eintragen" die Zelle (9,i) schwarz ausgefüllt werden.
Aber um das machen zu können, muss ich natürlich wissen welcher der beiden OptionButtons markiert ist...
Wenn ich das einmal heraus gefunden habe, sollte der Rest nicht mehr so schwer sein, oder?
Re: Optionbutton Status abfragen
Verfasst: Di, 04.08.2009 00:39
von komma4
Der Code im Modul Abfrage kann nicht laufen (die Variable oDialog ist nicht gesetzt).
Leider ist es nicht mit dem Kopieren von Fundstücken aus dem Netz getan - auch ist der Code bei Dialogen und Formularen (Du hast letzteres) unterschiedlich.
Ich muss jetzt ins Bett, vor morgen Mittag komme ich auch nicht mehr zum Nachsehen, wie das genau mit Optionsschaltern in Formularen geht.
Vielleicht kann Dir in der Zwischenzeit ein Kollege helfen...
Re: Optionbutton Status abfragen
Verfasst: Di, 04.08.2009 11:15
von clumsy
genau so was habe ich gesucht!
Ich werd mal versuchen den code zu verstehen...
Jetzt muss ich das nur noch in mein "Eintragen" -Code einbauen und die entsprechende Zelle schwarz ausfüllen lassen.
Das wird (für mich) sicherlich noch mal harte arbeit.
Kann ich aus diesem Code die Variable "i"...
Code: Alles auswählen
Sub Eintragen
oDocument = ThisComponent
oSheet = oDocument.Sheets.getByIndex(0)
oCellCursor = oSheet.createCursor()
'Gehe zur letzten benutzten Zeile
oCellCursor.GotoEndOfUsedArea(True)
'Index letzte Zeile auslesen
End_Row = oCellCursor.getRangeAddress.EndRow
'Schleife bis zur letzten benutzten Zeile +1
for i = 2 to End_Row +1
oRow_1 = oSheet.getCellByPosition(4,i).string
oRow_2 = oSheet.getCellByPosition(10,i).string
if oRow_1 = "" and oRow_2 = "" then
'Zellinhalte in nächste freie Zeile kopieren
Wert1 = oSheet.getCellByPosition(4,i)
Wert1.FormulaLocal = "=jetzt()"
Wert2 = oSheet.getCellByPosition(2,12).getValue()
oSheet.getCellByPosition(5,i).setValue(Wert2)
Wert3 = oSheet.getCellByPosition(2,13).getValue()
oSheet.getCellByPosition(6,i).setValue(Wert3)
Wert4 = oSheet.getCellByPosition(2,17).getValue()
oSheet.getCellByPosition(7,i).setValue(Wert4)
Wert5 = oSheet.getCellByPosition(2,18).getValue()
oSheet.getCellByPosition(8,i).setValue(Wert5)
Wert6 = oSheet.getCellByPosition(2,21).getValue()
oSheet.getCellByPosition(9,i).setValue(Wert6)
Wert7 = oSheet.getCellByPosition(2,25).getValue()
oSheet.getCellByPosition(10,i).setValue(Wert7)
Exit Sub
End if
Next i
End Sub
...an diesen Code übergeben?
Code: Alles auswählen
Sub Abfrage
oDoc = thisComponent
oController = oDoc.getCurrentController()
mySheet = oDoc.Sheets().getByName("Tabelle1")
oform = mySheet.drawpage.forms.getbyindex(0)
State_oControl = oForm.getByName("hcl").state
If State_oControl = 1 Then
oZelle=oDoc.Sheets(0).getCellByPosition(10,i)
oZelle.CellBackColor = &H000000
Else
oZelle=oDoc.Sheets(0).getCellByPosition(9,i)
oZelle.CellBackColor = &H000000
End if
End sub
Re: Optionbutton Status abfragen
Verfasst: Di, 04.08.2009 13:27
von clumsy
danke