🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Formularfeld sichtbar schalten
Formularfeld sichtbar schalten
Hallo,
Ich möchte ein Formularfeld (das Tabellen-Steuerelement) mit einer umschaltbaren Schaltfläche sichtbar bzw unsichtbar schalten. Hier konnte ich erste Ansätze finden, leider komme ich aber jetzt nicht weiter: http://www.libreoffice-forum.de/viewtop ... 10&t=12591
Ich möchte ein Formularfeld (das Tabellen-Steuerelement) mit einer umschaltbaren Schaltfläche sichtbar bzw unsichtbar schalten. Hier konnte ich erste Ansätze finden, leider komme ich aber jetzt nicht weiter: http://www.libreoffice-forum.de/viewtop ... 10&t=12591
Re: Formularfeld sichtbar schalten
Hallo pingpong,
Das Formular heißt "Formular", das Tabellenkontrollfeld "Tabel". Damit habe ich das gerade erfolgreich geschafft.
Gruß
Robert
Code: Alles auswählen
SUB UnsichtbarAnAus
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oForm=oDrawpage.Forms.getByName("Formular")
oFeld=oForm.getByName("Tabel")
oDocCrl = ThisComponent.getCurrentController()
oCtlView = oDocCrl.GetControl(oFeld)
IF oCtlView.isVisible = false THEN
oCtlView.Visible=true
ELSE
oCtlView.Visible=false
END IF
END SUB
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formularfeld sichtbar schalten
Läuft seidenweich.
Vielen Dank!
Und ich wette, du schreibst im Kopf auch schnell ein Makro, wenn du den Mülleimer an die Straße stellen sollst
Und jetzt brauch ich das noch andersrum, d.h. beim Öffnen des Formulars ist das Tabellenfeld unsichtbar und erst wenn ich umschalte wird es sichtbar. Also habe ich die true und false vertauscht, passiert aber keine Änderung.
Vielen Dank!
Und ich wette, du schreibst im Kopf auch schnell ein Makro, wenn du den Mülleimer an die Straße stellen sollst

Und jetzt brauch ich das noch andersrum, d.h. beim Öffnen des Formulars ist das Tabellenfeld unsichtbar und erst wenn ich umschalte wird es sichtbar. Also habe ich die true und false vertauscht, passiert aber keine Änderung.
Re: Formularfeld sichtbar schalten
Hallo pingpong,
um das direkt beim Öffnen auf unsichtbar geschaltet zu haben musst Du das Makro nur mit oCtlView.Visible = false an das Öffnen des Formulars binden.
Da musst Du einmal testen, bei welcher Eigenschaft des Formulars das Tabellenkontrollfeld nicht wieder auftaucht. Vermutlich reicht es es, das Ereignis "Beim Laden" damit zu verbinden.
Gruß
Robert
um das direkt beim Öffnen auf unsichtbar geschaltet zu haben musst Du das Makro nur mit oCtlView.Visible = false an das Öffnen des Formulars binden.
Code: Alles auswählen
SUB UnsichtbarFormularstart
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oForm=oDrawpage.Forms.getByName("Formular")
oFeld=oForm.getByName("Tabel")
oDocCrl = ThisComponent.getCurrentController()
oCtlView = oDocCrl.GetControl(oFeld)
oCtlView.Visible=false
END SUB
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formularfeld sichtbar schalten
"beim Laden" war schon vergeben mit einem Makro für einen neuen Datensatz. Es läuft jetzt mit "vor dem Zurücksetzen" prima.
Re: Formularfeld sichtbar schalten
Hallo pinpong,
Du kannst Doch mehrere Makros an das gleiche Ereignis binden:
Aber wenn's so auch funktioniert ist das ja egal.
Gruß
Robert
Du kannst Doch mehrere Makros an das gleiche Ereignis binden:
Code: Alles auswählen
SUB BeimLadenAusfuehren
NeuerDatensatz 'Startet das Makro NeuerDatensatz.
UnsichtbarFormularstart 'Startet das Makro UnsichtbarFormularstart.
END SUB
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formularfeld sichtbar schalten
Hi,
ein kleiner Tipp:
das Tabellenkontrollfeld hat auf dem Reiter Allgemein die Eigenschaft "Sichtbar". Setzt man sie im Formularentwurfsmodus auf "Nein", ist das Feld beim Öffnen des Formulares ausgeblendet und kann dann mit diesem Makro über den Button wieder ein/ausgeblendet werden. So wird kein zusätzliches Makro benötigt.
HTH R
ein kleiner Tipp:
das Tabellenkontrollfeld hat auf dem Reiter Allgemein die Eigenschaft "Sichtbar". Setzt man sie im Formularentwurfsmodus auf "Nein", ist das Feld beim Öffnen des Formulares ausgeblendet und kann dann mit diesem Makro über den Button wieder ein/ausgeblendet werden. So wird kein zusätzliches Makro benötigt.
Code: Alles auswählen
Sub UnsichtbarAnAus
oForm = oDrawpage.Forms.getByName("Formular")
oFeld = oForm.getByName("Tabel")
IF oFeld.enableVisible = false THEN
oFeld.enableVisible = true
ELSE
oFeld.enableVisible = false
END IF
end sub
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formularfeld sichtbar schalten
Hallo R,
genau damit hatte ich das gestern erst noch probiert - und dann den anderen Weg zum Umschalten rausgesucht, weil irgendetwas nicht lief. Das Tabellenkontrollfeld blieb einfach sichtbar.
Jetzt gerade habe ich Deinen Code einfach noch einmal kopiert - tat's. Keine Ahnung, wo gestern der Haken war.
Gruß
Robert
genau damit hatte ich das gestern erst noch probiert - und dann den anderen Weg zum Umschalten rausgesucht, weil irgendetwas nicht lief. Das Tabellenkontrollfeld blieb einfach sichtbar.
Jetzt gerade habe ich Deinen Code einfach noch einmal kopiert - tat's. Keine Ahnung, wo gestern der Haken war.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formularfeld sichtbar schalten
Hallo Robert,
Gruß Rik
- die Eigenschaft des Models ist .enableVisible
- die Eigenschaft des Controls .visible
Gruß Rik
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formularfeld sichtbar schalten
Richtig gut! Das mit zwei oder mehr Makros wußte ich garnicht. Hat mich schonmal gestört, dass ich verschiedene Ereignisse wählen musste. Auf "hintereinanderhängen" bin ich garnicht gekommen. In meinem Hirn müssen wohl noch ein paar mehr Makrosynapsen wachsen Danke!
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.