Samstag, 4. Dezember 2021

Better Access PivotTable: Script-Dateien flexibel einbinden

Das Projekt Better access PivotTable basiert darauf, eine Pivot Tabelle mit Hilfe der Bibliothek pivot.js zu erstellen und diese dann im Webbrowser-Steuerelement anzuzeigen. In dieser Beschreibung steckt auch schon das Problem: Wir brauchen pivot.js.

Es gibt unterschiedliche Möglichkeiten eine Javascript Bibliothek einzubinden. Ich kann entweder eine Kopie in einem lokalen Laufwerk speichern oder ich greife über ein so genannten CDN - ein Content Delivery Network - auf das Script zu.

Welcher Weg der richtige ist, ist von Fall zu Fall abhängig. Jemand, der seine Lösung auf einem Rechner ohne Internetzugang betreibt, kann nur eine lokale Kopie des Scriptes einbinden. Wer allerdings auf das Internet zugreifen kann, möchte sich vielleicht nicht mit dem Speichern und Vorhalten einer lokalen Kopie herumschlagen und setzt statt dessen lieber ein CDN ein.

Egal welcher Weg im Einzelfall auch der richtige ist: Better Access PivotTable unterstützt beide Wege. Abgeschaut habe ich das ganze beim Schwester-Projekt Better Access Charts.
Es existiert eine Eigenschaft Source in der neuen Klasse PivotJS. Dort kann ich als mögliche Werte "CDN" oder "LocalFile" auswählen. Standardmäßig ist hier CDN ausgewählt.

Wenn ich CDN ausgewählt habe, kann ich in der Eigenschaft "CDN" die URL zum gewünschten CDN angeben. Ich muss es aber nicht. Aktuell ist hier Cloudflare als Standardwert hinterlegt.

Wenn ich "LocalFile" auswähle, kann ich den Pfad und Dateinamen zu Chart.js über die Eigenschaft "PathFilename" festlegen. Auch diese Eigenschaft hat einen Standardwert: CurrentProject.Path & "\pivot.min.js".

Natürlich kann ich den Pfad beliebig ändern. Wenn ich Better Access PivotTable in mehreren Anwendungen im Einsatz habe, will ich ja nicht in jedem Anwendungsverzeichnis einen Unterordner für Pivot.js anlegen.

Das folgende Codebeispiel zeigt die neuen Eigenschaften im Zusammenspiel:

In Zeile 2 wird festgelegt, dass pivot.js aus einem CDN geladen wird. In Zeile 3 wird dann der Pfad zum CDN festgelegt. Als Fallback-Lösung wird in Zeile 4 auch gleich der Pfad zu einem lokalen Speicherort festgelegt.

Um den Entwickler zu unterstützen, hält die Klasse noch eine Methode mit dem Namen "SaveToDisk" bereit. Diese speichert, wie der Name schon vermuten lässt, die Javascript Datei auf der Festplatte. Voraussetzung ist natürlich, dass die Datei in einer Tabelle in der Anwendung gespeichert ist.

Der Code dazu ist denkbar einfach:

Insgesamt brauchen wir für Better Access PivotTable vier externe Referenzen. Alle sind als Klassenmodul wie hier beschrieben, umgesetzt:

Mit diesen neuen Klassen kann der Programmierer die notwendige Einbindung der Script-Referenzen individuell auf seine Gegebenheiten einstellen.

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

Keine Kommentare: