![]() |
Suchdialog in DBGrid öffnen
Hi Leute, ich habe ein DBGrid in der man einen Mitarbeiter, sowie seine ID und seine Arbeitsgruppe eintragen kann/muss/soll.
Hierfür habe ich einen Suchdialog geschrieben, wo man sich den Mitarbeiter raussuchen kann. Allerdings weiß ich nicht, wie ich über meinen Suchdialog, in die bestimmte Zeile meines DBGrids eintragen kann. Ich bin mir nicht sicher, ob man das eventuell mit einem Button (oder ähnlichem) in der jeweiligen Zeile schaffen kann und bräuchte dabei ein wenig Hilfe von euch |
AW: Suchdialog in DBGrid öffnen
Wäre es nicht einfacher, diese Suche direkt im Grid (LookUp) zu implementieren?
|
AW: Suchdialog in DBGrid öffnen
Weiß ich nicht, da ich LookUp nicht kenne, ich les mich da jetzt aber mal rein
|
AW: Suchdialog in DBGrid öffnen
Also ich versteh dieses LookUp irgendwie nicht :wall:
Aber ich denke wenn ich in eine Spalte des DBGrids einen Button oder ähnliches einbaue, sollte das doch dann auch über mein Suchfenster funktionieren Allerdings weiß ich nicht wie man das machen, bzw ob das überhaupt funktioniert [Edit]Könnte man das ganze nicht auch mit einem OnCellClick machen ?[/Edit] |
AW: Suchdialog in DBGrid öffnen
Ja, beim OnCellClick bekommst Du die passende Zelle in Column mitgeteilt.
Ungefähr sowas:
Delphi-Quellcode:
procedure TfmMain.DBGrid1CellClick(Column: TColumn);
begin DBGrid1.DataSource.Edit; Column.Field.AsString := ErgebnisDesSuchdialoges; // Wenn's 'ne ID ist halt .AsInteger ... DBGrid1.DataSource.Post; end; |
AW: Suchdialog in DBGrid öffnen
Danke schonmal nahpets, kann man auch sofort mehrere Cells mit einer Suche eintragen ?
Also wenn ich Vorname:Angela Nachname:Merkel Kürzel:AM auswähle sofort in alle drei Spalten eingetragen wird ? |
AW: Suchdialog in DBGrid öffnen
Der markierte datensatz ist der aktive Datensatz der Datenmenge.
Delphi-Quellcode:
procedure TfmMain.DBGrid1CellClick(Column: TColumn);
begin DBGrid1.DataSourcetb.Edit; <DS>.FieldByName('name').Value := ... ... DBGrid1.DataSource.Post; end; |
AW: Suchdialog in DBGrid öffnen
Okay, das habe ich jetzt soweit übernommen, allerdings bekomme ich für das
Delphi-Quellcode:
eine Fehlermeldung, da "Post" nicht in TDataSource enthalten ist.
DBGrid1.DataSource.Post;
|
AW: Suchdialog in DBGrid öffnen
Dann versuch mal
Delphi-Quellcode:
DBGrid1.DataSource.Dataset.Post;
|
AW: Suchdialog in DBGrid öffnen
Sorry, Schreibfehler:
Delphi-Quellcode:
DBGrid1.DataSource.DataSet.Post
Kannst natürlich auch da direkt den Namen Deiner Datenbankkomponente hinschreiben, also das, was im TDataSource zum DBGrid in DataSet steht. Wenn da z. B. Table1 drinne steht, kannst Du im Queltttext
Delphi-Quellcode:
schreiben.
Table1.Edit;
... Table1.Post; |
AW: Suchdialog in DBGrid öffnen
Damit klappts :thumb:
Eine letzte Frage habe ich noch, wie bekomme ich das Erbegnis des Suchdialoges ? Ich habe es mit SuchForm.DBGrid1.SelectedRows('Name') gemacht, ist allerdings falsch wie ihr vermutlich wisst :lol: |
AW: Suchdialog in DBGrid öffnen
Kann mir niemand weiterhelfen ?
|
AW: Suchdialog in DBGrid öffnen
Bitte beschreib' etwas genauer, was Du machen willst.
Dann benenne die Fehlermeldung, "ist allerdings falsch wie ihr vermutlich wisst", ist etwas dünn. Dann noch dazu den Quelltext, in dem das Problem auftritt. So ist es etwas viel zuwenig, um da irgendeine Antwort drauf zu geben, die letztlich nur eine vage Auskunft aus 'ner stark getrübten :glaskugel: sein könnte ;-) |
AW: Suchdialog in DBGrid öffnen
Hat sich grade erledigt, ich hatte das Problem, dass ich nicht wusste, wie ich meine benötigten Daten aus dem Suchdialog erhalte, ich habe das jetzt allerdings mit
Delphi-Quellcode:
gelöst
Query.FieldByName('Nachname').Value := SuchForm.DBGrid1.SelectedField.Text;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 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 by Thomas Breitkreuz