Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mit DBGrid zu Datensatz springen und öffnen (https://www.delphipraxis.net/149305-mit-dbgrid-zu-datensatz-springen-und-oeffnen.html)

commandcraxx 18. Mär 2010 13:49

Datenbank: Paradox • Version: 7 • Zugriff über: per Datei auf Platte

Mit DBGrid zu Datensatz springen und öffnen
 
Hi Leute,

also entweder ich bin zu doof oder Google hat heute mal wieder nichts passendes für mich ^^

Mein Problem:

Ich hab eine Tabelle geöffnet in einem DBGrid. Beim Grid ist RowSelect auf True und MultiSelect false. Wenn man auf die Row Klickt soll in einem neuen Formular der Datensatz geöffnet werden. Soweit so gut. Das Formular öffnet sich aber ich komm immer wieder am Anfang der Tabelle raus oder an dem Datensatz an dem gerade der Navigator stehen geblieben ist.

Meine Frage:

Wie bekomm ich es hin, dass ich per Klick direkt auf den Datensatz springen kann, so dass die verknüpften DBText's und DBEdit's etc. die richtigen Daten im neuen Formular anzeigen?

Danke im vorraus

Infos:
DB: Paradox 7
Delphi 7


Mit freundlichen Gruß

CommandCraxX

DelphiBandit 18. Mär 2010 14:18

Re: Mit DBGrid zu Datensatz springen und öffnen
 
Wenn in dem Detailformular die gleiche Datasource für die DBEdits usw. genutzt wird wie für das DBGrid, sollte Dir dort automatisch der korrekte Datensatz zum ändern angeboten werden. Eigentlich braucht man nur auf Doppelklick reagieren und das Detailformular anzeigen.

Paradox ist bei mir zwar schon sehr lange her, sollte sich imho aber genauso verhalten wie mit einer SQL-Datenbank als Datenquelle.

Als Tipp, einfach mal das Detailfenster parallel zum Gridfenster mit anzeigen lassen. Also erstmal ohne auf den Klick zu reagieren, sondern beide nebeneinander anzeigen.

commandcraxx 18. Mär 2010 14:39

Re: Mit DBGrid zu Datensatz springen und öffnen
 
Hab deinen Rat befolgt und hab das Fenster Sichtbar gemacht, er switched in den Datensätzen hin und her. Aber wenn ich über mein "Öffnen" Button (den Klick) das Fenster öffne steh ich wieder am ersten Datensatz. Warum?

Das macht der Doppelklick:

Code:
Form4.DBText1.DataField          := 'Menge';
Form4.DBText2.DataField          := 'Mindestbestand';
Form4.DBText3.DataField          := 'ID';
...
Form4.Show;

Edit

Hab mal die DataField Zuweisung direkt nach dem öffnen des Tables für das Datail Formular gemacht. und hab die Zuweisung beim Klick weggelassen. Aber ohne erfolgt.

Jetzt kommt das Komische, solange ich das Fenster wärend der Zuweisung im "Show" also sichtbar hab, gehts sobald ichs zu mach funktioniert es nicht mehr :wiejetzt:


MfG

pmoegenb 18. Mär 2010 16:32

Re: Mit DBGrid zu Datensatz springen und öffnen
 
<<Wenn in dem Detailformular die gleiche Datasource für die DBEdits usw. genutzt wird wie für das DBGrid

Hast Du das ebenfalls befolgt ? Es sieht nämlich so aus, als ob Du mit 2 unterschiedlichen Datasources arbeitest.

commandcraxx 18. Mär 2010 16:40

Re: Mit DBGrid zu Datensatz springen und öffnen
 
hab nur eine DataSource ... ich hab mein Artikel oben eben mal aktualisiert bitte mal EDIT lesen ^^ :oops:



Zitat:

Zitat von commandcraxx
Hab mal die DataField Zuweisung direkt nach dem öffnen des Tables für das Datail Formular gemacht. und hab die Zuweisung beim Klick weggelassen. Aber ohne erfolgt.

Jetzt kommt das Komische, solange ich das Fenster wärend der Zuweisung im "Show" also sichtbar hab, gehts sobald ichs zu mach funktioniert es nicht mehr :wiejetzt:


commandcraxx 19. Mär 2010 07:12

Re: Mit DBGrid zu Datensatz springen und öffnen
 
Problem gelöst

Hab den Fehler gefunden. ^^

Wenn man Komponenten auf einem anderen Formular mit der DatenSource auf der Mainform verknüpft, ist darauf zu achten, dass die zusätzlichen Formulare nicht mit "Close" beendet. Statt dessen bietet sich hier "Hide" oder das simple "Visible" an. Wenn man das beachtet, sind die Datenbankelemente auch an dem Datensatz, den man vorher im DBGrid ausgewählt hat.

Danke an alle

MfG
CommandCraxX

pmoegenb 19. Mär 2010 09:06

Re: Mit DBGrid zu Datensatz springen und öffnen
 
Trifft meines Erachtens nur zu, wenn mit dem Form.Close auch die Tabelle (Ereignis: OnClose) geschlossen wird.

DelphiBandit 19. Mär 2010 09:52

Re: Mit DBGrid zu Datensatz springen und öffnen
 
Zitat:

Zitat von commandcraxx
Problem gelöst
dass die zusätzlichen Formulare nicht mit "Close" beendet
CommandCraxX

Könnte es sein, dass Du aus Versehen ggf. nicht das Fenster mit Close beendest, sondern die Datasource zu machst. Oder im Close des Formulars ggf. eine entsprechende Anweisung hast, welche die Datenquelle schliesst. Weil eigentlich kann man Formulare auch schliessen, ohne dass sich an dem Datensatzzeiger etwas ändert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr.

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