Samstag, 12. Februar 2022

Better Access Charts: Raider heißt jetzt Twix und aus Dataset wird Data

Seitdem in Better Access Charts das eine große Klassenmodul in mehrere kleine aufgeteilt wurde, gibt es eine Klasse mit dem Namen "Dataset". Wofür diese Klasse gut ist und warum ich sie umbenannt habe, erläutert dieser Beitrag.

Mit der Version 2.0 habe ich das Projekt grundlegend überarbeitet. Damals habe ich auf Basis der Vorarbeit von Klaus Gundermann das eine große Klassenmodul mit seinen 47 Eigenschaften in eine Vielzahl von kleinen spezialisierten Klassen aufgeteilt.

Damals ist auch eine Klasse mit dem Namen BAC_Dataset entstanden. Beim Coden habe ich dann so nach und nach festgestellt, dass der Begriff "Dataset" an dieser Stelle irreführend ist.

Wir haben ein Objekt mit dem Namen DataSource. Hier werden Informationen zur „externen“ (also außerhalb der Klassen liegenden) Datenquelle erfasst. Wie heißt die Tabelle, in welchen Feldern stehen die Daten usw.

Im jetzigen Objekt „Dataset“ werden diese Daten aus der externen Quelle in eine interne Struktur überführt. Diese dient dann am Ende als Quelle für die Generierung der Html-Datei.

Wie ist nun der passende Name für das Objekt, das die Daten für Chart.js aufbereitet bereithält? Diese Frage habe ich mit Klaus Gundermann diskutiert.

Der gemeine Access-Programmierer ist mit dem Begriff "Recordset" vertraut. In einem Recordset liegen die Daten Zeile für Zeile, Record für Record zum Abruf bereit.
Der (fortgeschrittene) .Net Programmierer kennt ein "Dataset". Das ist ein In-Memory-Cache von Daten. Auch hier sind die Daten Zeile für Zeile organisiert.

Chart.js verwendet jetzt den Begriff "Data" für die gesamte Datenmenge und ein "Dataset" ist das, was in Excel als eine Datenreihe bekannt ist. Vor diesem Hintergrund habe ich die bisherige Klasse "Dataset" umbenannt in "Data".

Künftig schreibt man also folgenden Code:

In Zeile 1 wird eine leere Datenquelle angelegt.
In Zeile 3 werden die Bezeichnungen für die Labels hinzugefügt.
In Zeile 4 wird das Dataset "MyDemoData" mit seinen Daten hinzugefügt.
In Zeile 5 wird ein weiteres Dataset mit dem Namen "Reverse" hinzugefügt.

Wann setze ich jetzt die Klasse Data ein?
Eines ist klar: Wenn die Daten für den Chart in einer Tabelle vorliegen, ist es am einfachsten diese als Datasource zu verwenden. Was nun aber, wenn die Daten für den Chart erst mit VBA aufbereitet werden müssen? Das ist genau der richtige Einsatzzweck für die Nutzung der Klasse Data.

Auf diesem Weg habe ich die volle Kontrolle welche Daten angezeigt werden sollen. Dabei ist allerdings zu beachten, dass ich die Daten in dem für Chart.js notwendigen Format angeben muss. Bei einer einfachen Datenreihe für z.B. eine Bar-Chart ist dies so einfach wie oben im Beispielcode gezeigt. Wer allerding einen Scatter-Chart oder einen Bubble-Chart verwendet, muss die Daten entsprechend aufbereiten. Die Demo-Datenbank stellt dafür jeweils ein Beispiel bereit.

Mit der Umbenennung der ehemaligen Klasse "Dataset" in "Data" wird der Code leichter verständlich. Und mit der Nutzung dieser Klasse kann der Programmierer auch Daten in Charts darstellen, die vorher erst in VBA aufbereitet werden.

Die aktuelle Version von Better Access Charts steht wie immer auf GitHub bereit:
https://github.com/team-moeller/better-access-charts

Keine Kommentare: