Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sortieren durch DBLookupcombobox? wie? (https://www.delphipraxis.net/84484-sortieren-durch-dblookupcombobox-wie.html)

mafiaente 17. Jan 2007 14:42

Datenbank: paradox7 • Zugriff über: ttable

Sortieren durch DBLookupcombobox? wie?
 
Hallo,
ich habe nun folgendes problem. ich versuche mich an einem Warenshop und habe in einer Tabelle nur all meine kategorien eingegeben, in einer anderen Tabelle die Artikel, wobei bei diesen auch die Kategorie mit zum datensatz gehört.
so nun möchte ich erreichen, dass wenn ich über die lookupcombobox die kategorie auswähle, in den folgenden DBtext-feldern des formulars auch nur die artikel dieser ausgewählten kategorie über den DBnavigator auszuwählen sind.
ich hoffe das prinzip konnte ich einigermaßen vermitteln un jmd kann mir helfen.

mkinzler 17. Jan 2007 14:46

Re: Sortieren durch DBLookupcombobox? wie?
 
Nimm nen TQuery un füge die Sortierungsbedingung dem SQL-Statement hinzu

mafiaente 17. Jan 2007 14:48

Re: Sortieren durch DBLookupcombobox? wie?
 
hm ich versuche mir delphi gerade selbst anzueingnen un mit den query-sachen kenn ich mich noch so gut wie gar nich aus. eine genauere anleitung wäre sehr hilfreich. danke!

shmia 17. Jan 2007 14:52

Re: Sortieren durch DBLookupcombobox? wie?
 
Ich fasse mal zusammen:
Du hast eine Tabelle ArtikelKategorie mit mehreren Kategorien (Medikamente, Drogen, Sexspielzeuge, ...)
Du hast eine Tabelle Artikel mit vielen Datensätzen, die jeweils zu einer der obigenen Kategorien gehört.
Das wäre also eine Master-Detail-Beziehung.
Du möchtest nicht alle Artikel sehen, sondern nur die einer bestimmten Kategorie.
Das nennnt man filtern (nicht sortieren).
Es gibt nun 2 Möglichkeiten:
1.) eine SQL-Abfragen mit WHERE-Bedingung (gute Technik)
2.) das Property Filter setzen und Filtered=True (langsame Technik)

mafiaente 17. Jan 2007 16:59

Re: Sortieren durch DBLookupcombobox? wie?
 
hm da ich leider blutiger anfänger bin hilft mir das noch nich so viel weiter! könnte mir evtl. noch jmd die sache mit der sql-abfrage näher erklären?
brauch ich da eingtlich die DBlookupcombobox oder reicht da auch die DBcombobox? seh den unterschied da noch nicht so deutlich!?

hoffe mir kann jmd helfen! vielen dank schonmal im vorraus!

mkinzler 17. Jan 2007 17:02

Re: Sortieren durch DBLookupcombobox? wie?
 
TDBComboBox Daten werden von Combobox in DB geschrieben
TDBLookupComboBox Angezeigte Daten kommen zusätzlich noch aus einer DB.

mafiaente 17. Jan 2007 17:05

Re: Sortieren durch DBLookupcombobox? wie?
 
ah ok vielen dank! jetzt brauch ich nur noch hilfe bei meinem filterproblem, dann bin ich wunschlos glücklich :wink:

mkinzler 17. Jan 2007 18:05

Re: Sortieren durch DBLookupcombobox? wie?
 
Wie shmia schon angedeutet hat:

1) (schlechter) Per Master/Detail:

-1.Table auf Kategorie-Tabelle setzen
-1.DataSource auf diese Tabelle
-Eigenschaft MasterSource der 2. Table auf diese DataSource setzen
-MaserFields auf FK (PK erste Tabelle setzen)
-2.DataSource auf 2. Tabelle

2) Mit TQuery-Komponenten
Vorteil, es werden nur die benötigten Felder geladen.

mafiaente 17. Jan 2007 19:30

Re: Sortieren durch DBLookupcombobox? wie?
 
naja ich möchte das jetz über Query machen nur hab ich damit absolut keine erfahrung!
ich denk ma ich müsste den quelltext bei der DBlookupcombobox bei "onclick" einstellen,oder?
nun habe ich dort folgenden code reingeschrieben, nur er bringt nciht die erhoffte wirkung!

Delphi-Quellcode:
procedure TForm2.DBLookupComboBox1Click(Sender: TObject);
begin
Query1.Active:=false;
  Query1.Sql.Clear;
  Query1.Sql.Add('SELECT kategorie FROM (db\artikel.db) WHERE kategorie=dblookupComboBox1.keyvalue');
  Query1.Active:=true;
end;
hoffe jmd kann mir den entscheidenden impuls geben!

mkinzler 17. Jan 2007 20:37

Re: Sortieren durch DBLookupcombobox? wie?
 
Du brauchst wieder 2 Komponenten (2 TQuery).
Den 1. für die Kategorien

Ich nenne sie mal qKat.

Delphi-Quellcode:
qKat.SQL.Text := 'select id, bez from Kategorie';
qArtikel.SQL.Text := 'select <liste> from Artikel where kategorie = :katid";
qArtikel.RequestLive := True;
qKat.Open;
Im AfterScroll-Event setzen wir nun den Parameter des 2. Queries:
Delphi-Quellcode:
qArtikel.ParamByName('katid').Value := qKat.FieldByName('id'.Value;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.
Seite 1 von 2  1 2      

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