🙏 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. 🤗

[Gelöst]Verknüpfte Formulare

Alles zur Programmierung im LibreOffice.
gerald3659
Beiträge: 22
Registriert: Do 31. Okt 2013, 13:47

[Gelöst]Verknüpfte Formulare

Beitrag von gerald3659 » Do 31. Okt 2013, 14:04

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
Zuletzt geändert von gerald3659 am Fr 25. Jul 2014, 12:21, insgesamt 1-mal geändert.

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

Re: Verknüpfte Formulare

Beitrag von gogo » Fr 1. Nov 2013, 10:57

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

gerald3659
Beiträge: 22
Registriert: Do 31. Okt 2013, 13:47

Re: Verknüpfte Formulare

Beitrag von gerald3659 » Mi 6. Nov 2013, 09:40

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

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

Re: Verknüpfte Formulare

Beitrag von gogo » Mi 6. Nov 2013, 13:13

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

gerald3659
Beiträge: 22
Registriert: Do 31. Okt 2013, 13:47

Re: Verknüpfte Formulare

Beitrag von gerald3659 » Mi 6. Nov 2013, 18:04

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

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

Re: Verknüpfte Formulare

Beitrag von F3K Total » Mi 6. Nov 2013, 18:58

Hi,
schau mal hier.
HTH
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

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

Re: Verknüpfte Formulare

Beitrag von gogo » Mi 6. Nov 2013, 22:27

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

gerald3659
Beiträge: 22
Registriert: Do 31. Okt 2013, 13:47

Re: Verknüpfte Formulare

Beitrag von gerald3659 » Do 7. Nov 2013, 11:50

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

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

Re: Verknüpfte Formulare

Beitrag von gogo » Do 7. Nov 2013, 23:53

jein - für die Anzeige des untergeordneten Formulars hängt nicht, aber du musst folgende Zeile anpassen:

Code: Alles auswählen

oFormNeu.getbyname("fmtID_Parent").EffectiveDefault = FilterWert
Denn das Kontrollelement "fmtID_Parent" gibt's dann nur im Grid, d.h. Du müsstest es mit

Code: Alles auswählen

oFormNeu.getbyname("Childs_Grid").getbyname("fmtID_Parent").DefaultValue
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 :oops:

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

gerald3659
Beiträge: 22
Registriert: Do 31. Okt 2013, 13:47

Re: Verknüpfte Formulare

Beitrag von gerald3659 » Fr 8. Nov 2013, 10:17

Hallo Gogo
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
Um das Makro universell zu nutzen sollte sowas möglich sein? Doch wie ermittele ich den Name der Schalftfläche?

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


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