Sonntag, 24. Oktober 2021

Better Access Charts: Keine Html-Datei mehr notwendig

In der bisherigen Version von Better Access Charts gab es noch eine Abhängigkeit zum Dateisystem. Diese Abhängigkeit wurde mit dem aktuelle Release aufgelöst. Es ist jetzt nicht mehr notwendig, den Html-String in einer Datei zu speichern.

Abhängigkeiten werden im EDV-Alltag an vielen Stellen billigend in Kauf genommen. Häufig geht es erst einmal um die schnelle Bereitstellung einer Lösung. Die Auflösung der dabei eingegangenen Abhängigkeiten wird gern auf später verschoben. Dazu kommt es dann aber meistens nicht. Dieses Thema rückt erst dann wieder in den Fokus, wenn es auf Grund der Abhängigkeiten zu Problemen gekommen ist.

Die Abhängigkeiten, die es bei Better Access Charts gibt, verdeutlich die folgende Grafik:


Innerhalb unserer Datenbank speichern wir die in einem Chart anzuzeigenden Daten in einer Tabelle. Die Daten werden mit Hilfe des Klassenmoduls zu einem gültigen Html-String zusammengestellt. Dieser wird am Ende in einer Datei gespeichert. Seit dem letzten Release wird diese Datei im Temp-Verzeichnis gespeichert. Die Html-Datei wird anschließend in das Webbrowser-Steuerelement auf unserem Formular geladen. Dabei wird auf die Bibliothek von Chart.js über ein Content Delivery Network, kurz CDN, zugegriffen.

In diesem Bild ist klar eine Abhängigkeit zu erkennen. Es geht um das Speichern des Html-String in einer Datei. Warum ist dieser "Umweg" notwendig? Gibt es dafür nicht andere Möglichkeiten?

Bei meinen Recherchen im Netz bin ich wieder auf der Seite von Daniel Pineault fündig geworden. In seinem Artikel mit dem Titel Everything You Never Wanted to Know About the Access Webbrowser Control beschreibt er, wie man dynamische Inhalt "on the fly" in das Webbrowser-Steuerelement laden kann.

Mit diesem Wissen ausgestattet, habe ich den Code umgestellt. Ab sofort wird keine Html-Datei mehr benötigt. Statt dessen wird der erzeugte Html-String direkt in das Webbrowser-Steuerelement geladen. Die nachfolgende Grafik zeigt den schematischen Aufbau von Better Access Charts nach dieser Optimierung:


Bei dieser Gelegenheit habe ich eine weitere Property hinzugefügt: SaveHtmlFileForDebugging. Diese Eigenschaft erlaubt es mir als Programmierer bei künftigen Anpassungen den generierten Html-Code in Ruhe zu analysieren.
Für Dich als Anwender kann diese Eigenschaft dann nützlich sein, wenn Du einen generierten Chart "von Hand" erweitern möchtest. Einfach die obige Property auf den Wert TRUE setzen und die generierte Html-Datei wie gewünscht ergänzen und weiterverarbeiten.

Ein weiteres Problem wird durch den Verzicht auf die Html-Datei auch noch gelöst. Es geht um die Darstellung von speziellen Zeichen wie z.B. den deutschen Umlauten. Diese wurden bisher als umgedrehte Fragezeichen angezeigt. Ursache hierfür war die Html-Datei. Diese wurde nach dem ANSI-Standard gespeichert. Jetzt, da keine Html-Datei mehr erstellt wird, ist dieses Problem automatisch auch gelöst.

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

Nachtrag 02.01.2022
Leider hat sich herausgestellt, dass es ein Problem mit der Feature Browser Emulation gibt, wenn das Html-Statement direkt in den Browser geladen wird. Details sind hier beschrieben: Better Access Charts / PivotTable: Ein Schritt zurück in Richtung Zukunft

Keine Kommentare: