![]() |
Ersatzteilliste - Selektierung über TreeView
Hallo zusammen,
ich möchte gerne eine Ersatzteilliste erstellen. Die Ersatzteile werden in einem Listview angezeigt. Über den Treeview werden die Teile dann gefiltert. Ist nichts angeklickt, sollen alle Teile in der Liste erscheinen. Je weiter man sich in die Zweige rein klickt, um so spezifischer sollen die Teile in der Liste werden Beispiel: -> Zweig "Elektrik" alle Elektrik Teile -> Unterzweig "Kabel" nur noch alle KabelBis jetzt hab ich es hinbekommen, das die richtigen Teile im letzten Zweig angezeigt werden - vorher ist die Liste leer.-> Unterzweig "rot" nur noch alle roten Kabel Dem letzten Zweig hab ich einen eindeutigen Pointer zugewiesen, der auch der Teilegruppe in der Liste zugewiesen ist - so mache ich derzeit die Selektion zur Anzeige im Listview. Könnt ihr mich mal auf den Richtigen weg schubse, wie ich das auch in den darüber liegenden Zweigen rausfiltern kann? Steh im Moment etwas auf dem Schlauch Danke schonmal. Gruß Torsten |
AW: Ersatzteilliste - Selektierung über TreeView
Moin Torsten,
wie sind die Daten denn gespeichert? In einer Datenbank? |
AW: Ersatzteilliste - Selektierung über TreeView
Hallo Christian,
sie sollen in einem TRecord gespeichert werden. |
AW: Ersatzteilliste - Selektierung über TreeView
Und der Record wird dann verworfen? Wie ist die Pesistenz? Aber zunächst mal kannst Du ein Parent in jedem Record mitführen. Und dann suchst Du zu jeder Ebene rekursiv alle Unterebenen.
|
AW: Ersatzteilliste - Selektierung über TreeView
Du hast nicht geschrieben, was für Ersatzteile, aber ich könnte mir vorstellen, dass die Liste ziemlich lang sein kann. Darstellung von vollständigen, langen Listen ist ressourcenintensiv und relativ nutzlos.
Um Dich etwas zu schubsen: Vergiss den Treeview als statisches Filterwerkzeug. Die Kategorien und Unterkategorien, die einen konkreten Treeview ergeben, sehen morgen vielleicht ganz anders aus. Es gibt sicher dutzende Produktmerkmale, aus denen man viele verschiedene Filterbäume aufbauen kann. Bau dir ein System, dass Teile nach Kategorie (Unterkategorie) filtern kann. Bau Dir eine Kategorie Visualisierung, die möglichst flexibel ist. Ein Klick auf Deine Kategorievisualisierung wird dann immer die gewünschten IDs zur Filterung deiner Teileliste liefern. Das nutzt Du dann als Filter für die Teileliste. |
AW: Ersatzteilliste - Selektierung über TreeView
Zitat:
Man kann einen Treeview benutzen um in eine Teilehierarchie einzutauchen aber der Zweig "rot" gibt keinen Sinn. Wie tief man den Suchbaum sinnvollerweise machen kann siehst du z.B. auf Elektronikseiten. Beispiel:
Code:
Bauteile -> Optoelektronik -> Lasertechnik -> Lasermodule
|
AW: Ersatzteilliste - Selektierung über TreeView
Zitat:
Bei der Wahl des Selektionsparadigmas sollte man sich die Frage stellen: "Wie wird gesucht?" Kennt man die Bezeichnung, dann reicht ein Eingabefeld, eine unscharfe Textsuche, fertig. Geht man jedoch wirklich hierarchisch vor, benötigt also zunächst alle Kabel, dann ist so ein Treeview mit Multiselekt in der Artikelebene und Drag&Drop auf die ausgewählten Artikel schon sinnvoll. Es spricht auch nichts dagegen, mehrere Paradigmen umzusetzen. Eine Treeview zu filtern passt allerdings nicht zum lazy-load, weil man entweder durch das Filtern der Daten das lazy load aushebelt (weil alles angezeigt wird) oder unvollständig filtert (wegen lazy load). Wenn Du das mit einer TV umsetzen willst, würde ich zunächst die Daten filtern, hierarchisch sortieren und aus der gefilterten Liste das TV komplett aufbauen. Wenn Du -wie schon erwähnt- zu viele Artikel hast, wird das aber grottenlangsam, weswegen dann hier ein VTV vorzuziehen ist. Das VTV gibt es ![]() |
AW: Ersatzteilliste - Selektierung über TreeView
Hallo zusammen,
erstmal danke für Eure Antworten. Zitat:
Viele Kleinteile (vor allem für aufwändige Um- oder Nachrüstungen) sind nicht in dem System da von Zulieferern oder nur umständlich zu ermitteln und stehen derzeit in einer Papierliste - die Teilnummer müssen händisch in das System eingetippt werden. So könnte man die "Einkaufsliste" durch klicken zusammenstellen und an das System übertragen. Die Liste hat derzeit ca. 1.500 Teile. Hier steht die Teilnummer, die Benennung und noch 2 weitere Definitionen (Wert / Farbe / etc). Alles mit jeweils 25 Zeichen (also 100 Zeichen Je Teil) Bilder, Beschreibungen und Ähnliches kommt nicht mehr dazu. Zitat:
Das ganze (Der Suchbaum) sollte Sinniger weise vom User bzw Admin einstellbar sein und nicht Statisch von der Software vorgegben. Das macht die Sache nicht gerade einfacher... Der TV ist auch nur Suchbaum zur Selektierung. Die eigentlichen Teile werden in einem Listview aufgelistet. Zitat:
Den VTV muss ich mir dann doch nochmal genauer anschauen. |
AW: Ersatzteilliste - Selektierung über TreeView
Zitat:
Du hast mehrere Kabelstärken (0.5, 1, 2, 4, 10mm^2) sowie mehrere Farben (rot, grün, blau, schwarz). Was ist jetzt wichtiger: die Kabelstärke oder die Farbe? Tja, es kommt drauf an. Für den einen ist die Kabelstärke wichtiger; für den anderen die Farbe. Würde man den Baum weiterführen, gäbe es 5 Knoten für die Kabelstärke und darunter jeweils 4 Knoten für die Farbe (5 * 4 = 20 Unterknoten). Man könnte auch mit der Farbe beginnen (4 Knoten) und darunter die Kabelstärke (5 Knoten) und käme wiederum auf 20 Unterknoten. Wenn man beides haben will; also sowohl über Farbe als auch Kabelstärke sich den Baum hinunterbewegen möchte braucht man 40 Unterknoten. Problem: alle Kabel sind dann auf 2 Wegen auffindbar und damit auch doppelt im Baum enthalten. Würde man ein weiteres Attribut hinzufügen (z.B. Hersteller) dann multipliziert sich das Ganze mit der Anzahl der Hersteller. Daher muss der Baum dort enden, wo Attribute (Farbe, Kabelstärke, Hersteller, Länge, ...) ins Spiel kommen. |
AW: Ersatzteilliste - Selektierung über TreeView
Vielleicht wäre eher ein filter- und gruppierbares Grid interessant, in dem man die Dtenmenge immer weiter einschränken kann.
|
AW: Ersatzteilliste - Selektierung über TreeView
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, Metchu,
ich arbeite bei einem Automobilzulieferer und habe vor etlichen Jahren damit begonnen, in Delphi eine TeileDB zu implementieren. Ziel war es, baugruppenorientierte Stücklisten zu erzeugen. Meine Datenstruktur stellt sich wir folgt dar: Projekt - Baugruppe/Lieferumfang - Unterbaugruppen. Zwischen Projekt und Baugruppe kann ich beliebige Unterverzeichnisse einfügen. Die Verzweigungstiefe innerhalb einer Baugruppe ist ebenfalls beliebig. Einzelteile verwalte ich in einer TList, ebenso Projekte und Baugruppen. Baugruppen und Einzelteile beschreibe ich in einem entsprechenden Dialog. Die Datenstruktur entsteht in einer Treeview. Projekte und Baugruppen werden dem entsprechenden Treeview.Node.Data zugewiesen, Einzelteile werden innerhalb der Baugruppe einer TList-Struktur zugewiesen. In der StringGrid daneben wird mir der Inhalt des angewählten Node.Data angezeigt. Alle Daten speichere ich in einer Ini-ähnlichen Textdatei. Die Methoden, die ich verwende, sind rustikal, um nicht zu sagen brachial, aber die Performance ist so gut, daß ich keinen Grund habe, dies zu ändern. Ich will Dir hier keine fertige Lösung präsentieren, sondern Dir nur sagen, daß klappt schon mit einer Treeview, wenn auch mit viel Geduld und Spucke. Grüße Sigi Sandl |
AW: Ersatzteilliste - Selektierung über TreeView
Hallo,
was haltet ihr davon: Ich würde erst mal eine Datenbank die SQL verarbeiten kann verwenden, um die Teile zu speichern. Dann in einer Text-Datei (.INI) den Aufbau des Suchbaumes mit den dazugehörigen SQL-Statements definieren. So ist das System sehr flexibel und ohne jegliche Programmänderung anpassbar, performant und zudem auch relativ schnell und einfach zu realisieren. Und zur Anzeige ein Treview und ein DBGrid auf die Form, das wars. |
AW: Ersatzteilliste - Selektierung über TreeView
Zitat:
Zitat:
Aber so ähnlich wie in Deinem Screenshoot sieht es auch bei mir aus :) Zitat:
Die "Feinheiten" der Selektion (Kabelfarbe, Stärke der Sicherung, Wattzahl der Glühlampe) soll über das ListView erfolgen. Hier stehen dann pro Endgruppe je nach Typ maximal 10 Positionen drinne (Benennung, Freier Wert 1 (z.B. Wattzahl), Freier Wert 2, Teilenummer) Evt ist es aber doch sinnvoll, die Anzeige der Teile im Listview bei nicht vollständig gewähltem Knoten wegzulassen... |
AW: Ersatzteilliste - Selektierung über TreeView
Zitat:
![]() An der Verwendung einer Datenbank scheitert es also nicht, denn die Starter-Edition hat ein TDatasource für den Zugriff auf die BDE mit dabei, und mehr brauchst du auch nicht für Nexus. Außerdem, falls es jetzt ein Einplatz-System ist, und später mal ein Arbeitsplatz dazu kommen sollte, dann ist das in weniger als einer Stunde fix und fertig. |
AW: Ersatzteilliste - Selektierung über TreeView
Also das ganze soll eine Mehrplatzversion werden.
Die EXE kommt auf ein Netzlaufwerk, wo alle drauf zugreifen. In einem anderem Project hab ich das mit Records gelöst, klappt auch super, nur mit wesentlich weniger Daten... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 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