Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Moderator: Moderatoren
Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Hallo Liste,
nach langem ergebnislosen Suchen wende ich mich nun an euch:
Ich habe in einer Adressverwaltung ein Formular auf einem Textdokument basieren. Jetzt sollen abhängig von bestimmten Schaltern Teile des Formulars ausgetauscht werden, um nicht mehrere Formulare verwenden zu müssen.
* OpenOffice 2.0.4
Zwei Möglichkeiten gäbe es:
1. Mehrere Formulare, die je nach Gegebenheit sichtbar gemacht werden
2. die einzelnen Kontrollfelder ansprechen
ersteres scheint, was ich bisher gefunden habe nicht zu gehen. Zweites sollte gehen, ist mir aber in Formularen bisher nicht gelungen - nur in Dialogen.
Folgendes funktioniert nicht:
Sub HideCtrlField
oDoc = ThisComponent
oCtrl=oDoc.getcurrentcontroller()
oForm = oDoc.DrawPage.Forms.GetByName("result")
oSubForm = oForm.GetByName("contacts")
oCtrl = oSubForm.GetByName("test")
oCtrl.Visible = 0
End Sub
Im englischsprachigen Forum hab ich das gefunden:
Sub Main
doc=thiscomponent
view=doc.getcurrentcontroller()
' first control on first form
oCtrl=doc.getdrawpage().getforms().getbyindex(0).getbyindex(0)
vCtrl = View.GetControl(form)
octrl.setvisible(false)
End Sub
der Code ist erstens comisch, zweites funktioniert er nicht.
setvisible(false) finde ich auch nirgends als Eigenschaft.
Wer kann mir helfen?
grüße laura
nach langem ergebnislosen Suchen wende ich mich nun an euch:
Ich habe in einer Adressverwaltung ein Formular auf einem Textdokument basieren. Jetzt sollen abhängig von bestimmten Schaltern Teile des Formulars ausgetauscht werden, um nicht mehrere Formulare verwenden zu müssen.
* OpenOffice 2.0.4
Zwei Möglichkeiten gäbe es:
1. Mehrere Formulare, die je nach Gegebenheit sichtbar gemacht werden
2. die einzelnen Kontrollfelder ansprechen
ersteres scheint, was ich bisher gefunden habe nicht zu gehen. Zweites sollte gehen, ist mir aber in Formularen bisher nicht gelungen - nur in Dialogen.
Folgendes funktioniert nicht:
Sub HideCtrlField
oDoc = ThisComponent
oCtrl=oDoc.getcurrentcontroller()
oForm = oDoc.DrawPage.Forms.GetByName("result")
oSubForm = oForm.GetByName("contacts")
oCtrl = oSubForm.GetByName("test")
oCtrl.Visible = 0
End Sub
Im englischsprachigen Forum hab ich das gefunden:
Sub Main
doc=thiscomponent
view=doc.getcurrentcontroller()
' first control on first form
oCtrl=doc.getdrawpage().getforms().getbyindex(0).getbyindex(0)
vCtrl = View.GetControl(form)
octrl.setvisible(false)
End Sub
der Code ist erstens comisch, zweites funktioniert er nicht.
setvisible(false) finde ich auch nirgends als Eigenschaft.
Wer kann mir helfen?
grüße laura
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
der Code aus dem engl. Forum ist nicht korrekt; Folgendes funktioniert hier (aber nicht, wenn das Formular im Entwurfsmodus ist!)
Code: Alles auswählen
Sub hideCtrlField
doc=thiscomponent
view=doc.getcurrentcontroller()
' first control on first form
' oCtrl=doc.getdrawpage().getforms().getbyindex(0).getbyindex(0)
' first form, control by name
oCtrl=doc.getdrawpage().getforms().getbyindex(0).getbyName( "erstes" )
vCtrl = View.GetControl(oCtrl)
vCtrl.setvisible(false)
End Sub
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)
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)
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Hi Komma4,
danke für die Antwort. Dein Code sieht definitiv besser aus
aber funktioniert bei mir leider nicht - im exakt gleichen Szenario. Fehler ist "Eigenschaft oder Methode nicht gefunden".
Sub hideCtrlField
doc=thiscomponent
view=doc.getcurrentcontroller()
oCtrl=doc.getdrawpage().getforms().getbyindex(0).getbyName( "name" )
' msgbox view.dbg_methods
vCtrl = View.GetControl(oCtrl)
vCtrl.setvisible(false)
End Sub
wenn ich mir versuche mit dbg_methods oder properties näheres zu view anzeigen zu lassen kommt übrigens die gleiche Fehlermeldung.
Ich versuch's dann mal mit oOO 2.2, vielleicht gab's da eine Veränderung. Oder hat noch jemand eine Idee?
grüße
laura
danke für die Antwort. Dein Code sieht definitiv besser aus

Sub hideCtrlField
doc=thiscomponent
view=doc.getcurrentcontroller()
oCtrl=doc.getdrawpage().getforms().getbyindex(0).getbyName( "name" )
' msgbox view.dbg_methods
vCtrl = View.GetControl(oCtrl)
vCtrl.setvisible(false)
End Sub
wenn ich mir versuche mit dbg_methods oder properties näheres zu view anzeigen zu lassen kommt übrigens die gleiche Fehlermeldung.
Ich versuch's dann mal mit oOO 2.2, vielleicht gab's da eine Veränderung. Oder hat noch jemand eine Idee?
grüße
laura
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Komisch, auch mit 2.2.1 (debian-Pakete von der oOO-Seite) funktioniert es bei mir nicht. Was ist anders?laura36 hat geschrieben:Ich versuch's dann mal mit oOO 2.2, vielleicht gab's da eine Veränderung.
grüße
laura
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Ich verstand nach Deinem ersten Posting: ein Formular in einem Writer-Dokument...korrekt?
Bei welcher Zeile kommt die Meldung?
Bei welcher Zeile kommt die Meldung?
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)
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)
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Hi Laura,
suchst Du sowas?
Jürgen
suchst Du sowas?
Code: Alles auswählen
Sub ButtonAusblenden
oDoc = thisComponent
oController = oDoc.getCurrentController()
oform=odoc.drawpage.forms.getbyindex(0)
oKontroll1 = oForm.getByName("PushButton1")' Name der Schaltfläche
oKView = oController.getControl(oKontroll1)
oKView.visible = false ' einschalten = true
End Sub
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
ich denke schon... damit wir uns sicher richtig verstehen: ein Writer-Dokument mit Drawpage und Forms und Subforms. Kein Calc-Dokument, kein Writer-Dokument im Datenbankcontainer...komma4 hat geschrieben:Ich verstand nach Deinem ersten Posting: ein Formular in einem Writer-Dokument...korrekt?
bei:komma4 hat geschrieben:
Bei welcher Zeile kommt die Meldung?
Code: Alles auswählen
vCtrl = View.GetControl(oCtrl)
Code: Alles auswählen
msgbox oCtrl.text
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Hi Komma, hi Jürgen,
vielen Dank, jetzt funktionieren beide Versionen. Ich komm nicht drauf, was ich beim ersten Versuch falsch gemacht hatte. Ich hab Jürgens Variante ausprobiert, hat geklappt, und dann ging die von Komma auch. Der Teufel versteht es. Am Ende war's ein blöder Tipfehler ...
Danke auf jeden Fall. Das ist genau das, was ich gesucht habe.
grüße
Laura
vielen Dank, jetzt funktionieren beide Versionen. Ich komm nicht drauf, was ich beim ersten Versuch falsch gemacht hatte. Ich hab Jürgens Variante ausprobiert, hat geklappt, und dann ging die von Komma auch. Der Teufel versteht es. Am Ende war's ein blöder Tipfehler ...
Danke auf jeden Fall. Das ist genau das, was ich gesucht habe.
grüße
Laura
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
laura36 hat geschrieben:[...]hab Jürgens Variante ausprobiert, hat geklappt, und dann ging die von Komma auch

Hattest Du vielleicht den Entwurfsmodus an....? Der Code versagte zunächst ja beim VIEW...., und der ist anders, wenn "Entwurf" aktiv ist.
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)
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)
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Hallo Zusammen,
@Winfried
Habe das gerade mal ausprobiert.
Aber die Hauptsache ist ja, dass es jetzt funktioniert.
Jürgen
@Winfried
Wenn der Entwurfmodus noch aktiv ist, dann passiert gar nichts. Es kommt auch keine Fehlermeldung.Hattest Du vielleicht den Entwurfsmodus an....? Der Code versagte zunächst ja beim VIEW...., und der ist anders, wenn "Entwurf" aktiv ist.
Habe das gerade mal ausprobiert.
Aber die Hauptsache ist ja, dass es jetzt funktioniert.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
-
- ***
- Beiträge: 65
- Registriert: Mo, 14.01.2008 19:31
Re: Unterformular bzw. Kontrollfeld verstecken / unsichtbar mac
Hallo,
habe gerade versucht den Code zu übernehmen. Habe es mit einem ImageButton probiert. Komischerweise wird der Button nicht unsichtbar sondern nur nicht mehr anklickbar?! ist das normal für visible false? Eigentlich sollte der Button doch ganz weg sein.
Danke!
habe gerade versucht den Code zu übernehmen. Habe es mit einem ImageButton probiert. Komischerweise wird der Button nicht unsichtbar sondern nur nicht mehr anklickbar?! ist das normal für visible false? Eigentlich sollte der Button doch ganz weg sein.
Danke!