Seite 1 von 1
[gelöst] CheckBox aus Dialog ins Dokument übertragen
Verfasst: Di, 16.09.2008 15:41
von Ibanez
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
Abb.1
Abb.2
Re: CheckBox aus Dialog ins Dokument übertragen
Verfasst: Di, 16.09.2008 17:20
von turtle47
Hi Ibanez,
Ibanez hat geschrieben:bekomm es aber nicht hin
hast Du denn mal die Suchfunktion des Forums befragt?
Es ist noch gar nicht so lange her, da wurde das
Thema schon einmal behandelt, sogar mit einer
Beispieldatei.
Viel Erfolg.
Jürgen
Re: CheckBox aus Dialog ins Dokument übertragen
Verfasst: Mi, 17.09.2008 15:29
von Ibanez
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.

Re: CheckBox aus Dialog ins Dokument übertragen
Verfasst: Mi, 17.09.2008 17:33
von Ibanez
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
Verfasst: Mi, 17.09.2008 19:44
von turtle47
Ibanez hat geschrieben:Irgendeine Idee wie ich das machen kann?
Ja, aber auf jeden Fall nicht so kompliziert.
Aber wahrscheinlich hat dich das genannte Beispiel auch etwas verwirrt.
Hier mal ein Beispiel mit zwei CheckBoxen.
Viel Erfolg.
Jürgen
Re: CheckBox aus Dialog ins Dokument übertragen
Verfasst: Do, 18.09.2008 10:54
von hawe
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
Verfasst: Do, 18.09.2008 12:01
von turtle47
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
Verfasst: Mo, 22.09.2008 09:19
von Ibanez
turtle47 hat geschrieben:
Ich bin auch kein Spezialist auf diesem Gebiet und kann Dir manche Dinge auch nicht erklären.
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