Resco Tools

Ursächlich haben wir ActiveX-basierende Applikationen mit Hilfe von VB4 bis VB6 und einzelne Komponenten mittels MFC und nativem C++ entwickelt. Für mobile Programmierung kam embedded VB und embedded C++ zum Einsatz. Beim guten alten VB war das Datarepeater-Steuerelement das liebste Control; warum andere Programmierer das Potential nicht erkannten und es so auch nicht nutzten, ist absolut unverständlich. Offensichtlich lag es daran, das das Control bis zum Schluss einige Fehler hatte (die man aber beherrschen konnte) und trotz der Möglichkeiten schlecht dokumentiert war. Das Prinzip war bestechend einfach: das Control hat leere Container in Zeilenform angezeigt, genauso viele Zeilen wie die gebundene Tabelle (damals “RECORDSET”) Zeilen besaß. In den leeren Containerzeilen wurde ein selbstdefiniertes Control angezeigt, dessen Eigenschaften (Properties) an die Tabellenzellen der aktuellen Zeile gebunden wurden. Dies eröffnete unglaubliche Möglichkeiten, da jede Tabellenzeile sehr komplex sein konnte, und das ohne noch an eine Tabellenzeile zu erinnern. Also prinzipiell ein wenig Aufwand mit riesigem Nutzen und maximaler Flexibilität (wenn man denn die kleinen Bugs, die das Control zweifelsohne besaß, kannte und einigermaßen geschickt umschiffte….)

Bild

Abb. Sieht aus wie eine Tabelle; ist aber ein Datarepeater….

datarepeater

Abb. das Prinzip des Datarepeaters

Nachteilig am Datarepeater war, daß man nur eine Definition für eine Zeile benutzen konnte, wenn dem Datarepeater einmal ein benutzerdefiniertes Control zugeordnet war, stellte es alle Zeilen mit diesem Control da. Ein Inhaltsabhängiger Austausch durch andere Steuerelemente war nicht möglich. Die Höhe aller Zeilen wurde durch das eingebettete Steuerelement bestimmt. Egal ob die zeile aktiv war oder nicht, jde Zeile hatte immer die gleiche Höhe. Zu guter Letzt war der Aufwand für die Zeilendarstellung (Bindung) und Benutzerinteraktion (zum Beispiel Datenaktualisierung von Combo- oder Checkboxen sehr hoch.

Nachdem MS einen radikalen Schnitt mit der Einführung von Dotnet machte, war das Datarepeater-Steuerelement natürlich Geschichte, da es ja nur mit ActiveX-Controls umgehen konnte und auch selbst ein ActiveX war. Aus diesem Grund haben wir sehr lange nach Alternativen gesucht und im Resco AdvancedList gefunden.

Das Definitionsprinzip ist ein wenig anders; die Zeile wird entweder graphisch oder per Code definiert. Jede Zeile kann aus beliebig vielen Zellen bestehen, es existieren unterschiedliche Zelltypen, es ist aber auch möglich, Zellen selbst zu zeichnen. Die Position und größe der Zellen innerhalb einer Zeilendefinition (Template) ist frei wählbar. Das Ergebnis ist in jedem Fall vergleichbar; es entsteht eine benutzerdefinierte Zeile, die sooft wiederholt wird, wie Zeilen in der zugeordneten Datenquelle existieren.

AdvancedList

Abb. Prinzip der AdvancedList

Nachfolgend einige Beispiele aus unseren Applikationen.



Abb. Vorschau-Mosaik der Beispiele

Sehr Vorteilhaft ist die Plattformübergreifende Interoperabilität dieses Steuerelementes. Der gleiche Funktionsumfang ist auch als embedded-Version verfügbar, die Applikationen für PC oder Windows Mobile haben dabei die gleiche Funktionsweise und Anmutung. Dies erleichtert nicht nur dem Programmierer den Umgang mit der Komponente, es macht es dem Anwender auch sehr leicht mit mobiler und Stationärer Anwendung zu arbeiten.

Das Steuerelement ist unter www.resco.net zu beziehen.