Abhängigkeit von Listenfelder

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

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

Re: Abhängigkeit von Listenfelder

Beitrag von RobertG »

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
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abhängigkeit von Listenfelder

Beitrag von RobertG »

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
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Abhängigkeit von Listenfelder

Beitrag von RobertG »

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