AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi problem mit anzeige und auswahl einer combobox
Thema durchsuchen
Ansicht
Themen-Optionen

problem mit anzeige und auswahl einer combobox

Ein Thema von stonimahoni · begonnen am 13. Okt 2004 · letzter Beitrag vom 14. Okt 2004
 
stonimahoni

Registriert seit: 12. Okt 2004
146 Beiträge
 
Delphi 7 Professional
 
#5

Re: problem mit anzeige und auswahl einer combobox

  Alt 14. Okt 2004, 07:47
morgen

hier mein versprochener code mit dem ich mein prob gelöst habe ( waren nur minimal änderungen nötig )

Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Aufklappen der Combobox um alle Kunden anzeigen zu lassen
////////////////////////////////////////////////////////////////////////////////
procedure TFormAuftrag.ComboBox1DropDown(Sender: TObject);
var name: string;
    leerzeichen: string;
    vorname: string;
    ort: string;
    kundennr: Longint;
begin
   // die liste wird geleert, zumal ansonsten dieselben datensätze immer angehängt werden
   // bei jedem neuaufklappen
      ComboBox1.Items.Clear;
   // Kennzeichen 3 bedeutet die DropDown Liste wurde geöffnet
   kennzeichen := 3;
   kundensuch(kennzeichen);
   if (ComboBox1.Text <> '') or (ComboBox1.Text = '') then
   begin
     //Liste mit Werten füllen
     while not FormKunden.ADOQueryKunden.Eof do
     begin
        leerzeichen := ' ';
        // Die Felder müssen vor der Zuweisung geprüft werden, ob hier auch ein
        // Eintrag in der Datenbank vorliegt.
        kundennr := FormKunden.ADOQueryKunden.FieldValues['kunden_nummer'];
        name := FormKunden.ADOQueryKunden.FieldValues['name'];
        vorname := FormKunden.ADOQueryKunden.FieldValues['vorname'];
        if(FormKunden.ADOQueryKunden.FieldValues['ort'] <> NULL) then
        begin
          ort := FormKunden.ADOQueryKunden.FieldValues['ort'];
        end;
        gesamt:= IntToStr(kundennr) + leerzeichen + name + leerzeichen + vorname;
        if ort <> 'then
        begin
          gesamt:= gesamt +leerzeichen + ort;
        end;
      ComboBox1.Items.Add(gesamt);
      FormKunden.ADOQueryKunden.Next;
     end;
   end;
end;


////////////////////////////////////////////////////////////////////////////////
// Auswahl innerhalb der Combobox
////////////////////////////////////////////////////////////////////////////////
procedure TFormAuftrag.ComboBox1Select(Sender: TObject);
var i: integer;
    ende: boolean;
begin
   // Kennzeichen 1 bedeutet, es wurde eine Auswahl aus der Liste getroffen
   kennzeichen := 1;
   ende := false;
   suchnr := '';
   i:= 0;
  // Nachdem der Benutzer einen Eintrag aus der Liste gewählt hat, soll dieser natürlich
  // vorgeblendet werden. Dazu muss dass ausgewählte Feld bis zum Namen abgeschnitten
  // werden und erneut eine Suche erfolgen.
  // Ausgewählter Eintrag zuweisen
  gesamt := ComboBox1.Items[ComboBox1.ItemIndex];
  while not ende do
  begin
     i:= i + 1;
     // Zeichen nacheinander dem Suchnamen zuweisen
     if (gesamt[i] <> ' ') and not ende then
     begin
       // in dem Fall ist der Suchname die Kundennummer
       suchnr := suchnr + gesamt[i];
     end
     else
     begin
       ende := true;
     end;
  end;
  kundensuch(kennzeichen);
  ComboBox1.Clear;
end;


////////////////////////////////////////////////////////////////////////////////
// Kundenselektion
////////////////////////////////////////////////////////////////////////////////
function TFormAuftrag.kundensuch(var kennzeichen: integer): integer;
begin
   FormKunden.ADOQueryKunden.Active:= False;
   FormKunden.ADOQueryKunden.Close;
   if (kennzeichen = 2) or (kennzeichen = 3) then
   begin
      with FormKunden.ADOQueryKunden do begin
        SQL.Clear;
        SQL.Add('select * from kunden where kunden.name like "' + ComboBox1.Text + '%" order by kunden.name');
        FormKunden.ADOQueryKunden.Active := True;
        FormKunden.ADOQueryKunden.Open;
      end;
   end;
   if (kennzeichen = 1) then
   begin
      with FormKunden.ADOQueryKunden do begin
        SQL.Clear;
        SQL.Add('select * from kunden where kunden.kunden_nummer = '+ suchnr +' order by kunden.name');
        FormKunden.ADOQueryKunden.Active := True;
        FormKunden.ADOQueryKunden.Open;
      end;
   end;
   result := kennzeichen;
end;


////////////////////////////////////////////////////////////////////////////////
// Änderung innerhalb der Combobox
////////////////////////////////////////////////////////////////////////////////
procedure TFormAuftrag.ComboBox1Change(Sender: TObject);
begin
  // Der Suchname hier initialisiert bzw. er muss "geleert" werden damit die daten übernommen werden
  suchnr := ' ';
   // Kennzeichen 2 bedeutet das der Name aus dem Feld gesucht wird
  kennzeichen := 2;
  kundensuch(kennzeichen);
end;



in diesem sinne

frohes schaffen und vor allem proggn weiterhin

bis zum nächsten prob *gg*

bis dann
grüsse

stoni
Carsten
  Mit Zitat antworten Zitat
 


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 22:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz