AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Drei Tabellen und zwei LookupComboboxen

Ein Thema von TClever · begonnen am 19. Aug 2011 · letzter Beitrag vom 31. Aug 2011
Antwort Antwort
TClever

Registriert seit: 30. Mai 2011
7 Beiträge
 
Delphi 10.4 Sydney
 
#1

Drei Tabellen und zwei LookupComboboxen

  Alt 19. Aug 2011, 10:52
Hallo zusammen,

ich schaue hier schon länger immer mal rein, wenn ich Problemen habe. Oft habe ich auch schon Lösungen oder zumindest Hinweise zur Lösung gefunden.
Bei meinem aktuellen Problem, weiss ich aber nicht mal, nach welchen Suchbegriffen ich suchen sollte. Ich hoffe deshalb, dass ihr mein Problem versteht und mir helfen könnt.

Zum Problem gehören drei Tabellen und zwei LookupComboBoxen:

Tabelle Prüfling
- ID
- ...
- Prüfungsart-ID
- Prüfanweisungs-ID

Tabelle Prüfungsarten
- ID
- Bezeichnung

Tabelle Prüfungsanweisungen
- ID
- Prüfungsart-ID
- Bezeichnung

Bei jedem Prüfling soll also die Art der Prüfung und die verwendete Prüfanweisung festgehalten werden. Die Prüfungsanweisung ist aber immer abhängig von der Prüfungsart.

In der Maske wählt der Benutzer deshalb erst die Prüfungsart (LookupComboBox) und dann die Prüfanweisung (LookupComboBox). Damit er nur "passende" Prüfanweisungen auswählen kann, setze ich nach Wahl der Prüfungsart einen entsprechenden Filter auf die Prüfanweisungen (ändern des Parameters in der WHERE-Bedingung der Lookup-Datenquelle).

Das funktioniert soweit.

Jetzt möchte ich aber mehrere Prüflinge gleichzeitig anzeigen (DBCtrlGrid) und bearbeiten lassen. Und da ist das Problem: Jede angezeigte LookupComboBox für Prüfanweisungen müsste einen anderen Filter haben, was bei nur einer Datenquelle natürlich nicht geht.

Wie kann ich das Lösen? Oder ist mein Ansatz schon falsch?

Thomas
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#2

AW: Drei Tabellen und zwei LookupComboboxen

  Alt 19. Aug 2011, 11:34
Oh ja, ein vertracktes Problem...

Ich arbeite mit DevExpress-Komponenten, wo das Problem dadurch gelöst wurde, das man unterschiedliche Lookup-Datasets benutzen kann, je nachdem, ob das Feld den Fokus besitzt (d.h. editiert wird) (gefilterte Liste) oder nicht (alle Einträge).

Mir fallen spontan zwei Ansätze ein:

Möglichkeit 1:
Zunächst versiehst Du alle Lookup-Comboboxen mit dem ungefilterten Lookuplisten.
Im OnEnter der Lookup-combobox tauschst Du dann die Lookup-liste aus und im OnExit natürlich wieder zurück.

Möglichkeit 2:
Verwende eine einfache TDBComboBox und erstelle die Dropdownliste dynamisch.
  Mit Zitat antworten Zitat
TClever

Registriert seit: 30. Mai 2011
7 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Drei Tabellen und zwei LookupComboboxen

  Alt 19. Aug 2011, 12:28
Hallo Iwo,

danke für die Antwort. Die beiden von dir genannten Lösungsvorschläge scheinen mir auf den ersten Blick machbar - wenn auch fummelig.

Bevor ich die angehe würde ich aber gerne noch wissen, wie die Lösung mit den DevExpress-Komponenten aussieht. In dem Projekt arbeite ich nämlich mit denen. Als Comboboxen verwende ich die TcxDBLookupComboBox (ExpressEditors 6.43). Allerdings kann ich keine Eigenschaften für unterschiedliche Lookup-Dataset finden. Oder meine DevExpress-Komponenten sind zu alt.

Thomas
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#4

AW: Drei Tabellen und zwei LookupComboboxen

  Alt 19. Aug 2011, 14:18
Im TcxGrid geht das über das TcxGridColumn-Event "OnGetProprtiesForEdit", bei einer TcxDBLookupComboBox geht das nicht so. Hier würde ich 'fummeln'.

Fummeln musst Du sowieso.
  Mit Zitat antworten Zitat
TClever

Registriert seit: 30. Mai 2011
7 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Drei Tabellen und zwei LookupComboboxen

  Alt 31. Aug 2011, 10:21
Verspäteter Nachtrag: Ich habe zur Lösung die Version mit den zwei Lookup-DataSets gewählt, die bei OnEnter und OnExit gewechselt werden. Und es war gar nicht fummelig

Ich hatte zwar angenommen, dass es funktioniert, aber auch, dass es Sonderfälle geben wird, bei denen es nicht so einfach klappt. Aber: Es gab keine Sonderfälle. Zumindest nicht in meiner Konstellation mit der LookupComboBox auf einem DBCtrlGrid.

Ich kann diese Lösung also nur empfehlen.

Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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