Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DB-Komponente gesucht (https://www.delphipraxis.net/154261-db-komponente-gesucht.html)

andimar 3. Sep 2010 12:33

DB-Komponente gesucht
 
Liebe Gemeinde, ich stehe vor einem Implementierungsproblem und suchte im Netz schon danach, habe aber nichts passendes gefunden.

Was soll getan werden? Es geht im Prinzip um eine Artikelliste.

Abhängig von der Art des Eintrags (kann der Anwender wählen):

- reine Anmerkung - der Eintrag besteht nur aus einem DBMemo (ist insofern ein Mehrzeiler)
- "normaler" Artikeleintrag: Artikelnummer, Menge, Einzelpreis, Gesamtpreis (also ein Einzeiler)

und weiteres.

Also zusammengefaßt:

Ähnlich einem DBCtrlGrid, jedoch jede Zeile verschieden, unterschiedliche Höhe, andere sichtbare Komponenten.

Das Programm wird die sichtbaren Komponenten jeder Zeile verwalten, wie gesagt ist die Sache die daß bei der Darstellung jede Zeile eine andere Höhe haben kann und die enthaltenen Komponenten an/ausgeschaltet werden je nach Bedarf.

Da ich denke daß andere vor ähnlichen Problemen standen gibt es sowas bestimmt und erspart mir die bestimmt nicht triviale Selbstprogrammierung.

stahli 3. Sep 2010 13:49

AW: DB-Komponente gesucht
 
Welche Datenbank nutzt Du denn? Und wieviele Datensätze sind möglich?

Eine fertige Komponente wirst Du dafür sicher nicht finden (kann ich mir nicht vorstellen). Die Frage ist dann nur, wie Du das am einfachsten realisieren kannst.

Grundsätzlich würde ich an Panels oder Frames denken, die Du untereinander anordnest. Das hängt natürlich auch davon ab, wieviele Datensätze möglich sind und wie man (je nach Datenbank) die Verbindung auf einen bestimmten Datensatz realisieren kann.


PS: ach so ... Tach schön erst mal! :hi:

andimar 3. Sep 2010 14:54

AW: DB-Komponente gesucht
 
DB ist Firebird, sollte aber egal sein.

An Panels dachte ich schon in Verbindung mit einer Scrollbox.

Nur die erforderliche Programmlogik zur Anbindung an die DB (Sätze einfügen/löschen, Position verschieben etc) läßt mich derzeit zurückschrecken

ibp 3. Sep 2010 14:55

AW: DB-Komponente gesucht
 
Hi,

es gibt denke ich etwas fertiges, kostet aber etwas ca. 100€....

TAdvStringGrid

stahli 3. Sep 2010 15:25

AW: DB-Komponente gesucht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn Du nichts anderes findest...

Ich habe mir solche Komponenten (Scrollbox + Panels) für Firebird erstellt, bin aber gerade dabei, auf XML umzustellen (alles D2009).

Die FB-Version funktioniert grundsätzlich zuverlässig, war aber noch nicht komplett fertig. Ich lege jetzt gerade mehr Wert darauf, das für XML fertig zu kriegen. Für mein Projekt (Turniersoftware) sehe ich da mehr Vorteile.

Grundsätzlich bezieht sich eine DataControl-Komponente immer auf einen bestimmten Datensatz (Tabelle, Id, Feldname). Intern werden Select- und Update-Anweisungen abgesetzt, um die Daten abzurufen oder zu schreiben.
Ein TdcPanel kann wieder beliebige andere Komponenten enthalten und weist denen einfach seine eigene oder eine ermittelte Id zu, um diese bestimmte Daten anzeigen zu lassen.

Dazu gibt es auch Mengenkomponenten (TdcListBox, TdcTabControl etc), die eine Menge von Datensätzen anzeigen. TdcListBox erzeugt dazu einfach soviele TdcPanel wie nötig und weist denen dann jeweils eine Datensatz-Id zu.
Die Einträge lassen sich verschieden anordnen, filter, sortieren verschieben, einfügen und löschen.
Bei 1000 Datensätzen sind es eben 1000 Panels - dafür ist das Konzept dann nicht so sinnvoll. Man müsste dann eben mit Filtern arbeiten.

Anbei mal ein kleiner Screenshot.
Auf meiner Homepage kannst Du "Olympic" mal laden und antesten. Alle Komponenten beruhen "noch" auf den DataControls.

Falls Du Interesse hast, schreib mal eine pn. Es ist sicher recht komplex (zumal für D2009) ausgelegt, aber vielleicht besser, als alles neu zu schreiben.

Nachtrag zum Verständnis:
Wenn man komplexe Informationen auf einem Panel anzeigen will, muss man eine Komponente ableiten, die die entsprechenden Daten zusammensucht und darstellt. Das kann durch Nutzungt von Unterkomponenten oder durch Zeichnen auf dem Canvas erfolgen.
Um EIN Feld darzustellen und zu bearbeiten, kann man die Sandard-Komponenten wie TdcEdit, TdcPanel etc verwenden.
In Verbindung mit einer TdcListBox sind auch dynamische Größenanpassungen möglich. Die Items (TdcPanels) müssen dazu der TdcListBox in der sie enthalten sind auf Anfrage ihren Platzbedarf mitteilen. Im "Olympic" sieht man die Größenanpassung z.B. bei der Vereinsdefinition und den Melee-Runden-Spielen.

rvp71 3. Sep 2010 18:16

AW: DB-Komponente gesucht
 
TAdvStringGrid benutze ich auch, ist eine der praktischsten Komponenten, die ich kenne.
Ansonsten habe ich für so etwas quasi HTML generiert, je nach DB Eintrag dann halt andere Inhalte pro <td></td> Element. Das Editidieren dann ebenfalls per HTML (Pop-Up) und entsprechendem Formular. Wenn man ein wenig Zeit in die "HTML"-Generierungsklassen steckt, dann ist das eine sehr flexible Lösung. Einen brauchbaren VCL HTML Viewer kennt man ja auch: THTML von PBear, mittlerweile free.

andimar 6. Sep 2010 00:28

AW: DB-Komponente gesucht
 
Danke für die Hilfe :)

ich denke das AdvSG wird mir sehr helfen.


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