[gelöst] CheckBox aus Dialog ins Dokument übertragen

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: [gelöst] CheckBox aus Dialog ins Dokument übertragen

Re: CheckBox aus Dialog ins Dokument übertragen

von Ibanez » Mo, 22.09.2008 09:19

turtle47 hat geschrieben: Ich bin auch kein Spezialist auf diesem Gebiet und kann Dir manche Dinge auch nicht erklären.
:lol:
turtle47 hat geschrieben: Sicherlich kann man den Code anders aufbauen, was ich in dem angefügten Beispiel auch getan habe.
Der Code funktioniert! Ich bin sehr dankbar, du Nicht-Spezialist...

Grüße
Ibanez

Re: CheckBox aus Dialog ins Dokument übertragen

von turtle47 » Do, 18.09.2008 12:01

hawe hat geschrieben:(ohne das jetzt konkret mal getestet zu haben) wäre dagegen was einzuwenden?
Dann teste es doch mal und Du wirst merken, dass sich Basic teilweise etwas zickig verhält.

Ich bin auch kein Spezialist auf diesem Gebiet und kann Dir manche Dinge auch nicht erklären.

Sicherlich kann man den Code anders aufbauen, was ich in dem angefügten Beispiel auch getan habe.

Code: Alles auswählen

Dim myDialog ,oDoc,oform as Object

Sub Dlg_Prot31
	DialogLibraries.loadLibrary("Standard")
	oForm = DialogLibraries.Standard.Dialog1
	myDialog = CreateUnoDialog(oForm)
	myDialog.title = "Tests"
	for i = 9 to 10 'CheckBox 9 bis 10 (entsprechend erweitern)
	Ckb = myDialog.getControl("CB" & i)
	Ckb.Label = "getestet"
	oDoc = thisComponent
	oController = oDoc.getCurrentController()
	oform = odoc.drawpage.forms.getbyindex(0)
	CtrlCheckBox = oForm.getByName("CheckBox" & i) 'CeckBox im Formular ansprechen
	CheckBox_State = CtrlCheckBox.state	'Status auslesen
	Ckb.state = CheckBox_State 'Status Checkbox aus Formular im Dialog setzen
	next i
	myDialog.execute()
End Sub

Sub CB_Doc_Setzen
	for i = 9 to 10 'CheckBox 9 bis 10 (entsprechend erweitern)
	Ckb = myDialog.getControl("CB" & i) 'CeckBox-Status im Dialog ansprechen
	myState= Ckb.state 'CeckBox Status im Dialog auslesen
	CtrlCheckBox = oForm.getByName("CheckBox" & i)'CeckBox im Formular ansprechen
	CtrlCheckBox.state = myState 'Status CeckBox im Formular setzen
	next i
	myDialog.endexecute()
End Sub

Re: CheckBox aus Dialog ins Dokument übertragen

von hawe » Do, 18.09.2008 10:54

Hallo Jürgen,

mal schnell zwischen gefragt:
CtrlCheckBox9 = oForm.getByName("CheckBox9")
CheckBox9_State=CtrlCheckBox9.state
oKView = oController.getControl(CtrlCheckBox9)
Was bewirkt die Zuweisung an okView?
Wozu der Zwischenschritt den Status in Variable_State abzulegen?
Meine Denke würde das etwa so formulieren wollen

Code: Alles auswählen

CtrlCheckBox9 = oForm.getByName("CheckBox9")
Ckb_9 = myDialog.getControl("CB9")
CtrlCheckBox9.State = - (Ckb_9.State = "True")
(ohne das jetzt konkret mal getestet zu haben) wäre dagegen was einzuwenden?

Re: CheckBox aus Dialog ins Dokument übertragen

von turtle47 » Mi, 17.09.2008 19:44

Ibanez hat geschrieben:Irgendeine Idee wie ich das machen kann?
Ja, aber auf jeden Fall nicht so kompliziert. :wink:
Aber wahrscheinlich hat dich das genannte Beispiel auch etwas verwirrt. :?

Hier mal ein Beispiel mit zwei CheckBoxen.
Checkbox_ansprechen.odt
(10.77 KiB) 163-mal heruntergeladen
Viel Erfolg.

Jürgen

Re: CheckBox aus Dialog ins Dokument übertragen

von Ibanez » Mi, 17.09.2008 17:33

So jetzt habe ichs zumindestens geschafft, dass er die CheckBoxen im Formular ausliest. Zum besseren verständnis hier mein Code:

Code: Alles auswählen

Dim myDialog as Object
Dim Ckb_9_State as String
Dim Ckb_10_State as String
Dim Ckb_11_State as String
Dim Ckb_12_State as String

Dim oDoc as Object
Dim Ckb_9 as Object
Dim Ckb_10 as Object
Dim Ckb_11 as Object
Dim Ckb_12 as Object

Sub Dlg_Prot3
	DialogLibraries.loadLibrary("Standard") 
	oForm = DialogLibraries.Standard.Dlg_Prot3
	myDialog = CreateUnoDialog(oForm)
	myDialog.title = "Tests"
	Ckb_9 = myDialog.getControl("CB9")
	Ckb_9.model.Label = "getestet"
	Ckb_10 = myDialog.getControl("CB10")
	Ckb_10.model.Label = "getestet"
	Ckb_11 = myDialog.getControl("CB11")
	Ckb_11.model.Label = "getestet"
	Ckb_12 = myDialog.getControl("CB12")
	Ckb_12.model.Label = "getestet"

	Read_Settings3
	
	myDialog.execute()	
	myDialog.Dispose()
End Sub

Sub Read_Settings3
	oDoc = thisComponent
	oController = oDoc.getCurrentController()
	oform = odoc.drawpage.forms.getbyindex(0)
	Myctrl= oKView.model.State 
	CtrlCheckBox9 = oForm.getByName("CheckBox9")
	CheckBox9_State=CtrlCheckBox9.state
	CtrlCheckBox10 = oForm.getByName("CheckBox10")
	CheckBox10_State=CtrlCheckBox10.state
	CtrlCheckBox11 = oForm.getByName("CheckBox11")
	CheckBox11_State=CtrlCheckBox11.state
	CtrlCheckBox12 = oForm.getByName("CheckBox12")
	CheckBox12_State=CtrlCheckBox12.state
	if CheckBox9_State = 1 Then
	Ckb_9.State = 1
	end if
	if CheckBox10_State = 1 Then
	Ckb_10.State = 1
	end if
	if CheckBox11_State = 1 Then
	Ckb_11.State = 1
	end if
	if CheckBox12_State = 1 Then
	Ckb_12.State = 1
	end if
End Sub
Was nicht klapt, ist das die Änderungen, die ich im Dialog vornehme auf das Dokument übertragen werden. Irgendeine Idee wie ich das machen kann?

Code: Alles auswählen

Sub Formularfelder_ansprechen3
	oDoc = thisComponent
	oController = oDoc.getCurrentController()
	oform = odoc.drawpage.forms.getbyindex(0)	
	CtrlCheckBox9 = oForm.getByName("CheckBox9")
	CheckBox9_State=CtrlCheckBox9.state
	oKView = oController.getControl(CtrlCheckBox9)
	CtrlCheckBox10 = oForm.getByName("CheckBox10")
	oKView = oController.getControl(CtrlCheckBox10)
	CtrlCheckBox11 = oForm.getByName("CheckBox11")
	oKView = oController.getControl(CtrlCheckBox11)
	CtrlCheckBox12 = oForm.getByName("CheckBox12")
	oKView = oController.getControl(CtrlCheckBox12)
	Ckb_9 = myDialog.getControl("CB9")
	Ckb_9_State=Ckb_9.state
	Ckb_10 = myDialog.getControl("CB10")
	Ckb_10_State=Ckb_10.state	
	Ckb_11 = myDialog.getControl("CB11")
	Ckb_11_State=Ckb_11.state
	Ckb_12 = myDialog.getControl("CB12")
	Ckb_12_State=Ckb_12.state
	if Ckb_9_State = "True" then
	CtrlCheckBox9.State= 1
	End if
	if Ckb_10_State = "True" then
	CtrlCheckBox10.State= 1
	End if
	if Ckb_11_State = "True" then
	CtrlCheckBox11.State= 1
	End if
	if Ckb_12_State = "True" then
	CtrlCheckBox12.State= 1
	End if

	myDialog.endexecute()	
End Sub

Re: CheckBox aus Dialog ins Dokument übertragen

von Ibanez » Mi, 17.09.2008 15:29

Oh mann Jürgen,

wenn ich Dich nicht hätte. Du wirst lachen, aber ich habe mir die Beispieldatei sogar heruntergeladen. Bin mal gespannt wie ich das für mein Problem nutzen kann.

:D

Re: CheckBox aus Dialog ins Dokument übertragen

von turtle47 » Di, 16.09.2008 17:20

Hi Ibanez,
Ibanez hat geschrieben:bekomm es aber nicht hin
hast Du denn mal die Suchfunktion des Forums befragt? :wink:
Es ist noch gar nicht so lange her, da wurde das Thema schon einmal behandelt, sogar mit einer Beispieldatei. :lol:

Viel Erfolg.

Jürgen

[gelöst] CheckBox aus Dialog ins Dokument übertragen

von Ibanez » Di, 16.09.2008 15:41

Habe so was ähnliches schon mal gefargt, da ging es aber um Optionsbuttuns. Das Problem habe ich mit Jürgens tatkräftiger Unterstützung nun gelöst. Hänge aber nun an einem scheinbar einfacheren Problem :( bekomm es aber nicht hin.

Erklärung:
Ich habe ein Diaolgfenster (Abb.1) zusammengebaut bestehend feststehenden Textfeldern ("Patient"), variablen Textfeldern ("Nr.") und Checkboxen ("getestet"). In einem Dokument (Abb.2) habe ich ein Abbild dieses Dialogfensters. Da nicht jeder Patient getestet wird muss nicht hinter jeder Nr. ein Haken gesetzt werden. Kann aber. D.h. es jede CheckBox stellt in sich einen Ja/Nein auswahl dar. Je nachdem sind also alle Checkboxen mit Haken versehen, keine oder 1 (wie im Beispiel) oder 2, oder oder oder

Problem:
Egal was ich bisher angestellt habe, ich bekomme es nicht hin den Haken im Dialogfenster an die entsprechende Stelle im Dokument zu übertragen (im Beispiel hinter Patient 789123), geschweige denn überhaupt einen haken. Ich kann zwar im Dialog alles anklicken und der Haken erscheint, bestätige ich das ganze, erscheint jedoch kein Haken in der/den Checkbox(en) auf dem Dokument. Hoffe man versteht was ich meine :shock:

Bild
Abb.1
Bild
Abb.2

Nach oben