PDA

Vollständige Version anzeigen : Variable/dynamische Datenquelle für Kombinationsfeld ermöglichen


Metzilein
08.05.2004, 07:06
Hallihallo Zusammen,

habe folgendes Problem:
In einer kleinen DB möchte ich für ein Formular ein entsprechendes Kombinationsfeld erstellen, dass auf 2 unterschiedliche Tabellen/Abfragen verweisen kann.

Die Daten sind unterteilt in Leistungen und Produkte und würd dies auch gerne - sofern es machbar ist - weiterhin beibehalten ;)

Im Formularentwurf seht ihr ungefähr, wo ich hin möchte. Man soll unter Artikelnummer die Möglichkeit haben, entweder Daten aus der Tabelle Leistungen oder Produkte abzufragen. Soll eine klare Trennung sein. Die Daten werden darüberhinaus dann auch an weitere Felder weitergegeben.

Meine Idee war es nun, das Feld Produktart für die Steuerung zu nutzen.
D.h., dass das Kombinationsfeld eine dynamische Abfrage erhält, die je nach Auswahl der Produktart auf die jeweilige Tabelle zugreift.

Ist sowas in der Form machbar, und wenn ja, wie?
Mit dynamischen SQL Strings hab ich schon einiges gemacht, aber die Abhängkeitkeit zu einem weiteren Kombinationsfeld ist mir echt neu.

Hoffe auf gute Ideen! ;)
Dennoch erstmal einen schönen Samstag, bin jetzt erstmal beim Tätowierer, hehe.

stpimi
08.05.2004, 07:13
Du kannst natürlich mit der Eigenschaft RowSource des Kombifeldes basteln. Aber für schön befinde ich das eigentlich nicht.

Die Tabelenstruktur ist ja vermutlich unterschiedlich, daher brauchst Du ungebundene Felder, die Du einzeln füllen musst, das ist alles viel Aufwand.

Ich würde die Auswahl Leistung oder Produkt vorab in einem Einstiegsformular treffen und dann zum entsprechenden Formular verzweigen. Oder ein Hauptformular machen mit dieser Auswahl und dort dann je nach Auswahl ein anderes Unterformular einblenden.

Den Formularentwurf sehe ich nicht.

Mfg, Michael

Metzilein
08.05.2004, 07:22
Hi Michael,

so früh schon auf? ;)
Ok, Bild - keine Ahnung, warum es nicht geht, machen wir´s mal einfacher:

Formularentwurf (http://www.ela-ralf.com/geb/Formular Entwurf.png)

Deine Idee hatte ich auch schon, ist aber bedingt durch das bisherige Konstrukt so nicht ganz machbar.

Um nochmal ein wenig weiter auzuholen, Gibt ein Formular mit Kundenstammdaten, diesem ist per Unterformular eins mit den jeweiligen Terminen zugeordnet. Und zum Termin soll praktisch der jeweilige Verkauf zugeordnet werden. Von der Formularstruktur steht bereits alles, bloß diese Kleinigkeit ärgert mich noch ein wenig.

Aufgrund dieser Struktur sollte nach Möglichkeit beides wählbar sein - Produkte und Leistungen.

Und du hast natürlich Recht, sind komplett unterschiedliche Tabellen, die dahinter stehen. Es wird praktisch über die Produktauswahl gleich für später mitgegeben, um was für einen Verkaufsumsatz es sich handelt.

stpimi
08.05.2004, 07:50
Was spricht denn dagegen, sowohl Produkte als auch Leistungen als Artikel in einer Tabelle zu führen? Dazu eine Tabelle Artikeltyp (Leistung, Produkt), deren Primärschlüssel sich als Fremdschlüssel in der Artikeltabelle wiederfindet?

Du hast sonst Probleme, wenn ein Kunde eine Leistung beansprucht (z.B. Maniküre) und dann noch vielleicht einen Nagellack als Produkt kauft. dann brauchst Du theoretisch schon zwei Rechnungen.

Mfg, Michael

jmc
08.05.2004, 08:29
Hi zusammen

abgesehen von der Bemerkung von Michael - welche ich 100% unterstütze ! - ist es in Endlosformularen (und es ist ja hier ineinem Unterformular endlos) schwierig bis unmöglich abhängige Kombifelder zu machen:
Die Änderung der RowSource wirkt sich auf ALLE bisherigen Datensätze aus, dh. dass dann beim Wechsel in der 2. Zeile (Produkt ausgewählt), auch die Rowsource für die erste Zeile ändert. Die "Übersetzung" der Artikelnummer wird also sprichwörtlich weggerissen. Es geht IMHO solange gut, wie man dann nicht wieder in die erste Zeile springt.
Aber wenn man das Formular schliesst und dieses dann wieder aufruft, dann stell dir mal vor: WAS soll nun angezeigt werden ?
Zeile 1 müsste als Rowsource die Artikelgruppe "Leistung" haben und die 2.Zeile die "Produkte" ...


PS.

Wenn das Bild (übrigens ganz schön bunt ... ) auf einem Server liegt, dann kann man's mitten in den Text reinstellen:

http://www.ela-ralf.com/geb/Formular%20Entwurf.png

Man muss nur den vB Code [Grafik] nehmen ... Hast du das Bestätigungsmail, das du nach der Registrierung bekommen hast, schon beantwortet

Metzilein
08.05.2004, 13:05
Hi jmc,

nee, so ganz unbedarf bin ich dann mit den tags auch nicht ;) Ich vermeide es normalerweise nur, direkt etwas einzubinden, denn meines Wissens geht das alles über den MOF-Server, und dann hättest du bei 200 Klicks schonmal 200x20 kb. Kann auch falsch liegen, aber egal :D

Zum Thema zurück, habe eben gesehen, dass der Entwurf des Formulars etwas verwirrend ist. In der Kopfzeile der Rechnung bitte einfach Leistungsart mal weglassen (habs auch schon geändert).

Es wird praktisch in den Umsatzdaten mitgeführt, dass es ein Verkauf des Studios war und in einem zusätzlichen Feld (Leistunsgart) pro Verkaufsposten festgelegt.

Hmm, zum Thema Endlosformular, das wäre natürlich schon ein Problem...

Denke momentan echt darüber nach, das ganze pro Verkaufsposten separat zu erfassen, dann hätte ich ja das Problem nicht.

http://www.ela-ralf.com/geb/Formular%20Entwurf1.png

jmc
08.05.2004, 15:41
Hi

also wenn das stimmt, mit dem Server und so - dann ist es aber unvernünftig, wenn du nun dasselbe Bild nochmals in deinen Beitrag
reinhängst ...

In der Kopfzeile der Rechnung bitte einfach Leistungsart mal weglassen (habs auch schon geändert).
Von der Kopfzeile war bisher nicht die Rede und wenn du nun was geändert hast, dann spielt es ja auch keine Rolle, das verwirrt nun eher als dass es nützt ...

Beschränken wir uns aber auf die Erfassung der Detailzeilen im unteren Teil, also im Unterformular. Folgende Idee:
du machst eine Abfrage in der du die Tabelle der "Verkaufsdetails", die Tabelle "Produktart" und die Tabelle "Artikel" miteinander verknüpfst. Nun kannst du in dieser Abfrage jeweils den Klartext der Produktart und des Artikels anzeigen lassen. Diese Abfrage ist dann die Datenherkunft für das UFo. Für die Erfassung würde ich dir empfehlen, ein kleines Popup zu machen, in dem du nur eine Rechnungszeile eingibst - aufrufen als DIALOG !. Dort kannst du dann die Dropdowns entsprechend steuern.
Nach dem Schliessen des Popups machst du im UFo ein Requery und du siehst die Anzeige der richtigen Daten.

Hoffe, ich habe mich einigermassen verständlich ausgedrückt ...