Optionbutton Status abfragen

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

Moderator: Moderatoren

clumsy
**
Beiträge: 24
Registriert: So, 02.08.2009 15:17

Optionbutton Status abfragen

Beitrag 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
Zuletzt geändert von clumsy am Mo, 03.08.2009 23:25, insgesamt 1-mal geändert.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Optionbutton Status abfragen

Beitrag 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)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
clumsy
**
Beiträge: 24
Registriert: So, 02.08.2009 15:17

Re: Optionbutton Status abfragen

Beitrag 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...
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Optionbutton Status abfragen

Beitrag 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.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
clumsy
**
Beiträge: 24
Registriert: So, 02.08.2009 15:17

Re: Optionbutton Status abfragen

Beitrag 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?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Optionbutton Status abfragen

Beitrag 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...
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
clumsy
**
Beiträge: 24
Registriert: So, 02.08.2009 15:17

Re: Optionbutton Status abfragen

Beitrag 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
clumsy
**
Beiträge: 24
Registriert: So, 02.08.2009 15:17

Re: Optionbutton Status abfragen

Beitrag von clumsy »

danke
Antworten