![]() |
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 |
Re: Von TEdit nach Grid??
Entweder TEdit verwenden oder im .onChange des Edits auf Änderung reagieren.
Wie greifst du auf die Datenbank? |
Re: Von TEdit nach Grid??
Hallo
ich suche nur nach einer Abfrage für den Quellcode (.Exit) Datenbank über TIB_Database Gruß Marc |
Re: Von TEdit nach Grid??
ich meinte eigentlich Table oder Query?
|
Re: Von TEdit nach Grid??
Achso Sorry
TQuery |
Re: Von TEdit nach Grid??
-vorhandene Query lokal filtern: Einfach Query.Filter setzten und mit
Delphi-Quellcode:
aktivieren
Query.Filtered := True;
-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 |
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 |
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.
|
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.
|
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; |
Re: Von TEdit nach Grid??
Die Query befindet sich aber in einer andern Form (DataModule).
Muss ich noch Variablen definieren? Gruß Marc |
Re: Von TEdit nach Grid??
Einfach Name des Datenmodul davor setzen
|
Re: Von TEdit nach Grid??
Wenn ich nun auf enter klicke passiert nichts.
|
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:
:hi: |
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:
Gruß
procedure TForm1.EditKBANR1Exit(Sender: TObject);
begin DataModule1.THersteller.ParamByName( 'khernr').Value := Edit.Text; DataModule1.THersteller.Refresh; end; Marc |
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 |
Re: Von TEdit nach Grid??
Hallo
Grid - Query - DataSource |
Re: Von TEdit nach Grid??
Richtig wäre aber
Grid -> DataSource -> Query |
Re: Von TEdit nach Grid??
Stimmt hab ich falschrum geschrieben. :-)
|
Re: Von TEdit nach Grid??
Ist der Query vorher schon aktiv? sonst musst du ihn natürlich zuerst öffenen.
|
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.
|
Re: Von TEdit nach Grid??
Wie sieht die Abfrage aus?
|
Re: Von TEdit nach Grid??
Von den TEdits??
|
Re: Von TEdit nach Grid??
... 2 Grids
2 x Grid -> DataSource -> Query :gruebel: :?: gleiche DataSource / Query oder verschiedene |
Re: Von TEdit nach Grid??
Verschiedene :-)
Jedes Grid hat sein eigenes Query |
Re: Von TEdit nach Grid??
Zitat:
|
Re: Von TEdit nach Grid??
Hersteller Query:
Delphi-Quellcode:
Modell Query:
SQL.Strings = (
'select * from p_hersteller(:p_khernr) order by bez')
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; |
Re: Von TEdit nach Grid??
Warum die Zwischenspeicherung und der doppelte Cast von String nach String nach String?
Delphi-Quellcode:
Was wird in den Edit eingegeben?
ParamByName('p_khernr').Value := DSHersteller.DataSet.FieldByName('KHERNR').Value;
|
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? |
Re: Von TEdit nach Grid??
Delphi-Quellcode:
DataModule1.TModell.ParamByName('p_khernr').Value := Edit.Text;
DataModule1.TModell.Refresh; |
Re: Von TEdit nach Grid??
Ist der Code für das Edit?
|
Re: Von TEdit nach Grid??
Ja.
|
Re: Von TEdit nach Grid??
Für das Herstellernummernedit oder Typennummernedit?
|
Re: Von TEdit nach Grid??
Der Code setzt den Parameter für die Herstellernummer
|
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; |
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; |
Re: Von TEdit nach Grid??
Sobald ich ins edit2 klicke bekomme ich einen SQL Fehler "Conversion error from string"" "
|
Re: Von TEdit nach Grid??
... ist Dein Datenfeld in der Tabelle kein StringFeld ?
|
Re: Von TEdit nach Grid??
ich meine schon.
|
Re: Von TEdit nach Grid??
... dann mußt du gucken... :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 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