| 20.04.2024 | https://www.picoware.de | picoware Access-Treeview - FAQ |
sitelogo
 

FAQs zu
picoware Treeview für Microsoft Access


Allgemein

Ich kann keine Treeview-Objekte kopieren

Bitte prüfen Sie, ob Sie die MDB oder die MDE/AccDE geöffnet haben. Nur aus der offenen Datenbank können Objekte kopiert werden.

Ich sehe keine Treeview-Objekte

Ggf. sind die Access-Optionen nicht entsprechend eingestellt:
Prüfen Sie bitte, ob in den Access-Optionen "versteckte Objekte anzeigen" und "Systemobjekte anzeigen" aktiviert ist. Wir haben unsere Objekte nämlich so benannt, dass sie in den Standard-Einstellungen ausgeblendet sind. Damit möchten wir verhindern, Ihre Anwendung unübersichtlich zu machen.

Welches ist das Start-Formular?

Start_Manual
Start_Mgmt ist übrigens eine Stand-Alone-Version unseres Datenbank-Explorers.

Ich bekomme haufenweise Fehlermeldungen

Bitte prüfen Sie in den Optionen der VBA-Umgebung die Variable, die die Fehlerbehandlung steuert:
Wechseln Sie mit (Alt F11) in den VBA-Editor. In den Optionen (Reiter "Allgemein") sollte "Unterbrechen bei Fehlern" auf "Bei nicht verarbeiteten Fehlern" gesetzt werden.


Einstellungen zum Design

Einrückungsfaktor für andere Schriftarten

Gibt es für den Einrückungsfaktor eine Tabelle bzw. wie kann ich diesen Wert für meine Schriftart ermitteln?
 

Der Einrückungsfaktor gibt an, um wieviele Leerzeichen pro Ebene der Text eines Eintrags eingerückt werden soll. Dieser unterscheidet sich je nach Schriftart und Schriftparametern. Am einfachsten nutzen Sie unseren "Design-optimizer" im Abschnitt "Tools". Hier können Sie alle relevanten Parameter einstellen und erhalten gleich den korrekten Source-Code, den Sie direkt in Ihre Formular kopieren können.


Gruppierungsknoten

Individuelle Icons für explizite Gruppen

Kann man eigentlich bei einer manuellen Gruppierung dem "GroupCaption" ein jeweils eigenes ICON zuweisen?

Es ist möglich, den Gruppen ein eigenes Icon mitzugeben, indem man dessen Namen im Feld "GroupIcon" übergibt. Dieses Icon gilt dann allerdings für alle Knoten der Gruppe.


Gruppierungsknoten

Ausgeblendete Navigations-Icons bleiben verschwunden

Wenn ich in einer Gruppierung einen echten Knoten öffne, der keine Unterknoten hat, wird das Navigations-Icon ausgeblendet zum Zeichen dafür, dass versucht wurde, es weiter aufzuklappen.

Das Problem: Selbst wenn ich den gesamten Knoten zuklappe und dann wieder aufklappe, bleibt ein verschwundenes Icon verschwunden.
 

Gruppierungsknoten unterschieden sich von normalen Knoten. Zum einen verstecken sie tatsächlich Knoten, was sonst ja per Definition nicht gemacht wird, zum anderen haben sie keine Interaktion mit dem Host-Form (es sei denn, man defineirt die Gruppenknoten als auswählbar). Beim Gruppieren werden die Knoten also wirklich nur ausgeblendet, blieben in der Tabelle aber enthalten.

Für den (die) echten Knoten, die Du aufklappst, wird dann wieder das Host-Form nach Unterknoten gefragt. Da keine vorhanden sind, merkt sich der TV den ChildCount=0 und löscht das Öffnen-Icon, weil dort ja keine Knoten angezeigt werden können.

Wenn man dann den Gruppierungsknoten wieder schließt, werden die echten Knoten "nur" versteckt, behalten aber ihren ChildCount=0 und das gelöschte Icon. Dieser Zustand wird beim erneuten Öffnen wieder angezeigt.


Umbenennungen aus Altversionen

Hinweise zum Update des TV in bestehenden Applikationen

In der neuen TV-Version haben wir einige Umbenennungen vorgenommen - einerseits, um für unsere Variablen und Funktionen einen klaren Namensraum zu definieren und damit Konflikte in Ihren Anwendungen zu verhindern, andererseits um auch außerhalb des deutschen Sprachraums verständliche Begriffe zu verwenden. Damit werden ggf. folgende Umbenennungen in Ihrer Anwendung notwendig (wir bitten schon mal im Vorhinein um Entschuldigung):

Version vom 02.12.2016

  • pTV_ErrorHandler --> pw_ErrorHandler
  • pCT_NewKontext --> pCT_NewContext
  • RefKontext --> RefContext
  • StateKontext --> StateContext
  • MarginText --> PaddingLeft

Version vom 02.12.2016

  • pTV_Kontext --> USys_pCT_Context
  • NewKontext --> pCT_NewContext
  • MinFormWidth --> pw_MinFormWidth
  • MinFormHeight --> pw_MinFormHeight
  • MaxFormWidth --> pw_MaxFormWidth
  • MaxFormHeight --> pw_MaxFormHeight
  • MyDatabase --> pw_Database
  • TCount --> pw_TCount
  • RefKontext --> RefContext
  • StateKontext --> StateContext

Übergreifend

...je nachdem, welcher Name verwendet wird:

  • ErrorHandler --> pw_ErrorHandler
  • pTV_ErrorHandler --> pw_ErrorHandler

Abschließend

...abschließend ggf. doppelt ersetzte Präfixe löschen:

  • pw_pw_ --> pw_

VbWatchdog

VbWatchdog löst Performanceeinbruch im Treeview aus

Bei der Verwendung von VbWatchdog beobachten einzelne Nutzer gravierende Performanceeinbrüche. Wie kann man das beheben?

Der Treeview verwendet eine eigene Fehlerbehandlung weil Fehler natürlich behandelt werden müssen, aber nicht jeder Entwickler auch VbWatchdog einsetzt. Da der Treeview auch bewußt Fehler auslöst, um auf bestimmte Systemzustände zu reagieren, kommt es bei der gleichzeitigen Verwendung von VbWatchdog zu einer Protokollierung, die - besonders, wenn diese über das Netzwerk erfolgt - zu erheblichen Verzögerungen führt.

Die Empfehlung lautet daher, die Module des Treeview von der Protokollierung durch VbWatchdog auszunehmen. Von unseren Nutzern haben wir hierfür zwei Lösungsvorschläge erhalten (herzlichen Dank an dieser Stelle):



Variante 1 unterbindt die Behandlung von Fehlern, die durch eigene Errorhandler behandelt werden:
Dazu setzt man vor dem Start des VbWatchdog mit

 ErrEx.Enable

den Parameter IgnoreHandledErrors auf TRUE.

 ErrEx.IgnoreHandledErrors = True



Variante 2 nimmt die Module des Treeview explizit in der Fehlerbehandlungsroutine des Watchdog aus:

Public Sub GlobalErrorTrap()

 'LogErrorToFile
 Select Case ErrEx.Callstack.ModuleName
   Case "pTV__Customize", _
      "USys_pCT_Context", _
      "USys_pCT_Context_Item", _
      "USys_pCT_Context_Serializer", _
      "USys_pDD_DragAndDrop", _
      "USys_pDD_DragAndDrop__Interface", _
      "USys_pDD_DragAndDrop_Win_API", _
      "USys_pTV_Basis", _
      "USys_pTV_GroupNode", _
      "USys_pTV_GroupProvider__Interface", _
      "USys_pTV_GroupText", _
      "USys_pTV_GroupText_Node", _
      "USys_pTV_GroupToken", _
      "USys_pTV_IconID", _
      "USys_pTV_ToolsSQL", _
      "USys_pTV_TreeNode", _
      "Form_USys_pTV_TreeView"

   Case Else
      Select Case ErrEx.State
         Case OnErrorGoto0
         ...
 End Select