AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi mit Comboboxen nach Datensätzen suchen
Thema durchsuchen
Ansicht
Themen-Optionen

mit Comboboxen nach Datensätzen suchen

Ein Thema von Emilio · begonnen am 28. Mär 2006 · letzter Beitrag vom 28. Mär 2006
Antwort Antwort
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#1

mit Comboboxen nach Datensätzen suchen

  Alt 28. Mär 2006, 14:08
Datenbank: DBISAM • Version: 4.21 • Zugriff über: Native
Moin Moin,

ich würde gerne mittels 2 Comboboxen Artikel aus einer Query suchen lassen können:

Die erste Combobox soll quasi das Suchkriterium vorgeben (z.B. Artikelname; Artikelnummer; Artikelgruppe; etc.). Wenn der User eine Auswahl getroffen hat soll die 2. Combobox quasi eine vorsortierte Liste auf Basis der Auswahl der ersten Combobox "bereithalten".

Hat jemand sowas schon mal gemacht oder nen Tipp wo ich was zum nachlesen finde?

VG Emilio
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: mit Comboboxen nach Datensätzen suchen

  Alt 28. Mär 2006, 16:15
Für diese Aufgabe würde sich eine TDBLookupConbobox o.ä. anbieten. Bei dieser Komponete kann sie Auswahlliste aus einer Datenbanktabelle stammen.
Markus Kinzler
  Mit Zitat antworten Zitat
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#3

Re: mit Comboboxen nach Datensätzen suchen

  Alt 28. Mär 2006, 17:39
@mkinzler,

äh, ja schon;
nur sollten in der 1. Combobox die Suchkriterien (also quasi die Column-Names der query) aufgelistet sein.
Wie man das macht und dann den Selektionsparameter für die 2. Combobox übergibt ist der primäre Teil der Fragestellung.

Vielleicht seh ich ja den Wald vor Bäumen nicht oder Schlauch-steh oder sowas ...

VG
Emilio
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: mit Comboboxen nach Datensätzen suchen

  Alt 28. Mär 2006, 17:51
Ich kenne mit DBISam nicht so aus, bei einer SQL-datenbank ist es kein Problem per SQL die Feldname einer Tabelle zu ermitteln. Wenn dies bei DBISam nicht geht, bleibt dir nichts anderes übrig als die Felder manuell (statisch oder dynamisch) in eine normale ComoBox einzutragen und in deren onChane den Query für die 2. Comobox dynamisch zu erstellen.
Markus Kinzler
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: mit Comboboxen nach Datensätzen suchen

  Alt 28. Mär 2006, 17:51
Delphi-Quellcode:
// Quick and Dirty
procedure GetLookupList(const TableName, FieldName:string; list:TStrings);
begin
   qry.SQL.Text := 'SELECT '+Fieldname+ ' FROM '+TableName;
   qry.Open;

   while not qry.eof do
   begin
      list.Add(qry.fields[0].AsString);
      qry.next;
   end;
end;
Und dann einfach
GetLookupList('Kundenstamm', Combo1.Text, Combo2.Items);
Andreas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: mit Comboboxen nach Datensätzen suchen

  Alt 28. Mär 2006, 18:12
Wenn ich es richtig verstehe existiert eine beliebige bereits geöffnete Query, deren result set mit Hilfe der beiden ComboBoxen durchsucht werden soll. Der Code für das Ereignis AfterOpen() dieser Query kann die NameBox füllen:

Delphi-Quellcode:
procedure TDemoForm.QueryAfterOpen(DataSet: TDataSet);
begin
  with Query do
    GetFieldNames(NameBox.Items);
end;
Die Items der ValueBox können dann im Ereignis OnChange der NameBox initialisiert werden:

Delphi-Quellcode:
procedure TDemoForm.NameBoxChange(Sender: TObject);
var
  CurrentRecNo: Integer;
  s: TStringList;
begin
  s := TStringList.Create;
  s.Sorted := true;
  s.Duplicates := dupIgnore;
  with Query do
  begin
    DisableControls;
    CurrentRecNo := RecNo;
    First;
    while not Eof do
    begin
      s.Add(Fields[Namebox.ItemIndex].AsString);
      Next;
    end;
    ValueBox.Items.Assign(s);
    RecNo := CurrentRecNo;
    EnableControls;
  end;
  s.Free;
end;
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#7

Re: mit Comboboxen nach Datensätzen suchen

  Alt 28. Mär 2006, 22:06
@all,

Danke für Eure Tipps; damit kann ich jetzt erstmal was anfangen - supi!

@marabu,
da Du mein erstes Projekt bisher nahezu vollständig begleitest, bin ich mir sicher, dass Du den Nagel auf den Kopf getroffen hast. Sofern es mir in diesem Leben gelingt, das DING mal fertig zu kriegen, wirst Du im "about" gewürdigt.

Vielen Dank für Deine Hilfe.

VG
Emilio
  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 18:35 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