Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Von TEdit nach Grid?? (https://www.delphipraxis.net/106206-von-tedit-nach-grid.html)

marciboy 7. Jan 2008 10:16

Datenbank: Interbase • Version: 6 • Zugriff über: IB

Von TEdit nach Grid??
 
Hallo

suche nach einer Suchfunktion, die mir nach eingabe in ein TEdit mein Suchergebnis in mein Grid überträgt.


Gruß
Marc

mkinzler 7. Jan 2008 10:19

Re: Von TEdit nach Grid??
 
Entweder TEdit verwenden oder im .onChange des Edits auf Änderung reagieren.
Wie greifst du auf die Datenbank?

marciboy 7. Jan 2008 10:30

Re: Von TEdit nach Grid??
 
Hallo

ich suche nur nach einer Abfrage für den Quellcode (.Exit)

Datenbank über TIB_Database

Gruß
Marc

mkinzler 7. Jan 2008 10:38

Re: Von TEdit nach Grid??
 
ich meinte eigentlich Table oder Query?

marciboy 7. Jan 2008 10:42

Re: Von TEdit nach Grid??
 
Achso Sorry

TQuery

mkinzler 7. Jan 2008 10:54

Re: Von TEdit nach Grid??
 
-vorhandene Query lokal filtern: Einfach Query.Filter setzten und mit
Delphi-Quellcode:
Query.Filtered := True;
aktivieren
-Neue Abfrage:
+Füge eine neue Query-Komponente für die Filterung hinzu.
+Hinterlege dort eine parametrisierte Abfrage
+im .OnExit Parameter setzen
-Abfrage anpassen:
+Abfrage um Filter+Parameter erweitern
+im .OnExit Parameter setzen

marciboy 7. Jan 2008 11:10

Re: Von TEdit nach Grid??
 
Gibt es da vielleicht eine einfachere Möglichkeit??

Kann ich die Abfrage nicht in das ereigniss der TEdit schreiben?

Gruß
Marc

mkinzler 7. Jan 2008 11:25

Re: Von TEdit nach Grid??
 
Man kann auch bei jedem Klick die Abfrage neu setzen, aber das ist doch viel umständlicher und langsamer, als nur die Parameter zu senden.

marciboy 7. Jan 2008 11:32

Re: Von TEdit nach Grid??
 
Ja aber ich verstehe nicht wie ich den Quellcode schreiben muss. Ich bin ja sehr bemüht Delphi zu lernen aber dies ist sehr komplex.

mkinzler 7. Jan 2008 11:42

Re: Von TEdit nach Grid??
 
Wenn die Kompo Query heisst und dort eine parametrisierte Abfrage hinterlegt ist mit dem Parameter Suchwort:
SQL-Code:
select <Feldliste> from <Tabelle> where <suchfeld> = :suchwort;
Delphi-Quellcode:
Query.ParamByName( 'suchwort').Value := Edit.Text;
Query.Refresh;

marciboy 7. Jan 2008 11:51

Re: Von TEdit nach Grid??
 
Die Query befindet sich aber in einer andern Form (DataModule).
Muss ich noch Variablen definieren?

Gruß
Marc

mkinzler 7. Jan 2008 12:08

Re: Von TEdit nach Grid??
 
Einfach Name des Datenmodul davor setzen

marciboy 7. Jan 2008 12:19

Re: Von TEdit nach Grid??
 
Wenn ich nun auf enter klicke passiert nichts.

haentschman 7. Jan 2008 13:51

Re: Von TEdit nach Grid??
 
... Guten Morgen. :mrgreen:

...das Thema ist eigentlich nicht schwer....ich tippe mal blind auf einen Schreibfehler, was vergessen, was verdreht :gruebel:

...zeig doch mal Deinen Code dann ist es für uns leichter...

Zitat:

Wenn ich nun auf enter klicke passiert nichts.
...sagt gar nichts :-D

:hi:

marciboy 7. Jan 2008 14:04

Re: Von TEdit nach Grid??
 
Ich versuche es nochmal zu beschreiben.

Ich habe ein Grid mit Herstellern und ein Grid mit Modellen. Daneben sind zwei edit felder wo ich schlüsselnummern eintrage z.b. 0039 in den einen und 653 in dem anderen edit feld. Wenn ich nun auf enter klicke soll mir der entsprechende Hersteller im ersten grid und das entsprechende modell im anderen grid angezeigt werden.

Delphi-Quellcode:
procedure TForm1.EditKBANR1Exit(Sender: TObject);
begin
DataModule1.THersteller.ParamByName( 'khernr').Value := Edit.Text;
DataModule1.THersteller.Refresh;
end;
Gruß
Marc

haentschman 7. Jan 2008 14:40

Re: Von TEdit nach Grid??
 
...Hallo marciboy.

:?: mit was sind die Grids vernüpft... Tabelle direkt oder Query (THersteller :?: )
:?: wenn du auf Enter drückst geht der Focus auch wirklich aus dem EditFeld raus...bzw. wird EditKBANR1Exit auch angesprungen
:?: wie sieht die Query aus und wo wird sie aufgerufen

PS: diese hin und her Fragerei hat mir gestern auch geholfen einen Ablauffehler zu finden...Denkanstöße sind manchmal besser als direkte Lösungen :-D

marciboy 7. Jan 2008 14:54

Re: Von TEdit nach Grid??
 
Hallo

Grid - Query - DataSource

mkinzler 7. Jan 2008 15:04

Re: Von TEdit nach Grid??
 
Richtig wäre aber
Grid -> DataSource -> Query

marciboy 7. Jan 2008 15:07

Re: Von TEdit nach Grid??
 
Stimmt hab ich falschrum geschrieben. :-)

mkinzler 7. Jan 2008 15:10

Re: Von TEdit nach Grid??
 
Ist der Query vorher schon aktiv? sonst musst du ihn natürlich zuerst öffenen.

marciboy 7. Jan 2008 15:22

Re: Von TEdit nach Grid??
 
Ja der Query ist auf true. Die Hersteller im Grid werden angezeigt. Klicke ich jetzt auf Opel werden im Grid Modell alle Modelle (zumindest die die ich schon in der DB eingepflegt habe) an. Jetzt habe ich zwei TEdits angelegt. Wenn ich nun im ersten Edit die Herstellernummer (0039 für Opel) und im zweiten Edit die Typennummer (653) eintrage, soll er mir in den Grids das zutreffende Auto anzeigen.

mkinzler 7. Jan 2008 16:18

Re: Von TEdit nach Grid??
 
Wie sieht die Abfrage aus?

marciboy 7. Jan 2008 16:18

Re: Von TEdit nach Grid??
 
Von den TEdits??

haentschman 7. Jan 2008 16:20

Re: Von TEdit nach Grid??
 
... 2 Grids

2 x Grid -> DataSource -> Query :gruebel:

:?: gleiche DataSource / Query oder verschiedene

marciboy 7. Jan 2008 16:22

Re: Von TEdit nach Grid??
 
Verschiedene :-)

Jedes Grid hat sein eigenes Query

mkinzler 7. Jan 2008 16:23

Re: Von TEdit nach Grid??
 
Zitat:

Von den TEdits??
Nein die vom Query.

marciboy 7. Jan 2008 16:27

Re: Von TEdit nach Grid??
 
Hersteller Query:
Delphi-Quellcode:
SQL.Strings = (
  'select * from p_hersteller(:p_khernr) order by bez')
Modell Query:
Delphi-Quellcode:
SQL.Strings = (
  'select * from p_modell(:p_khernr,:p_kmodnr)')

Hersteller DataSource:
Delphi-Quellcode:
procedure TForm1.DSHerstellerDataChange(Sender: TObject; Field: TField);
var
  sHersteller: String;
  sModell: String;
  begin
  sHersteller:= DSHersteller.DataSet.FieldByName('KHERNR').AsString;

  with DataModule1.TModell do
  begin
    Close;
    ParamByName('p_khernr').AsString:= sHersteller;
    ParamByName('p_kmodnr').AsString:= sModell;
    Open;
  end;
end;

mkinzler 7. Jan 2008 16:41

Re: Von TEdit nach Grid??
 
Warum die Zwischenspeicherung und der doppelte Cast von String nach String nach String?
Delphi-Quellcode:
ParamByName('p_khernr').Value := DSHersteller.DataSet.FieldByName('KHERNR').Value;
Was wird in den Edit eingegeben?

marciboy 7. Jan 2008 16:44

Re: Von TEdit nach Grid??
 
In den Edits wird die Herstellernummer eingegeben aber nur im zusammenhang mit der Typennummer im Edit zwei.Ich weis aber nicht wie ich den Code schreibe.
Wie würdest du denn den Code schreiben?

mkinzler 7. Jan 2008 16:49

Re: Von TEdit nach Grid??
 
Delphi-Quellcode:
DataModule1.TModell.ParamByName('p_khernr').Value := Edit.Text;
DataModule1.TModell.Refresh;

marciboy 7. Jan 2008 16:56

Re: Von TEdit nach Grid??
 
Ist der Code für das Edit?

mkinzler 7. Jan 2008 16:57

Re: Von TEdit nach Grid??
 
Ja.

marciboy 7. Jan 2008 16:59

Re: Von TEdit nach Grid??
 
Für das Herstellernummernedit oder Typennummernedit?

mkinzler 7. Jan 2008 17:05

Re: Von TEdit nach Grid??
 
Der Code setzt den Parameter für die Herstellernummer

marciboy 7. Jan 2008 17:13

Re: Von TEdit nach Grid??
 
Wenn ich in die Edits klicke bekomme ich eine Benachrichtigung von Debugger-Expension "Cannot refresh now"

Delphi-Quellcode:
procedure TForm1.EditKBANR1Exit(Sender: TObject);
begin
DataModule1.TModell.ParamByName('p_khernr').Value := EditKBANR1.Text;
DataModule1.TModell.Refresh;
end;

procedure TForm1.EditKBANR2Exit(Sender: TObject);
begin
DataModule1.TModell.ParamByName('p_ktypnr').Value := EditKBANR2.Text;
DataModule1.TModell.Refresh;
end;

mkinzler 7. Jan 2008 17:22

Re: Von TEdit nach Grid??
 
Dann versuch es auf die harte Tour:
Delphi-Quellcode:
DataModule1.TModell.Close;
DataModule1.TModell.ParamByName('p_khernr').Value := EditKBANR1.Text;
DataModule1.TModell.Open;

marciboy 7. Jan 2008 17:30

Re: Von TEdit nach Grid??
 
Sobald ich ins edit2 klicke bekomme ich einen SQL Fehler "Conversion error from string"" "

haentschman 7. Jan 2008 17:36

Re: Von TEdit nach Grid??
 
... ist Dein Datenfeld in der Tabelle kein StringFeld ?

marciboy 7. Jan 2008 17:48

Re: Von TEdit nach Grid??
 
ich meine schon.

haentschman 7. Jan 2008 17:56

Re: Von TEdit nach Grid??
 
... dann mußt du gucken... :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.
Seite 1 von 2  1 2      

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