❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ 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. 🤗

[gelöst]Aus Formular Infofenster öffnen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Aus Formular Infofenster öffnen

Beitrag von gogo » Do 28. Jan 2016, 18:50

so etwa?

Formular1 öffnen, Klick auf Button "Details" öffnet Formular2 und setzt dort einen Filter:

Code: Alles auswählen

Sub FormMitFilterOeffnen(oEvent)

oForm1    = oEvent.Source.Model.Parent
String_ID = oForm1.getbyname("MainForm_Grid").getbyname("ID_1").Text
if String_ID = "" then if msgbox("Keine ID gefunden! Bitte einen gueltigen gespeichertne Datensatz asuwaehlen!") then exit sub

sFilter   = "ID_2 = " & String_ID
msgbox "Der Filter der im Formular gesetzt wird lautet:" & chr(10) & sFilter

oFrom2 = ThisDatabaseDocument.FormDocuments.getbyname("Formular2").open
oFrom2.DrawPage.Forms.getbyname("MainForm").filter = sFilter
oFrom2.DrawPage.Forms.getbyname("MainForm").reload

end sub
Dateianhänge
Test_Form_oeffnen.zip
(14.4 KiB) 118-mal heruntergeladen
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Aus Formular Infofenster öffnen

Beitrag von gogo » Di 2. Feb 2016, 10:07

Du musst ein Reload auslösen - so wie in Deinem Makro, nur eben in dem Fomular das Du aktuell haben willst

Code: Alles auswählen

...
oForm2.DrawPage.Forms.getbyname("SubF_Kont").reload
...
Solltest Du das oForm2 von oForm1 aus aktualisieren wollen, so musst Du oForm2 in einer globalen Variable speichern, dann kannst Du auch nach Beendigung des Makros noch mal darauf zugreifen

Code: Alles auswählen

GLOBAL oForm2

SUB openFormMitFilter(oEvent)
DIM oForm1 AS OBJECT
' DIM oForm2 AS OBJECT <<< STREICHEN!!!
...
cSQLFltStr = "vid_pers = " & cStrID
if NOT isobject(oForm2) then
	oForm2 = ThisDatabaseDocument.FormDocuments.getbyname("901-Kontakte").open
end if
oForm2.DrawPage.Forms.getbyname("SubF_Kont").filter = cSQLFltStr
oForm2.DrawPage.Forms.getbyname("SubF_Kont").reload
end sub
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Aus Formular Infofenster öffnen

Beitrag von gogo » Di 2. Feb 2016, 21:42

ja - das ist so - wenn der FK nicht eingetragen ist, dann wird's nicht funktionieren :ugeek:

Also, entweder den FK händisch mit-erfassen, (kann man ja per Listenfeld machen, damit man sich keine Nummern merken muss) oder vermutlich eleganter mittels einer Haupt-Unterformular-Konstruktion.
Dabei hast Du in Formular2 ein Hauptformular mit der Tabelle1 und ein Unterformular mit Tabelle3 Verknüpft wird von Tabelle1.ID_1 zu Tabelle3.VID_1, also auf den FK in Tabelle3
Den Filter setzt Du dann im Hauptformular (ID_1 aus Formular1 = ID_1 im Hauptformular), somit werden
1. im Unterformular nur die korrespondierenden Sätze aus Tabelle3 angezeigt und
2. der FK automatisch gesetzt (Bordmittel von LO, da braucht man gar nichts weiter zu tun)

Ich habe im angehängten zip das "Formular2_HF_UF" so wie geschildert zusammengestöpselt.
Dateianhänge
Test_Form_oeffnen3.zip
(24.28 KiB) 119-mal heruntergeladen
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

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

Re: Aus Formular Infofenster öffnen

Beitrag von F3K Total » Di 2. Feb 2016, 22:29

Hi,
anbei ein Beispiel (Test_Form_oeffnen.zip), die aktuelle ID wird in der einzeiligen Filtertabelle zwischengespeichert.
Dann per Formularverknüpfung an das Unterformular übergeben, so dass sie zur Erstellung neuer Datensätze gesetzt ist.

Gruß R

Edit: Variante 2 (Test_Form_oeffnen2.zip)zugefügt, die aktuelle ID wird schon im ersten Formular gespeichert, dann flackert das zweite beim öffnen nicht.
Edit2:ups, hatte gestern abend gar nicht gemerkt dass gogo auch schon eine entsprechend ähnliche Lösung geschrieben hat.
Trotzdem lasse ich mal meine stehen, denn der Zugriff auf die Daten ist jeweils ein anderer. Während gogo die ID_1 aus der Spalte des Tabellenkontrollfeldes ausliest, werden in meiner Variante die Daten direkt aus dem Formular gelesen, und auch so gespeichert. Funktioniert beides.
Dateianhänge
Test_Form_oeffnen2.zip
(16.17 KiB) 113-mal heruntergeladen
Test_Form_oeffnen.zip
(16.42 KiB) 108-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO


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