![]() |
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 |
Re: DBGrid/DBEdit
Verbinde die Felder bei Bestätigen des Buttons mit dem DataSet
|
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 |
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?]; |
Re: DBGrid/DBEdit
Delphi-Quellcode:
Und danach .DataSource wieder auf Nil setzen.
Form1.DBEdit1.DataSource := Form2.DataSource1;
|
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. |
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;
|
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. |
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? |
Re: DBGrid/DBEdit
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 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