////////////////////////////////////////////////////////////////////////////////
// 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;