gefiltertes Formular auf Basis Listenfeld eines anderen Form

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

mgo
Beiträge: 9
Registriert: Mi, 31.10.2012 15:10

gefiltertes Formular auf Basis Listenfeld eines anderen Form

Beitrag von mgo »

Hi,

ich habe folgende Datenbanksituation (LibreOffice 3.6):
Tabelle 1:Artikel: Hersteller-ID und verschiedene Kenndaten
Tabelle 2: Herstellerstammdaten

Beide Tabellen sind mit einander verknüpft (ID des Herstellers mit dem Feld "Hersteller" in der Artikeltabelle.

jetzt möchte ich im Formular mit den Artikeln mittels Button ein neues Formular aufmachen, in dem die Stammdaten des Herstellers angezeigt/editierbar sind (Der Hersteller wird mittels Listenfeld ausgewählt). Genauso umgekehrt: Also im Formular mit den Herstellerstammdaten per Button ein Formular aufmachen, dass die gefilterten Artikel beinhaltet, die dem Hersteller zugeordnet sind.

Leider habe ich im Netz nur Lösungen gefunden die dieses Problem mit einem Subformular lösen. Diese Lösung ist aber für meinen Zweck nicht brauchbar (Platzproblem) und meinem Auftraggeber gefällts auch nicht :-(.

Hat jemand von euch eine Idee dazu?

lg Michi
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: gefiltertes Formular auf Basis Listenfeld eines anderen

Beitrag von juetho »

Die Diskussion Parameter von Formular an Formular übergeben sollte dir helfen. Der Zugriff auf das andere Formular durch form.open funktioniert unabhängig davon, ob es schon geöffnet ist oder erst geladen werden muss. Lediglich reload muss ggf. zusätzlich ausgelöst werden. Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
mgo
Beiträge: 9
Registriert: Mi, 31.10.2012 15:10

Re: gefiltertes Formular auf Basis Listenfeld eines anderen

Beitrag von mgo »

Hi,

ja, hat funtioniert. Vielen Dank!
Für alle die es brauchen können:

Code: Alles auswählen

Sub Artikel_eines_Herstellers_oeffnen
	oForm = ThisComponent.Drawpage.Forms.Hersteller
	nID = oForm.getint(1)	'Spalte 1 ist die Hersteller-ID in der Hersteller-Tabelle
	newForms = thisDatabaseDocument.FormDocuments.getByName("Artikel").open 'Formular Artikel öfnen
	newForm = newForms.drawpage.forms.Artikel 'Formularname innerhalb des Formulars
	newForm.Filter = "Artikel.Hersteller = " +  nID 'Filter damit nur der eine Hersteler angezeigt wird
	newForm.reload()
end sub
lg Michi
Antworten