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: Datensatz nur in einer Zeile? (https://www.delphipraxis.net/4597-dbgrid-datensatz-nur-einer-zeile.html)

Hansa 5. Mai 2003 20:15


DBgrid: Datensatz nur in einer Zeile?
 
Hallo,

die Frage ist einfach, die Antwort aber nicht. Kann ich einen Datensatz (bzw. eine Datenmenge) so aufteilen, daß ich sie nicht nur in einer Zeile anzeigen kann? Tja, wie geht das, wenn überhaupt?

MrSpock 6. Mai 2003 09:42

Hallo Hansa,

schau dir mal TDBCtrlGrid an, das sollte deinen Anforderungen genügen.

Hansa 6. Mai 2003 10:13

Stimmt ! DBctrlGrid ! Delphi hat mittlerweile so viel Funktionen, daß man bald nicht mehr durchblickt. Oh je *kopfraucht* damit habe ich mal kurz was gemacht.

Hansa 6. Mai 2003 10:26

Und schon die nächste Frage : das ganze soll ein Eingabeformular werden. Und es soll nur soviel angezeigt werden, wie auch eingegeben wurde. D.h., falls ein Eintrag abgeschlossen wurde, soll ein neuer leerer erzeugt werden. Zusätzlich soll noch die Anzahl der Positionen angezeigt werden, in einem normalen Label. Was auf die Frage hinausläuft, ob es möglich ist so was in das DBctrlGrid zu integrieren.

MrSpock 6. Mai 2003 11:44

Hallo Hansa,

ich verstehe die Frage nicht ganz. Mit dem DBCtrlGrid hast du die Möglichkeit die Felder nahezu beliebig innerhalb einer Zeile anzuordnen und trotzdem mehrere Datensätze auf einmal anzuzeigen.

Zitat:

Und es soll nur soviel angezeigt werden, wie auch eingegeben wurde.
Das verstehe ich nicht. Meinst du es können einige Felder eines Datensatzes leer bleiben? Oder willst eine variable Anzahl von Zeilen in einem Feld?

Hansa 6. Mai 2003 12:20

Hi,

wahrscheinlich habe ich die letzte Zeit zuviel programmiert. 8) Oder, was ich vorhabe ist doch der falsche Weg. Ich muß weiter ausholen. Ich will ein Formular, in das ich Werte eingebe, die dann in die DB reingeschrieben werden. Es geht vorwiegend um ein Insert von Datensätzen. Gleichzeitig sollen auch nicht veränderbare Daten angezeigt werden und das nicht in einer Zeile, sondern in zwei. Letzteres ist klar, das geht mit dem DBctrlGrid.

Aber im Moment bin ich soweit, daß das ganze Grid von vorneherein mit Werten gefüllt ist. Wie gesagt, es ist ein Eingabe-Formular. Wenn es prinzipiell gehen sollte, dann ist es bestimmt ein kleiner Denkfehler. Wenn! Ich steh vielleicht irgendwo auf dem Schlauch. Guckt euch mal den Borland-Tauchladen in der OH (für DBctrlGrid) an. Da wird auch eine Rechnungs-Nr. verlangt und anscheinend dann die zugehörigen Daten angezeigt. So was kriege ich halt irgendwie nicht gebacken.

MrSpock 6. Mai 2003 14:25

Hallo Hansa,

hab gerade wenig Zeit, aber das mit dem Tauchladen läuft über Master/-Detailtabellen Verknüpfungen.

Hansa 6. Mai 2003 16:14

Hi MrSpock,

gibt es für Borlands Tauchladen auch irgendwo ein Beispiel? Master-Detail spielt außerdem hier doch noch keine Rolle, oder doch? Ich muß doch zuerst mal irgendwas eingeben können, bevor diese Geschicht ins Rolen kommt.

MrSpock 6. Mai 2003 21:08

Hallo Hansa,
die Tauchladen Beispieldatenbank gehört zu der Vollversion von Paradox. Sie nutzt neben Paradox Tabellen auch Formulare, Abfragen (sogenannte qbe (query ba example) Abfragen), etc.

Zu deinem Problem: Du kannst ja auf das DBCridControl alle Komponenten der Datenzugriffspalette nutzen. So könntest du Datenfelder, die nur angezeigt werden sollen über DBText Felder, die änderbaren über DBEdit Felder realisieren.

Wenn du Daten hast, die zueinander gehören, aber von denen du nicht weist, wieviele Daten von einem Typ zu einem anderen gehören, handelt es sich meistens um eine sogenannte 1:N Verknüpfung von 2 Tabellen. Beispiele: Du hast Rechnungen (1. Tabelle), die beliebig viele Positionen enthalten können (2. Tabelle) oder du hast einen Abteilungsleiter (1. Tabelle: Abteilung), der beliebig viele Mitarbeiter haben kann (2. Tabelle: Mitarbeiter).

Dein zweites Anliegen, suchen einer Rechnung über Rechnungsnummern: Du nutzt dazu z.B. ein normales Editfeld, nach Betätigen des "Suchen" (oder "Finden") Schalters, suchst du in einer Tabelle die Rechnung mit der angegebenen Nummer.

Wenn du noch etwas genauer beschreibst, was du erreichen willst, könnte ich dir einen Tip geben, welcher Mechanismus hier am besten geeignet ist.

Hansa 6. Mai 2003 21:21

Hi,

gut, nehmen wir mal eine Rechnung. Die ist am Anfang natürlich leer. Dann wird die Bestellung eingegeben. Die Art.Nr. wird eingeben, Art. vorhanden -> Menge -> Neue Zeile -> Menge usw. Das ist alltäglich. Übrigens wollte ich das ganze eigentlich mit einem Edit zumindest für die Nr. machen, aber das ist inkompatibel zu dem DBctrlGrid.

Und dann kommts noch härter: setze ich das DS active:=true dann ist das ganze Grid mit Werten bestückt. Ist das false sagt er mir Editmode nur möglich, falls DS = active. Also kann ich mir nur was anzeigen lassen, aber nichts eingeben.

Ich vermute, das ist ein kleiner Denkfehler, denke nicht zu tief.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 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