Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Kunden auf Rechnungsform eingeben/anzeigen (https://www.delphipraxis.net/72468-kunden-auf-rechnungsform-eingeben-anzeigen.html)

LOMBI 6. Jul 2006 11:39

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Entschuldigung für meinen Schnellschuß von soeben. Da ich in erster Linie
nach "meier" (klein) suche, muß der Code selbstverständlich so lauten:

Delphi-Quellcode:
SELECT * FROM Kunden WHERE LOWER(NName) LIKE :suche OR LOWER(VName) LIKE :suche OR UPPER(NName) LIKE :suche OR UPPER(VName) LIKE :suche;
Danke nochmals!

Lombi

mkinzler 6. Jul 2006 11:47

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Am besten wandelst du alles in Groß oder Kleinbuchstaben um:
SQL-Code:
SELECT * FROM Kunden WHERE LOWER(NName) LIKE LOWER(:suche) OR LOWER(VName) LIKE LOWER(:suche);

LOMBI 6. Jul 2006 13:47

Brauche ich UPPER bei Groß- oder Kleinbuchstaben gar nicht mehr zu deklarieren?

Muß ich eigentlich nach meinem SQL.Text noch ParamCheck := True angeben oder kann das wegfallen?

Zitat:

die Übernahme der Kundendaten könntest du im Ereignis OnDblClick() des DBGrid vornehmen. Nach erfolgreicher Übernahme kannst du dann ModalResult auf mrOK setzen und dein modaler Auswahldialog wird geschlossen.
Delphi-Quellcode:
procedure TFKundenListe.DBGridKundenDblClick(Sender: TObject);
begin
  if ModalResult = mrOK then
  FRechnungen.EditMatch.Text := FKunden.EditMatch.Text;
  Close;
end;
Leider immer noch keine Datenübernahme in EditMatch auf Form Rechnung.

Gruß
Lombi

mkinzler 6. Jul 2006 14:04

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Zitat:

Brauche ich UPPER bei Groß- oder Kleinbuchstaben gar nicht mehr zu deklarieren?
Nein weil ja beide seiten des Vergleichs gleichartig gewandelt werden.

z.B.
Wert in DB Suchstring
Maier maier
MAIER mAiEr
wird zu

maier maier
maier maier

Zitat:

Muß ich eigentlich nach meinem SQL.Text noch ParamCheck := True angeben oder kann das wegfallen?
Muß auf true stehen.

LOMBI 7. Jul 2006 11:13

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Hallo,

Zitat:

Zitat:

die Übernahme der Kundendaten könntest du im Ereignis OnDblClick() des DBGrid vornehmen. Nach erfolgreicher Übernahme kannst du dann ModalResult auf mrOK setzen und dein modaler Auswahldialog wird geschlossen.
Delphi-Quellcode:
procedure TFKundenListe.DBGridKundenDblClick(Sender: TObject);
begin
  if ModalResult = mrOK then
  FRechnungen.EditMatch.Text := FKunden.EditMatch.Text;
  Close;
end;
Leider immer noch keine Datenübernahme in EditMatch auf Form Rechnung.
Wer hilft mir bitte?

Gruß
Lombi

mkinzler 7. Jul 2006 11:23

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Füge mal ein
Delphi-Quellcode:
FRechnungen.Update;
ein.

marabu 7. Jul 2006 11:35

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Hallo Lombi,

Delphi-Quellcode:
procedure TFKundenListe.DBGridKundenDblClick(Sender: TObject);
begin
  FRechnungen.EditMatch.Text := FKunden.EditMatch.Text;
  ModalResult := mrOK;
end;
erst musst du die Daten übernehmen, dann schließt du das Fenster indem du ModalResult auf mrOK setzt. Die Anzeige im anderen Fenster müsste durch die Zuweisung eigentlich automatisch aktualisiert worden sein.

Grüße vom marabu

raiguen 7. Jul 2006 12:41

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Hallo LOMBI,

ich würde folgende Vorgehensweise empfehlen:
auf dem Rechnungsformular einen Button 'Kundensuche' plazieren mit dem OnClickEreignis
Code:
procedure TFRechnung.ButtonKundenSucheClick(Sender: TObject);
begin
  //--ist die Form schon vorhanden?
  if not Assigned(FKundenListe) then
    Application.CreateForm(TFKundenListe, FKundenListe);
 
  //--KundenListe Modal anzeigen
  if FKundenListe.ShowModal = mrOK then
    begin
      FRechnung.EditNName.Text := FKundenListe.qryKunden.FieldByName('NName').Text;
      FRechnung.EditVName.Text := FKundenListe.qryKunden.FieldByName('VName').Text;
      //..
  end;
  //--> qryKunden steht für die Suchabfrage nach Kunden
end;
In der (allgemein verwendbaren) Form FKundenListe diese um ein EingabeFeld 'EditSuch' erweitern und hier am besten im OnKeyPress (sofern Key=#13 -> RETURN-Taste) die Suche starten. Egal, ob nun exakt ein Kunde gefunden wurde oder gar mehrere, per Doppelclick in das DBGrid übergibst Du den ausgewählten Kunden dann an das Rechnungsformular:
Code:
procedure TFKundenListe.DBGridKundenDblClick(Sender: TObject);
begin
  ModalResult = mrOK ;
end;
Die Suche sollte immer erst dann gestartet werden, wenn das Eingabefeld mit RETURN abgeschlossen wurde, um unnötige Suchvorgänge bei jedem Tastendruck zu sparen...

Das nur mal so als Denkanstoß ;-) Viellcht hilft Dir das weiter..

LOMBI 7. Jul 2006 15:27

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Herzlichen Dank an Euch!

Hier ist mein Ergebnis:

Delphi-Quellcode:
procedure TFKundenListe.DBGridKundenDblClick(Sender: TObject);
begin
  FRechnungen.EditMatch.Text := FKunden.QueryKunden.FieldByName('NName').Text;
  ModalResult := mrOK;
  Close;
end;
ModalResult := mrOK reicht allein nicht, um die KundenListe zu schließen.
Die Forms sind bei mir mit Form.Show und nicht mit Form.ShowModal geöffnet und deshalb "Close".

Beste Grüße
Lombi

mkinzler 7. Jul 2006 15:29

Re: Kunden auf Rechnungsform eingeben/anzeigen
 
Zitat:

Die Forms sind bei mir mit Form.Show und nicht mit Form.ShowModal geöffnet und deshalb "Close".
Dann kannst du das Modalresult weglassen und durch ein
Delphi-Quellcode:
FRechnungen.Update;
ersetzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr.
Seite 2 von 2     12   

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