16 ja nein abfragen mit Optionbutton

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: 16 ja nein abfragen mit Optionbutton

Re: 16 ja nein abfragen mit Optionbutton

von turtle47 » Sa, 01.11.2008 23:22

Hi Ibanez,
Ibanez hat geschrieben:Frage: wie geht das bei 16 Ja /16 Nein Optionbuttons im Dialog und den entsprechenden Checkboxen im Dokument (Tabelle)?
Schau Dir mal folgendes Beispiel an. Vielleicht hilft Dir das weiter.
Optionsbutton_ansprechen_1.odt
(11.55 KiB) 143-mal heruntergeladen
Gruss und viel Erfolg.

Jürgen

Re: 16 ja nein abfragen mit Optionbutton

von Ibanez » Fr, 31.10.2008 11:13

So ich habe mal etwas rum experimentiert und getestet, alles Ohne erfolg. Mein Code für die ersten 14 Abfragen:

Code: Alles auswählen

Sub ReadCheckBox1
	for i = 1 to 28
	Ckb = DLG.getControl("CheckBox" & i)
	oController = oDoc.getCurrentController()
	oForm = thisComponent.sheets(0).Drawpage.Forms(0)
	CtrlCheckBox = oForm.getByName("CheckBox" & i)
	CheckBox_State=CtrlCheckBox.state
	next i	
End Sub

Sub WriteFields1
	oDoc = thisComponent
	oController = oDoc.getCurrentController()
	oForm = thisComponent.sheets(0).Drawpage.Forms(0)

	for i = 1 to 28
	CtrlCheckBox = oForm.getByName("CheckBox" & i)
	CheckBox_State=CtrlCheckBox.state
	oKView = oController.getControl(CtrlCheckBox)
	Opt_Btn = DLG.getControl("OptionButton" & i)
	Opt_Btn.State=Opt_Btn.state
	MyControl.State = true/false
	Next i
End Sub
Der Dialog wir dangezeigt, bekomme keine Fehlermeldungen mehr, aber - die Cracks können es sich schon denken - es wird nichts aufs Dokument übertragen.
Ich habe bisher mit max 2 Checkboxen gearbeitet. Da wurde dann immer der Teil noch angehängt:

BEI READCHECKBOX

Code: Alles auswählen

if CheckBox1_State = 1 Then
opt_Btn_1.State = 1
end if
if CheckBox2_State = 1 Then
Opt_Btn_2.State = 1
UND BEI WRITEFIELDS

Code: Alles auswählen

if Opt_Btn_1_State = "True" then
CtrlCheckBox1.State= 1
CtrlCheckBox2.State= 0
End If
if Opt_Btn_2_State = "True" then
CtrlCheckBox1.State= 0
CtrlCheckBox2.State= 1
End If
if Opt_Btn_1_State = "False" and Opt_Btn_2_State = "False" Then
CtrlCheckBox1.State= 0
CtrlCheckBox2.State= 0
Frage: wie geht das bei 16 Ja /16 Nein Optionbuttons im Dialog und den entsprechenden Checkboxen im Dokument (Tabelle)?

Re: 16 ja nein abfragen mit Optionbutton

von Ibanez » Mo, 27.10.2008 10:09

turtle47 hat geschrieben:Hi Ibanez,

Meinst Du den Code von diesem Beitrag?
Zu dieser Frage: Nein. Ich bin der Meinung ich habe das was Du oben beschrieben hast (Optionsbutton im Dialog und im Dokument/Tablle) schonmal gesehen. Ein Ob es in diesem Forum war weiß ich nicht mehr. Der Frager wollte für sein Studium einen Fragebogen in einen Dialog packen, wobei er immer nur dichotome (Ja/Nein, richtig/Falsch, stimme zu/stimme nicht zu) Variablen abfragen wollte. Die Lösung seines Problems gab es auch, allerdings weiß icdh nicht mehr wo ich es gelesen habe, geschweige wie ich es gefunden habe.

Um es auf den Punkt zu bringen genau das suche ich. Einen Diaolog, der immer zu einer Frage zwei Antwortmöglichkeiten bietet und die Auswahl des Benutzers 1 zu 1 in meine Tabelle überträgt.

Re: 16 ja nein abfragen mit Optionbutton

von Ibanez » Mo, 27.10.2008 10:02

turtle47 hat geschrieben: Kannst Du mir mal ein Geheimnis verraten warum Du in Deinem Dokument Checkboxen anstelle von Optionsbuttons verwendest und dann mittels

Code: Alles auswählen

if CheckBox1_State = 1 and CheckBox2_State = 1 Then
   msgbox "Es sind zwei Auswahlmöglichkeiten markiert"& CHR(13)& "Bitte entscheiden sie sich nur für EINE AUSWAHL" ,48, "Grober Fehler!"
die getroffene Auswahl anmeckerst?

Diese Mehrfachauswahl ist kein grober Fehler sondern ganz normal. Wenn der User nur die Möglichkeit haben soll eine Auswahl zu treffen dann verwendet man eben Optionsbuttons. Oder aber Du setzt die zweite dazugehörige Checkbox

Code: Alles auswählen

enabled=False
Gruss Jürgen
Das hat eigentlich keinen besonderen Grund ich wollte mir einfach die Arbeit ersparen, eine bestehende Tabelle nochmal neu zu erstellen und "schnell" ein Dialogfenster mit entsprechender Zuweisung generieren. D.h. Optionsbuttons im Dialog werden in den entsprechenden Checkboxen in der Tabelle wiedergegeben. Da es aber manchmal so Schlaumeier (User) gibt, die sich einen Spaß daraus machen, den Diaolg zu umgehen und direkt in der Tabelle rumzuklicken und dann teilweise auch beide Kästchen makieren, fand ich diese "Fehlermeldeung" gar nicht so unnütz.

Meinst Du wirklich, dass es weniger Arbeit macht, die Tabelle neu anzulegen und mit OptionButton auszustaffieren?

Grüße
Ibanez

Re: 16 ja nein abfragen mit Optionbutton

von turtle47 » Fr, 24.10.2008 18:16

Hi Ibanez,
Ibanez hat geschrieben: ich bin der Meinung ich hätte das schonmal gelesen, jetzt beim Suchen aber nicht gefunden
Meinst Du den Code von diesem Beitrag?

Kannst Du mir mal ein Geheimnis verraten warum Du in Deinem Dokument Checkboxen anstelle von Optionsbuttons verwendest und dann mittels

Code: Alles auswählen

if CheckBox1_State = 1 and CheckBox2_State = 1 Then
   msgbox "Es sind zwei Auswahlmöglichkeiten markiert"& CHR(13)& "Bitte entscheiden sie sich nur für EINE AUSWAHL" ,48, "Grober Fehler!"
die getroffene Auswahl anmeckerst?

Diese Mehrfachauswahl ist kein grober Fehler sondern ganz normal. Wenn der User nur die Möglichkeit haben soll eine Auswahl zu treffen dann verwendet man eben Optionsbuttons. Oder aber Du setzt die zweite dazugehörige Checkbox

Code: Alles auswählen

enabled=False
Gruss Jürgen

16 ja nein abfragen mit Optionbutton

von Ibanez » Fr, 24.10.2008 09:34

Hi Forum,

ich bin der Meinung ich hätte das schonmal gelesen, jetzt beim Suchen aber nicht gefunden. Ich habe einen Dialog, der aus 32 Optionsbutton bestehen. Die ungeraden (OptionButton1,3,5,7,usw.) sind mit "Ja" beschriftet und die geraden (OptionButt2,4,6, usw.) mit "Nein". OptionsButton 1+2 gehören damit zusammen, 3+4 usw. In einer Excel Tabelle habe ich dementsprechend CheckBoxen Platziert.

Ich habe schon mal 2 OptionButton mit 2 CheckBoxen verknüpft, bin aber bei der diesmaligen Fülle der OptionButton der Meinung das es einfacher geht, nur bin ich noch nicht daruf gestoßen wie. Sonst habe ich immer diesen Code benutzt, den turtle47 mir mal übergeben hat.

Code: Alles auswählen

Dim myDialog as Object
Dim Opt_Btn_1_State as String
Dim Opt_Btn_2_State as String

Dim oDoc as Object
Dim oTextFieldMasters as Object
Dim Opt_Btn_1 as Object
Dim Opt_Btn_2 as Object

Sub Dlg1
	DialogLibraries.loadLibrary("Standard") 
	oForm = DialogLibraries.Standard.DLG
	myDialog = CreateUnoDialog(oForm)
	Opt_Btn_1 = myDialog.getControl("OptionButton1")
	Opt_Btn_2 = myDialog.getControl("OptionButton2")

	Read_Settings1
	myDialog.Dispose()
end Sub

Sub Read_Settings1
	oDoc = thisComponent
	oController = oDoc.getCurrentController()
	oform = odoc.drawpage.forms.getbyindex(0)	
	CtrlCheckBox1 = oForm.getByName("CheckBox1")
	CheckBox1_State=CtrlCheckBox1.state
	CtrlCheckBox2 = oForm.getByName("CheckBox2")
	CheckBox2_State=CtrlCheckBox2.state
	if CheckBox1_State = 1 and CheckBox2_State = 1 Then
	msgbox "Es sind zwei Auswahlmöglichkeiten markiert"& CHR(13)& "Bitte entscheiden sie sich nur für EINE AUSWAHL" ,48, "Grober Fehler!"
	Exit sub
	end if
	if CheckBox1_State = 1 Then
	Opt_Btn_1.State = 1
	end if
	if CheckBox2_State = 1 Then
	Opt_Btn_2.State = 1
	end if
End Sub

Sub Formularfelder_ansprechen1
	oDoc = thisComponent
	oController = oDoc.getCurrentController()
	oform = odoc.drawpage.forms.getbyindex(0)	
	CtrlCheckBox1 = oForm.getByName("CheckBox1")
	CheckBox1_State=CtrlCheckBox1.state
	oKView = oController.getControl(CtrlCheckBox1)
	CtrlCheckBox2 = oForm.getByName("CheckBox2")
	oKView = oController.getControl(CtrlCheckBox2)
	Opt_Btn_1 = myDialog.getControl("OptionButton1")
	Opt_Btn_1.State=Opt_Btn_1.state
	Opt_Btn_2 = myDialog.getControl("OptionButton2")
	Opt_Btn_2.State=Opt_Btn_2.state	
	if Opt_Btn_1.State = "True" then
	CtrlCheckBox1.State= 1
	CtrlCheckBox2.State= 0
	end if
	if Opt_Btn_2.State = "True" then
	CtrlCheckBox1.State= 0
	CtrlCheckBox2.State= 1
	end if
	if Opt_Btn_1.State = "False" and Opt_Btn_2_State = "False" then
	CtrlCheckBox1.State= 0
	CtrlCheckBox2.State= 0
	end if
	myDialog.endexecute()	
End Sub
Grüße
Ibanez

Nach oben