Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Kreuztabelle und Visualisierung (https://www.delphipraxis.net/69236-kreuztabelle-und-visualisierung.html)

Der Jan 12. Mai 2006 08:40

Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus

Kreuztabelle und Visualisierung
 
Hallo zusammen,

ich habe eine Frage eher grundlegender Natur...

Und zwar habe ich zwei DB-Tabellen, eine enthält Daten über Bauteile, die zweite Fehlercodes.
Nun kann jedes Bauteil mehrere Fehlercodes haben, also habe ich eine dritte Tabelle erstellt, in der die entsprechenden Verknüpfungen stehen (Felder: eigener PK und zwei FK für Bauteil und Fehlercode).

Nun bin ich auf der Suche nach einer einfachen Lösung, um das ganze zu visualisieren und zu editieren.
Im Prinzip wäre das ja ein Grid, die Zeilenbeschriftung aus der Teile-Tabelle, die Spaltenbeschriftung aus der Fehlercode-Tabelle und im eigentlichen Grid setzt man Häkchen oder Kreuze woraus die entsprechenden Einträge in Verknüpfungstabelle erzeugt werden.
Ich habe schonmal bei Torry nach einer passenden Komponente gesucht, aber leider nix passendes gefunden.
Kennt jemand eine entsprechende Komponente bzw. eine Lösung, wie man das z.B. mittels DBGrid oder besser DevExpressQuantumGrid realisieren könnte?

Hoshy 12. Mai 2006 12:48

Re: Kreuztabelle und Visualisierung
 
Mmmh, vielleicht ist das TExRxDBGrid ja eine Hilfe:

http://www.torry.net/quicksearchd.ph...Grid&Title=Yes

Zeilenbezeichnungen lassen sich damit realisieren, indem Du eine LockedColumn benutzt. Die Werte dafür liefert ein passendes Feld Deiner Tabellen, oder Du baust ein passenden Pseudofeld in Dein SELECT Statement ein, oder Du definierst ein berechnetes Feld im DataSet selbst.

Das Grid ist in der Lage, auch Checkboxen darzustellen, hab' ich selbst aber noch nicht gemacht. Da der Quellcode aber dabei ist, kannst Du gucken, wie es funktioniert...Allerdings setzt das Grid auf die RX Library auf, die Du also auch installieren musst:

http://www.torry.net/quicksearchd.ph...rary&Title=Yes

shmia 12. Mai 2006 12:53

Re: Kreuztabelle und Visualisierung
 
Du könntest ein TStringGrid verwenden mit FixedRows=1, FixedCols=1.
1.) zählen, wieviele Fehlercodes es gibt. diese werden waagerecht abgetragen
Cols = AnzahlFehlercodes+1
2.) die Fehlercode werden in einer TStringList gespeichert, um bei 4.) die richtige Spalte zu finden
3.) Für jedes Bauteil wird nun eine neue Zeile hinzugefügt
Schleife über
SQL-Code:
SELECT * FROM Bauteile
4.) Schleife über
SQL-Code:
SELECT * FROM BauteilFehlercodes WHERE IdBauteil=:aktuellesBauteil
und die passenden Zellen mit einem '*' füllen

Da die '*' optisch nicht so ansprechend sind, könntest du das Event
OnDrawCell benützten um statt des '*' ein hübsches Icon zu zeichnen.

Der Jan 15. Mai 2006 08:34

Re: Kreuztabelle und Visualisierung
 
Hallo, erstmal danke für die Tips. Ich hab mir die Komponente mal angeschaut, ist nicht so ganz, was ich suche, ich meine die Darstellung ist ok, die könnte ich aber auch mit DevExpress machen. Die eigentliche wichtige Funktionalität, das Zurückschreiben in die DB ist da aber auch nicht vorhanden.
Dann werd ich wohl erstmal bei meiner jetzigen Lösung bleiben, ein DB-Grid mit den Teilen und eine ChecklistBox mit den Fehlercodes, wenn man ein Teil auswählt, werden die Einträge in der Checklistbox entsprechend gesetzt.
Wenn ich die Zeit dazu finde, werd ich wohl mal was schreiben (neue Komponente oder auf einer schon existierenden aufsetzen), was ich dann auch hier posten werde, aber wann ich die Zeit finde, steht noch in den Sternen :gruebel:


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