Abhängigkeit von Listenfelder

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Dome2107

Abhängigkeit von Listenfelder

Beitrag von Dome2107 » Do, 14.01.2016 09:21

Hallo,
Ich möchte ein Formular erstellen um einen Bestellvorgang zu managen.
Es soll zum Beispiel ein Artikel ausgewählt werden und im zweiten Listenfeld soll dann die dazugehörige Größe angezeigt und ausgewählt werden.
1. Jacke Herren 2. S, M, L, oder 1. Jacke Kinder 2. 8,10,12.

Wie bekomme ich es hin das sich das zweite Listenfeld dem ersten anpasst, sodass ich bei Kinder nicht xl auswählen kann sondern nur, 8,10,12.

Werde deswegen noch verrückt.

Danke schonmal für eure Hilfe!

Achja formular wird in OpenOffice writer erstellt, Datenbank in Base

RobertG
*******
Beiträge: 1735
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abhängigkeit von Listenfelder

Beitrag von RobertG » Do, 14.01.2016 17:38

Hallo Dome2107,

voneinander abhängige Listenfelder kannst Du nur mit Zuhilfenahme von Makros erstellen. Einfacher hingegen ist eine Lösung über Formulare und Tabellenkontrollfelder: Dann steht in einem Formular ein Tabellenkontrollfeld für z.B. Herren, Damen, Kinder - im Unterformular ein Tabellenkontrollfeld mit den Größen, die über die Tabelle den jeweiligen Personen zugeordnet sind.

Wenn es mit Makros gehen darf, dann solltest Du wissen, dass die jeweiligen Eingaben irgendwo gespeichert werden müssen, damit der Code für die Listenfelder durch die entsprechenden Eingaben eingeschränkt werden kann. Folgendes Beispiel läuft bei mir mit einer Tabelle, die als Filtertabelle aus einem Datensatz (mit unterschiedlichsten Feldern) besteht:

Code: Alles auswählen

SUB UpdateField(oEvent AS OBJECT)
	oField = oEvent.Source.Model
	stTag = oField.Tag
	oForm = oField.parent
	oField.commit()
	oForm.updateRow()
	oForm2 = oForm.parent.getByName("Buchungen")
	aList() = Split(stTag, ";")
	FOR i = LBound(aList()) TO UBound(aList())
		oForm.getByName(aList(i)).refresh()
	NEXT
	oForm.reload()
	oForm2.reload()
END SUB
In den Zusatzinformationen des Listenfeldes wird eingetragen, welche anderen Listenfelder nach der Eingabe neu eingelesen werden. Das Feld übergibt den Wert an das Formular, das Formular wird abgespeichert. Alle durch ein Semikolon in den Zusatzinfos eingetragenen Felder werden aktualisiert, das Formular neu geladen. oForm2 ist ein Formular, das nach diesen Werten gefiltert wird - den Code dafür kannst Du also getrost raus lassen.

Gruß

Robert

Dome2107

Re: Abhängigkeit von Listenfelder

Beitrag von Dome2107 » Fr, 15.01.2016 10:03

Hallo,

es soll ein PDF Formular werden, kann ich da auch mit Makros arbeiten?


Grüße Und Danke

RobertG
*******
Beiträge: 1735
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abhängigkeit von Listenfelder

Beitrag von RobertG » Fr, 15.01.2016 15:45

Hallo Dome2107,

hast Du schon einmal versucht, auch nur ein einfachstes PDF-Formular zu erstellen, das einen Zugriff auf eine Base-Datenbank ermöglicht? Ich wüsste nicht, wie so etwas funktionieren sollte. PDF-Formulare ermöglichen die Speicherung eines Datensatzes in der eigenen Datei, indem ein *.pdf-Dokument über "Speichern unter" neu abgelegt wird. Die Daten können ausgelesen und anschließend über ein Makro nach Base eingelesen werden - aber das ist sicher nicht das, was Dir vorschwebt.

Warum möchtest Du, dass es ein PDF-Formular werden soll?

Gruß

Robert

ktanrive1

Re: Abhängigkeit von Listenfelder

Beitrag von ktanrive1 » Fr, 08.07.2016 10:28

Hallo RobertG,

Die Variante über Formular Steuerlementen würde mich interessieren. Ich habe das selbe Problem wie der Poster dieser Diskussion, nur das ich verschiedene Start und Endtermine aneinander abhängig machen muss.

Danke

RobertG
*******
Beiträge: 1735
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abhängigkeit von Listenfelder

Beitrag von RobertG » Fr, 08.07.2016 15:48

Hallo ktanrive1,

Du möchtest den Inhalt eines Steuerelementes von einem anderen abhängig darstellen? Eine Variante dazu habe ich mit einem Makro aufgezeigt. Für dieses Makro benötigst Du eine Tabelle, in der Formulardaten zwischengespeichert werden. Solche eine Tabelle habe ich oft in Datenbanken als einzeilige Filtertabelle eingebaut. Der Wert des ersten Listenfeldes wird abgespeichert. Der SQL-Code des zweiten Listenfeldes wird in Abhängigkeit von dem Wert des ersten Listenfeldes den Inhalt des zweiten Listenfeldes definierten.
Vorteil bei so einer Konstruktion mit einer Zwischenspeicherung ist, dass Du hier gegebenenfalls auch beide Listenfelder voneinander abhängig machen kannst.

Ansonsten besteht noch die Möglichkeit, den Code des zweiten Listenfeldes direkt durch den Code des ersten Feldes zu beeinflussen. Allerdings ist es hier notwendig zu wissen, mit welcher Office-Version Du arbeitest. Der aktuelle Wert eines Listenfeldes ist nämlich bei LibreOffice inzwischen anders definiert als bei ApacheOpenOffice. Im Handbuch habe ich beschrieben, wie der Code des Listenfeldes neu geschrieben werden kann. Ausführliche Beispiele zur Beeinflussung eines Listenfeldes durch ein anderes sind auch in den weiteren Beispieldatenbanken zum Handbuch mit einer zusätzlichen Beschreibung vorhanden.

Gruß

Robert

Antworten