Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid/DBEdit (https://www.delphipraxis.net/109274-dbgrid-dbedit.html)

ShortyHL 27. Feb 2008 11:33

Datenbank: Table (Datenbankoberfläche) • Zugriff über: BDE (Table) / DataSource

DBGrid/DBEdit
 
Guten Tag,

ich versuche mich seit Tagen an der eigenen Programmierung der Verwaltung von Datensätzen (Hinzufügen, Editieren, Löschen).

Zu meinem Problem:

Ich habe ein DBGridfeld und zu jedem Spaltennamen dazugehörige DBEditfelder (für die spätere Ausgabe des selektierten Datensatzes).
Ich möchte nun einen Datensatz (mit der Maus) selektieren und über einen Button (BitBtn) diesen selektierten Datensatz in die DBEditfelder einfügen.

Die Funktionsweise ist ja auch schon gegeben, und zwar, wenn man den Datensatz selektiert, werden die DBEditfelder automatisch schon neu gefüllt, aber ich möchte eben genau diese Funktionsweise über den BitBtn regeln.

Hat jemand von euch eine Idee?

Danke schonmal im Voraus für jegliche Hilfe

Mit freundlichen Grüßen
ShortyHL

mkinzler 27. Feb 2008 11:37

Re: DBGrid/DBEdit
 
Verbinde die Felder bei Bestätigen des Buttons mit dem DataSet

stahli 27. Feb 2008 11:40

Re: DBGrid/DBEdit
 
Hallo ShortyHL,

herzlich willkommen erst mal :-)

Die DBEdit´s zeigen immer den aktuellen Datensatzinhalt an. Das macht ja auch Sinn.
Wenn Du im DBGrid durch die Datensätze scrollst (Müller, Meier, Schulze) wäre es ja verwirrend, wenn der Nutzer in dem benachbarten DBEdit immer noch "Müller" sieht...

Due könntest aber die DBEdits z.B. auf ein gesondertes Formular setzen und dieses erst bei Bedarf über einen BitBtn öffnen. Dann sieht der Nutzer die Eingabefelder erst, wenn er sie braucht.

Oder habe ich das falsch verstanden?

stahli

ShortyHL 27. Feb 2008 11:45

Re: DBGrid/DBEdit
 
Genauso handhabe ich es zurzeit auch :).

Im ersten Formular sind die DBEditfelder und wenn der Button geklickt wurde, um einen Datensatz zu laden, wird das erste Formular auf "hidden" gesetzt und das zweite Formular auf "visible". Im zweiten Formular kann man nun über ein DBGrid einen Datensatz auswählen und dann sollte man über einen Button "laden" diesen Datensatz in die DBEditfelder aus dem ersten Formular einfügen, gleichzeitig wird dann das zweite Formular versteckt und das erste Formular wieder angezeigt.


Zu mkinzler:

D.h. eine Zuweisung?

Form1.DBEdit1.Text := Form2.DataSource1.DataSet.[und wie gehts weiter?];

mkinzler 27. Feb 2008 11:51

Re: DBGrid/DBEdit
 
Delphi-Quellcode:
Form1.DBEdit1.DataSource := Form2.DataSource1;
Und danach .DataSource wieder auf Nil setzen.

ShortyHL 27. Feb 2008 12:03

Re: DBGrid/DBEdit
 
Hui, dass es dann sooo einfach geht, hätte ich nicht gedacht :). Vielen Dank dafür.

Gibt es auch eine Möglichkeit, ein DBEditfeld vorher zu füllen?

Wollte nämlich beim erstellen eines neuen Datensatzes ein Datum einfügen im Format "Datum Zeit".

Wenn ich nun über "Form1.DBEdit10.DataSource := DateTimeToStr(Date());" versuche das Datum automatisch einzufügen, erhalte ich eine Fehlermeldung, dass "TDataSource und String" inkompatible Typen sind.

Union 27. Feb 2008 12:15

Re: DBGrid/DBEdit
 
Du kannst ganz normal das Feld füllen. Die Eigenschaft im TDbedit heißt DataField. Also z.B. (aber ich finds nicht schön):
Delphi-Quellcode:
Form1.DBEdit10.DataSource.DataSet.FieldByName('Datum').AsDateTime := Now;

shmia 27. Feb 2008 12:37

Re: DBGrid/DBEdit
 
Liste der Anhänge anzeigen (Anzahl: 1)
@ShortHL: du machst das viel zu kompliziert und schränkst den Benutzer unnötig ein.
Gib dem Benutzer doch einfach 2 Ansichten der gleichen Datenmenge - einmal als Liste und einmal als Details.
Du brauchst so nicht einmal etwas programmieren, sondern nur ein Pagecontrol mit 2 Seiten auf Formular setzen.
Auf der 1. Seite ist die Liste (DBGrid), auf der 2. Seite sind die einzelnen DBEdit-Felder.
Siehe Anhang.

ShortyHL 27. Feb 2008 15:15

Re: DBGrid/DBEdit
 
@shmia:

Sicherlich hätte ich es auch über ein DBNavigator machen können, aber wollte dem Kunden die Bedienung noch einwenig vereinfachern und ebenfalls auch mit grafischen Buttons arbeiten.

@Union: Vielen Dank für den Lösungsvorschlag: Klappt super.



Gibt es noch die Möglichkeit, DBEditfelder mit einem numerischen Feldtyp "links" auszurichten? Die Feldwertausrichtung ist bei der "Ansicht" rechtsbündig und sobald ich ins das Feld klicke, wird sie automatisch links ausgerichtet. Kann man es standardmäßig immer links ausrichten lassen?

Jelly 27. Feb 2008 15:34

Re: DBGrid/DBEdit
 
Zitat:

Zitat von ShortyHL
Gibt es noch die Möglichkeit, DBEditfelder mit einem numerischen Feldtyp "links" auszurichten? Die Feldwertausrichtung ist bei der "Ansicht" rechtsbündig und sobald ich ins das Feld klicke, wird sie automatisch links ausgerichtet. Kann man es standardmäßig immer links ausrichten lassen?

Dein Dataset enthält eine Fields-Liste. Dort kannst du so Sachen einstellen. Dürfte Allign heissen, wenn mich nicht alles täuscht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr.
Seite 1 von 2  1 2      

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