Autor Beitrag
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: So 06.10.02 11:33 
Hallo,

schildere mal das Problem :

Ich habe hier eine Kunden- und eine Kundengruppentabelle. Jetzt will ich z.B. einen neuen Kunden anlegen und diesem eine gültige Kundengruppe zuordnen. Die Kundentable hat ein Feld IDKG, dem eine Gültige ID aus den Kundengruppen zugeordnet werden soll.

Ich bin soweit, daß ich in dem Feld KG eine gültige Nr. eingeben kann und auch die zugehörige Kundengruppe angezeigt wird, aber ich kriege die ID nicht dazu, an die kunden.IDKG weitergereicht zu werden. :shock: Muß ich das mit SET odetr womit machen ?

Gruß
Hansa
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 07.10.02 07:16 
Hi
warum machst du das nicht mit einer DBLookupCombo? Dann hättest du das Problem nicht. Welche Komponenten hast du denn auf dem Formular?

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
hansa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mo 07.10.02 10:46 
Hallo,

DBlookUpComboBox ? Tja, in diesem Fall vielleicht das beste, aber es geht mir nicht so um das Aussehen, sondern um die Daten. Ich brauche nicht nur Master -> Detail sondern Master->Detail->Subdetail->SubSubDetail. Wie tief das gehen kann weiß ich noch gar nicht, auf jeden Fall tiefer als normal. :oops:

im Datenmodul ist folgendes :

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
 TDataModul = class(TDataModule)
    Database: TpFIBDatabase;
    KGTransaction: TpFIBTransaction;
    KGsource: TDataSource;
    KUsource: TDataSource;
    KUdatensatz: TpFIBDataSet;
    KGdatensatz: TpFIBDataSet;
  private


Auf der Form selber ist noch nicht soviel, ein paar DBedit-Felder, eine Listbox, ein DBtextfeld. 8) Aber das werden ca. 3-4 Bildschirmseiten voll.

Gruß
Hansa
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 07.10.02 11:02 
Hi
Zitat:

Tja, in diesem Fall vielleicht das beste, aber es geht mir nicht so um das Aussehen, sondern um die Daten.

Eben deswegen. Lässt sich einfach leichter handhaben.
Zitat:

Ich brauche nicht nur Master -> Detail sondern Master->Detail->Subdetail->SubSubDetail.

Dann erst Recht. Die erste Lookup-Datenquelle liefert das Detail. Auf dieser Basis wird in der untegeordneten Lookup-Datenquelle das Subdetail angezeigt usw.
Zitat:

Wie tief das gehen kann weiß ich noch gar nicht, auf jeden Fall tiefer als normal

Was ist schon normal? :mrgreen: Aber wenn du noch nicht weisst wie weit das gehen kann, würde ich mir an deiner Stelle noch mal Gedanken über das Datenmodel machen. Eigentlich sollte das vor der Programmierung schon stehen und Gedanklich getestet sein :wink:

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
hansa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mo 07.10.02 11:22 
Hi Lothar,

Zitat:
Die erste Lookup-Datenquelle liefert das Detail. Auf dieser Basis wird in der untegeordneten Lookup-Datenquelle das Subdetail angezeigt usw.


Wenn ich mir das mal überlege, das stimmt. Du meinst also, ich solle von der Lookupbox nur die Datenquellen verwenden ? Habe mich mit einer einfachen DBlookupbox schon verhackstückelt. :mrgreen: Vielleicht habe ich die deshalb unterbewußt nicht verwendet. Komme ich dann an die Subdetails dran mit :"SELECT FROM SELECT FROM SELECT" oder so ähnlich ? Und muß ich dann ein Detailfeld als Masterfield eines Subdetails verwenden. Ist bei mir im Moment ja eigentlich auch so realisiert. 8) Wo Du Recht hast, hast Du Recht. Muß mit den DBLookups wohl auch tiefer einsteigen.


Zitat:
Eigentlich sollte das vor der Programmierung schon stehen und Gedanklich getestet sein


Das ist es eigentlich schon. Habe ja ein Programm, das so funktioniert, nur nicht mit SQL. Außerdem wird das hier umfangreicher. Bei der Implementierung tu ich mich noch etwas schwer.

Gruß
Hansa
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 07.10.02 11:42 
Hi
Nehmen wir mal als Beispiel an, du hast drei Tabellen Hauptgruppe, Gruppe, Untergruppe.

Hauptgruppe:
HG_ID, HB_BEZEICHNUNG


Gruppe:
GR_ID, GR_BEZEICHNUNG, HG_ID (die ID der zugehörenden Hauptgruppe)


Untergruppe:
UG_ID, UG_BEZEICHUNG, GR_ID (die ID der zugehörenden Gruppe)


Für jede dieser Tabellen hast du eine Query und eine Datasource. Für die Hauptgruppe sieht die Query (Query1/Source1) so aus:
ausblenden Quelltext
1:
SELECT * from HAUPTGRUPPE					

Wenn du das einer DBLookupCombo als Listsource zuordnest, bekommst du die Einträge der Hautpgruppe. KeyField ist die eindeutige ID der Hauptgruppe: HG_ID.
Die Query für die Tabelle Gruppe (Query2/Source2) sieht so aus:
ausblenden Quelltext
1:
Select * from GRUPPE where HG_ID = :HG_ID					

Es sollen also alle Gruppen der gewählten Hauptgruppe angezeigt werden. Der aktuelle Wert stammt aus dem gewählten Eintrag der LookupCombo. Und das geht ganz automatisch wenn du der Eigenschaft DataSource von Query2 die Source1 zuordnest. Jedesmal wenn ein Eintrag aus der ersten Combo ausgewählt wird, wird der keyValue an die zweite Abfrage übergeben und entsprechend aktualisiert. Wenn du die zweite Abfrage ebenfalls in einer LookupCombo anzeigst, hast du das Dateil zum Master.

Analog dazu funktionert Query3/Source3
ausblenden Quelltext
1:
Select * from UNTERGRUPPE where GR_ID = :GR_ID					

Query3 bekommt in der Eigenschaft Datasource Source2. Das Feld GR_ID wird somit abhängig von dem ausgewählten Eintrag in Query2. Und so könnte man das weiter führen.

Ich hoffe mal, das war einigermassen verständlich erklärt, aber wenn man das mal durchschaut hat, ist das ganz Easy. :D

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
hansa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mo 07.10.02 11:56 
Hallo Lothar,

Danke für die Hilfe, druck mir das mal aus und nehm es mit. Auf den ersten Blick kommt das mir SEHR bekannt vor. 8) Brauche nun zuerst einmal Testdaten, deshalb auch der andere Thread. Bei Testdaten sieht man offensichtliche Fehler nicht so schnell.

Gruß
Hansa