[A03]TreeView control - wie die aufklapp-marker zeigen?

22/08/2008 - 21:49 von Volker Neurath | Report spam
Hallo zusammen,

die Frage ist nicht deutlich daher hier etwas besser:

ich habe nun, wie im thread "Denkanschub für Datenmodell" erarbeitet, die
Tabellenstruktur aufgebaut und bin dabei, die passenden Formulare
aufzubauen.
Angefangen habe ich mit den Produktkategorien.
Für diese habe ich mir ein Formular gebaut, auf dem ich zum einen die
Hierarchie als Baumstruktur in einem Treeview darstellen möchte, zum
anderen möchte ich Kategorien dort verwalten, d.h. die Zuordnungen àndern
und neue Kategorien anlegen können.
Dazu habe ich unterhalb des Treeview im Fußbereich des Formulars die drei
buttons "OK", "Details" und "Neu". OK beendet, "Detail" ist für die
Bearbeitung der Zuordnung und "Neu" für die Neuanlage .

Genug der Vorrede, jetzt zu meinem Problem:

das Füllen des Treeview übernimmt eine Funktion wie sie Andre Minhorst in
seinem "Access -Grundlagen für Entwickler" beschrieben hat.
Das klappt, bis auf einen Punkt, hervorragend:

bei Hauptknoten, also Knoten auf oberster Ebene, wird das "[+]" oder "[-]"
vor dem Knoten nicht angezeigt - auch dann nicht, wenn diese Knoten
unterknoten hat.

Als Beispiel - Solldarstellung wàre

[-]Drucker
+--Tintendrucker
+--Laserdrucker
+--Nadeldrucker
[+]All-In-One

Ist-Darstellung ist aber

Drucker
+--Tintendrucker
+--Laserdrucker
+--Nadeldrucker
All-In-One

Plöd[tm], vorallem wenn man weiss, dass auch AIO noch unterteilt sind in
Tinte und Laser, und bei Tinte noch in "Business" und "Consumer"

Kurz: sind die Unterknoten eingeklappt ist nicht zu sehen, dass es überhaupt
Unterknoten gibt.

Was muss ich tun, damit das [+] (eingeklappt) bzw [-] (ausgeklappt)
angezeigt wird?
Stildarstellung ist eingestellt auf "...PlusMinusTextPicture"

Und: làsst sich das TreeView so ansteuern, dass nach einem Update
durch "Details" oder "Neu" dessen Inhalt ein Update erfàhrt?

Noch besser wàre, wenn man die Zuordnung anstelle über ein Formular per Drag
& Drop machen könnte... (ja ich weiss, hohe Schule..;) - aber ich hab "Blut
geleckt" ;)) )

Dann noch eine Frage:

làsst sich spàter erreichen, dass in einem anderen Treeview auf einem
anderen Formular obige Hierarchie *plus* der Zugehörigen Artikel
dargestellt werden?

Als Beispiel

[+]Drucker
[-]+--Tintendrucker
[-] +--Business-Inkjet
[+]+--B300
[+]+--B500DN

bei Klick auf die [+] vor den Druckern soll sich dann der Baum mit Zubehör,
Tinte und Garantiepaketen öffnen, Alternativ auch:

+--BusinessInkjet
+--B300
+--B500DN
[+]--Zubehör
[+]--Garantiepakete

Wie sinnvoll ist das, vorallem auch unter folgenden Gesichtspunkten:

1. es handelt sich um insgesamt gut2.000 Artikel
2. die Preislisten kann ich nur als Excel-Workbook bekommen,
dass ich dann für den Import aufbereiten muss
3. das Workbook kommt nach meinen Informationen etwa 3 - 4 mal im Jahr
4. das Access làuft nicht lokal sondern auf eimem Remote Server, ich greife
per Citrix drauf zu.

ich nehme an, dass mein ansinnen daher *gar nicht* sinnvoll ist

Auf DIESE Lösung bin ich allerdings auch nicht festgelegt, das hàngt auch
vom Aufwand (ich will mit Programmieren und Übertragen der Artikellisten
möglichst noch _vor_ weihnachten fertig sein ;) und natürlich von der zu
erwartenden Performance ab (Will bei Arbeitsoperationen nicht bis
Weihnachten warten, bis sich das TreeView gefüllt hat ;)



Volker
Im übrigen bin ich der meinung, dass TCPA/TCG verhindert werden muss
 

Lesen sie die antworten

#1 Jens Schilling
23/08/2008 - 00:20 | Warnen spam
Hallo, Volker

Volker Neurath wrote:
Treeview



Zum Thema Treeview melde ich mich gern immer wieder mit dem Link zu den
Publikationen von Michael Welling - ich kenn' keine umfassendere Darstellung
des Treeviews als seine 6-teilige Serie; Du kannst diese hier finden :

http://www.mwelling.de/Publication/index.html

Im linken Navigationsbereich auf "inside Access" geklickt, und Du bist fast
am Ziel Deiner Wünsche ;-)

Obwohl ich empfehlen würde, alle Beispiele einmal durchzugehen, beschrànke
ich mich jetzt mit bei Zitaten auf den 6. Teil, denn ...

bei Hauptknoten, also Knoten auf oberster Ebene, wird das "[+]" oder
"[-]" vor dem Knoten nicht angezeigt - auch dann nicht, wenn diese
Knoten unterknoten hat.



... (auch) dort kannst Du in dem Modul vba_TreeView_Initialize in der
Funktion TreeView_Initialize() die Initialisierung des Treeviews finden,
und darin die Festlegung des Styles :

With TreeView
...
.Style = tvwTreelinesPlusMinusPictureText
...
End With

Ein Blick in den Objektkatalog verràt, dass der Wert dieses Style 7 ist.
Es ist Geschmacksache - und es gibt ja auch andere Wege - aber bei mir würde
die Zeilen deshalb vermutlich eher so aussehen:

With TreeView
...
' tvwTextOnly = 0
' tvwTreelinesPlusMinusPictureText = 7
.Style = 7
...
End With

Insbesondere in der Entwicklungsphase stelle ich mir die in Frage kommenden
Konstanten gern als Bemerkung in den Code, und brauche dann nur schnell mal
den Wert zu àndern, wenn ich einen anderen Style nutzen möchte.

Noch besser wàre, wenn man die Zuordnung anstelle über ein Formular
per Drag & Drop machen könnte... (ja ich weiss, hohe Schule..;) -



Darum gleich mein Einstieg in den 6. Teil, denn Dein Wunsch nach der hohen
Schule wird darin behandelt.
Aber, nochmals - ich würd' der Reihe nach vorgehen; hast ja das ganze
Wochenende noch vor Dir ;-)

Dann noch eine Frage:



Klàre für Dich doch erst einmal die vorstehenden Fragen - vielleicht
erübrigt sich ja auch das eine oder andere nach dem Durcharbeiten der 6.
Lektionen. Beachte bitte unbedingt den 4. Teil - der geht umfassend auf die
theoretische Beschreibung des Controls und seiner Eigenschaften und Methoden
ein.

Gruss
Jens

Ähnliche fragen