🙏 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. 🤗
[Gelöst]Verknüpfte Formulare
-
- Beiträge: 22
- Registriert: Do 31. Okt 2013, 13:47
[Gelöst]Verknüpfte Formulare
Hallo wie mache ich Verknüpfte Formulare in Base.
In ACCESS - sorry ich war ein MS_Knecht - gab es die Möglichkeit verknüpfte Formulare zu erstellen.
Dies waren eigenständige Formulare, die über die Definition der Verknüpfung
von: Tabelle, Feldname
nach: Tabelle, Feldname
geladen wurden. Dort konnten dann die Daten bearbeitet werden.
Es wurden eben nur die Daten angezeigt. die zutrafen.
Beispiel:
Tabelle Stammdaten
ID
Name
VOrname
Strasse
...
Tabelle Abteilung
ID
ID_Stammdaten
Abteilung
Verknüpfung von Tabelle Stammdaten Feld ID
MIT
Tabelle Abteilung Feld ID_Stammdaten
öffnet ein neues Formular das nur die Abteilungsdaten des in ID und ID_Stammdaten stehenden Mitgliedes anzeigt.
Gibt es sowas in LO auch.
Ich bin wahrscheinlich blind und finde diese Möglichkeit nicht
Danke im Voraus für Eure Hilfe
In ACCESS - sorry ich war ein MS_Knecht - gab es die Möglichkeit verknüpfte Formulare zu erstellen.
Dies waren eigenständige Formulare, die über die Definition der Verknüpfung
von: Tabelle, Feldname
nach: Tabelle, Feldname
geladen wurden. Dort konnten dann die Daten bearbeitet werden.
Es wurden eben nur die Daten angezeigt. die zutrafen.
Beispiel:
Tabelle Stammdaten
ID
Name
VOrname
Strasse
...
Tabelle Abteilung
ID
ID_Stammdaten
Abteilung
Verknüpfung von Tabelle Stammdaten Feld ID
MIT
Tabelle Abteilung Feld ID_Stammdaten
öffnet ein neues Formular das nur die Abteilungsdaten des in ID und ID_Stammdaten stehenden Mitgliedes anzeigt.
Gibt es sowas in LO auch.
Ich bin wahrscheinlich blind und finde diese Möglichkeit nicht
Danke im Voraus für Eure Hilfe
Zuletzt geändert von gerald3659 am Fr 25. Jul 2014, 12:21, insgesamt 1-mal geändert.
Re: Verknüpfte Formulare
Ich nehme an, Du beziehst Dich auf das Base-Modul - erstelle ein Formular mit dem Formular-Assistenten, in Schritt 2 gibt's die Option ein "Unterformular" hinzuzufügen - das sollte es dann sein ... oder?
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
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
-
- Beiträge: 22
- Registriert: Do 31. Okt 2013, 13:47
Re: Verknüpfte Formulare
Ja, es betrifft das Base-Modul
Neun, Unterformular hinzufügen ist es nicht.
Das heisst, dass ich in dem Formular eine Subform erstelle.
Ich hätte jedoch gerne dass das Formular über eine Schaltfläche aufgerufen wird, aufpopt und die ID aus dem Formular Stammdaten übernimmt mit der zugehörigen ID in der zweiten Tabelle verknüpft, so dass ich Werte eintragen und speichern kann. Nach dem Speichern soll das Formular geschlossen werden. Ein anderes Formular wird mit einer Schaltfläche aufgerufen und so weiter.
Gruß
Gerald
Neun, Unterformular hinzufügen ist es nicht.
Das heisst, dass ich in dem Formular eine Subform erstelle.
Ich hätte jedoch gerne dass das Formular über eine Schaltfläche aufgerufen wird, aufpopt und die ID aus dem Formular Stammdaten übernimmt mit der zugehörigen ID in der zweiten Tabelle verknüpft, so dass ich Werte eintragen und speichern kann. Nach dem Speichern soll das Formular geschlossen werden. Ein anderes Formular wird mit einer Schaltfläche aufgerufen und so weiter.
Gruß
Gerald
Re: Verknüpfte Formulare
doch - glaub' mir - Du brauchst ein Unterformular 
Das von Dir beschriebene Verhalten kann man natürlich mit Makros realisieren - ich schätze 10-20 Zeilen würden reichen. Wenn Du noch nie mit Starbasic gearbeitet hast, und das das einzige Mal ist, dass Du eins brauchst, zahlt es sich aber nicht wirklich aus damit anzufangen.
Mit reinen Bordmitteln von LO lässt sich das was Du willst leider nicht umsetzen.

Das von Dir beschriebene Verhalten kann man natürlich mit Makros realisieren - ich schätze 10-20 Zeilen würden reichen. Wenn Du noch nie mit Starbasic gearbeitet hast, und das das einzige Mal ist, dass Du eins brauchst, zahlt es sich aber nicht wirklich aus damit anzufangen.
Mit reinen Bordmitteln von LO lässt sich das was Du willst leider nicht umsetzen.
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
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
-
- Beiträge: 22
- Registriert: Do 31. Okt 2013, 13:47
Re: Verknüpfte Formulare
Das wird für mich eine Art Musterdatenbank, die ich für mehrere Projekte nutzen will.
Da muss ich schon an Starbasic ran.
Vor allem wäre es wichtig, ob und wo ich etwas in tags also Zusatzdaten eintragen muss und wie das funktioniert.
Komme nun mal (sorry) von vba und M$ Access
Habe aber M$ bei mir rausgeworfen und bin nun af ubuntu-Linux umgestiegen
Da muss ich schon an Starbasic ran.
Vor allem wäre es wichtig, ob und wo ich etwas in tags also Zusatzdaten eintragen muss und wie das funktioniert.
Komme nun mal (sorry) von vba und M$ Access
Habe aber M$ bei mir rausgeworfen und bin nun af ubuntu-Linux umgestiegen
Re: Verknüpfte Formulare
Schau Dir mal die DB im Anhang an. Ich hab' da ein abgespecktes 50-Zeilen-Makro reinkopiert wie wir es verwenden, um über die Eigenschaft "Zusatzinformation" des Buttons ein gefiltertes Formular zu öffnen.
Den Button kannst Du in dieser Datenbank in jedes andere Formular kopieren, er wird immer funktionieren, wenn Du den Text in der "Zusatzinformation" sinnvoll änderst.
Das 2. Makro ("Childs_gefiltert_oeffnen") macht genau das was das erste Makro auch macht, nur ist es hart gecodet, d.h. wenn Du diesen Button in einem anderen Formular verwendest wird's nicht funktionieren. Dafür hat dieses Makro nur 6 ausführende Zeilen (es könnte sogar noch eine weniger sein, aber dann ist's nur mehr unübersichtlich
)
Ein Wort noch zu den Schließen-Buttons. Diese lösen KEIN Makro aus, sondern einen .uno-Befehl (.uno:CloseDoc). Dazu muss man unter "Aktion" "Dokument/Website öffnen" einstellen, und unter URL ".uno:CloseDoc". Auch diesen Button kannst Du überallhin kopieren, er wird immer das Formular schließen in dem er sich befindet.
Den Button kannst Du in dieser Datenbank in jedes andere Formular kopieren, er wird immer funktionieren, wenn Du den Text in der "Zusatzinformation" sinnvoll änderst.
Das 2. Makro ("Childs_gefiltert_oeffnen") macht genau das was das erste Makro auch macht, nur ist es hart gecodet, d.h. wenn Du diesen Button in einem anderen Formular verwendest wird's nicht funktionieren. Dafür hat dieses Makro nur 6 ausführende Zeilen (es könnte sogar noch eine weniger sein, aber dann ist's nur mehr unübersichtlich

Ein Wort noch zu den Schließen-Buttons. Diese lösen KEIN Makro aus, sondern einen .uno-Befehl (.uno:CloseDoc). Dazu muss man unter "Aktion" "Dokument/Website öffnen" einstellen, und unter URL ".uno:CloseDoc". Auch diesen Button kannst Du überallhin kopieren, er wird immer das Formular schließen in dem er sich befindet.
- Dateianhänge
-
- Formularnavigation.odb.zip
- weiter hinten gibt's eine verbesserte Version!
- (14.37 KiB) 271-mal heruntergeladen
Zuletzt geändert von gogo am Fr 8. Nov 2013, 12:10, insgesamt 1-mal geändert.
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
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
-
- Beiträge: 22
- Registriert: Do 31. Okt 2013, 13:47
Re: Verknüpfte Formulare
Hallo Gogo
das sieht schon recht gut aus,
ich werde es heute abend zuhause ausprobieren.
Ich habe nur die Frage:
"Wie sieht es aus, wenn das Child-formular ein Grid enthält. Muss ich dann auch splitten mit dem @?
Denn meistens handelt es sich bei meinen EInträgen in der Zweittabelle um 1:n Beziehungen. Und die sollen alle direkt sichtbar sein
Danke für Deine Hilfe
das sieht schon recht gut aus,
ich werde es heute abend zuhause ausprobieren.
Ich habe nur die Frage:
"Wie sieht es aus, wenn das Child-formular ein Grid enthält. Muss ich dann auch splitten mit dem @?
Denn meistens handelt es sich bei meinen EInträgen in der Zweittabelle um 1:n Beziehungen. Und die sollen alle direkt sichtbar sein
Danke für Deine Hilfe
Re: Verknüpfte Formulare
jein - für die Anzeige des untergeordneten Formulars hängt nicht, aber du musst folgende Zeile anpassen:
Denn das Kontrollelement "fmtID_Parent" gibt's dann nur im Grid, d.h. Du müsstest es mit
aufrufen. Diesen Teil des Makros muss man sowieso ändern, denn in einem anderen Formular heißt das Feld ja auch anders - hab' ich gestern gar nicht bemerkt
Beachte auch, dass der Default-Wert des Feldes per .EffectiveDefault eingestellt wird, der einer numerischenSpalte im Grid aber mit .DefaultValue, einem Textfeld im Grid wird mit .DefaultText ein Standart-Text zugewiesen ... das muss also recht individuell eingestellt werden - am besten eine Select-Anweisung die mit .PropertySetInfo.hasPropertyByName("DefaultValue") etc. alle bekannten Default-Zuweisungsmöglichkeiten abarbeitet und im Erfolgsfall dann den Wert setzt!
Wenn man das NICHT macht, dann wird beim Erfassen eines neuen Datensatzes sicher nicht der richtige Foreign Key verwendet. Bei einem Unterformular würde der richtige Wert verwendet!
Code: Alles auswählen
oFormNeu.getbyname("fmtID_Parent").EffectiveDefault = FilterWert
Code: Alles auswählen
oFormNeu.getbyname("Childs_Grid").getbyname("fmtID_Parent").DefaultValue

Beachte auch, dass der Default-Wert des Feldes per .EffectiveDefault eingestellt wird, der einer numerischenSpalte im Grid aber mit .DefaultValue, einem Textfeld im Grid wird mit .DefaultText ein Standart-Text zugewiesen ... das muss also recht individuell eingestellt werden - am besten eine Select-Anweisung die mit .PropertySetInfo.hasPropertyByName("DefaultValue") etc. alle bekannten Default-Zuweisungsmöglichkeiten abarbeitet und im Erfolgsfall dann den Wert setzt!
Wenn man das NICHT macht, dann wird beim Erfassen eines neuen Datensatzes sicher nicht der richtige Foreign Key verwendet. Bei einem Unterformular würde der richtige Wert verwendet!
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
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
-
- Beiträge: 22
- Registriert: Do 31. Okt 2013, 13:47
Re: Verknüpfte Formulare
Hallo Gogo
Erst mal danke für die schnelle Änderung der Zeile.
Du sprichts von einer select case anweisung in deinem letzten Post
Um das Makro universell zu nutzen sollte sowas möglich sein? Doch wie ermittele ich den Name der Schalftfläche?
Da ich mich noch nicht so oft mit Starbasic befasst habe weiss ich nicht ob die Syntax richtig ist. Aber in der Struktur denke ich sollte es passen. Oder?
Erst mal danke für die schnelle Änderung der Zeile.
Du sprichts von einer select case anweisung in deinem letzten Post
Code: Alles auswählen
oFormNeu.getbyname("Childs_Grid").getbyname("fmtID_Parent").DefaultValue
Code: Alles auswählen
dim ButtonName
dim GridName
select case
case buttonname="Btn_Abteilung"
GridName="AbteilungGrid"
case buttonname="Btn_Funktion"
GridName="FunktionGrid"
endcase
oFormNeu.getbyname(Gridname).getbyname("fmtID_Parent").DefaultValue
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.