🙏 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!🍀

❤️ DANKE >> << DANKE ❤️

>> 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

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
pingpong
Beiträge: 22
Registriert: Fr 4. Apr 2014, 04:45

Formularfeld sichtbar schalten

Beitrag von pingpong » Fr 18. Apr 2014, 18:02

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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Formularfeld sichtbar schalten

Beitrag von RobertG » Fr 18. Apr 2014, 19:50

Hallo pingpong,

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
Das Formular heißt "Formular", das Tabellenkontrollfeld "Tabel". Damit habe ich das gerade erfolgreich geschafft.

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

pingpong
Beiträge: 22
Registriert: Fr 4. Apr 2014, 04:45

Re: Formularfeld sichtbar schalten

Beitrag von pingpong » Fr 18. Apr 2014, 20:56

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 :lol:
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.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Formularfeld sichtbar schalten

Beitrag von RobertG » Fr 18. Apr 2014, 22:14

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.

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
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
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

pingpong
Beiträge: 22
Registriert: Fr 4. Apr 2014, 04:45

Re: Formularfeld sichtbar schalten

Beitrag von pingpong » Sa 19. Apr 2014, 06:07

"beim Laden" war schon vergeben mit einem Makro für einen neuen Datensatz. Es läuft jetzt mit "vor dem Zurücksetzen" prima.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Formularfeld sichtbar schalten

Beitrag von RobertG » Sa 19. Apr 2014, 09:40

Hallo pinpong,

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
Aber wenn's so auch funktioniert ist das ja egal.

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

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Formularfeld sichtbar schalten

Beitrag von F3K Total » Sa 19. Apr 2014, 09:46

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.

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
HTH R
Windows 11: AOO, LO Linux Mint: AOO, LO

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Formularfeld sichtbar schalten

Beitrag von RobertG » Sa 19. Apr 2014, 10:34

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
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

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Formularfeld sichtbar schalten

Beitrag von F3K Total » Sa 19. Apr 2014, 10:42

Hallo Robert,
  • die Eigenschaft des Models ist .enableVisible
  • die Eigenschaft des Controls .visible
Das was man auf dem Reiter Allgemein ändert, ist die Eigenschaft des Models.
Gruß Rik
Windows 11: AOO, LO Linux Mint: AOO, LO

pingpong
Beiträge: 22
Registriert: Fr 4. Apr 2014, 04:45

Re: Formularfeld sichtbar schalten

Beitrag von pingpong » Sa 19. Apr 2014, 12:11

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.



Antworten