Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Lookup-Field mit Filter (https://www.delphipraxis.net/100607-lookup-field-mit-filter.html)

Chaosworld 1. Okt 2007 12:49

Datenbank: MySQL • Version: 5 • Zugriff über: Zeos

Lookup-Field mit Filter
 
Hi
ich habe folgende Tabellen(un auch gleichnamige Querys):
Firma( KNR: integer, Name: string,...)
Ansprechpartner (ApNr: integer, Firma: integer, Name: string,...)

und dann die Tabelle
Auftrag(Auftragsnummer: integer, Firma: integer, Ansprechpartner: integer,...)
Jetzt habe ich 2 Lookup-Felder erstellt, und zwar:
1) FirmaName: der löst über Firma den Namen auf, also (KeyFields=Firma, LookupCache=False, LookupDataset=Firma, LookupKeyFields=KNr, LookupResuldFields=Name

2) AnsprechpartnerName: der löst über Ansprechpartner den Namen auf, also (KeyFields=Ansprechpartner, LookupCache=False, LookupDataset=Ansprechpartner, LookupKeyFields=ApNr, LookupResuldFields=Name

Die Tabellen sehen dann so aus:
Firma:
KNr Firma ,...
1 Firma1
2 Firma2
3 Firma3

Ansprechpartner:
ApNr Firma Name
1 1 Herr A
1 1 Herr B
1 2 Herr C
1 3 Herr D
1 3 Herr E

Zum Auftragsquery habe ich noch die beiden Lookup-Felder hinzugefügt:
FirmaText und AnsprechpartnerText

Jetzt habe ich einen dbGrid in dem nur die beiden Lookup-Felder sind und es soll das im Prinzip so aussehen:
FirmaText AnsprechpartnerText
Firma1 Herr A *
Firma3 Herr E **

Also bei * sollte dann zur Auswahl sein: Herr A und Herr B
Und bei ** sollte dann zur Auswahl sein: Herr D und Herr E

Das klappt auch soweit, jedoch die Anzeige klappt nicht richtig
und zwar bei der wie oben gefüllten Tabelle kommt dann einmal (wenn der Cursor aus Firma 1 steht)

FirmaText AnsprechpartnerText
Firma1 Herr A
Firma3


und wenn der Cursor auf Firma 3 steht sieht es dann so aus:


FirmaText AnsprechpartnerText
Firma1
Firma3 Herr E

Also der Text im gefilterten Lookup-Field verschwindet immer, wenn der gesuchte Wert nicht in der aktiven Liste ist.

Nur wie kann man dem entgegenwirken?
Kann man irgendwie dafür sorgen, dass das Lookup-Feld sich den Wert speichert, falls er gerade nicht dem zugehörigen Query nicht verfügbar ist? Oder kann man irgendwie an dem DBGrid manipulieren, so dass er den Wert nicht löscht, wenn das Lookup-Feld leer ergibt?

Danke für jede Antwort

Chaosworld

PS.: Falls das hier der falsche Bereich ist, und es eher unter VCL gehört, bitte verschieben, konnte mich nicht wirklich entscheiden, wohin es gehört (irgendwie in beiden Bereichen). Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz