Hintergründe, Wissenswertes und Ankündigungen.

Protogrid lebt und entwickelt sich täglich weiter. Dafür leben unsere innovativen Ingenieure und kreativen Grafiker, die hier ihre Geschichten, Anekdoten sowie nützliche Tipps und Tricks teilen.

Protogrid Applikationen ganz einfach erweitern mit Script-Librarys

Michel Müller am 2015-06-30

Script-Librarys in Protogrid sind ein mächtiges Instrument, um Applikationen komfortabel den eigenen Bedürfnissen anzupassen. Bereits mit wenig Java-Script-Code kann in kurzer Zeit eine spezifische Geschäftslogik implementiert werden. Im Folgenden werden deren Möglichkeiten anhand eines einfachen Beispiels demonstriert.

Dabei soll die Anforderung umgesetzt werden, in einer Ansicht nur Cards darzustellen, welche bestimmte Filterkriterien erfüllen. Eine einfache Lösung dafür ist, eine TableView zusammen mit einem Relationen-Feld in einer Card zu platzieren, sodass die Anzeige der TableView durch das Relationen-Feldes eingeschränkt wird. Wenn sich jetzt aber das Filterkriterium überhaupt nicht ändern soll, beansprucht das Relationen-Feld nur unnötigen Platz. Es stört Power-User und verwirrt unerfahrene Nutzer. Mit Hilfe einer Script-Library kann das Relationen-Feld kurzerhand versteckt werden. Zusätzlich muss dann das Filterkriterium programmatisch in das Relationen-Feld geschrieben werden, da dieses ja im User-Interface nun nicht mehr zugänglich ist.

Kommen wir gleich zur Praxis und erstellen einfach einmal eine neue Script-Library:

Script-Library-Definition

Protogrid kommt uns gleich zur Hilfe und generiert ein Funktionsgerüst gewürzt mit Kommentaren, Erklärungen und Beispielen. Vorerst werden wir der neuen Script-Library nur einen Namen geben, diese abspeichern und schliessen.

Als Nächstes müssen wir für die gewünschte, spezifisch gefilterte Ansicht einen neuen Proto erstellen. Auch diesem geben wir einen sinnvollen Namen und linken die gerade erstellte Script-Library ein. Wenn wir den Proto nun abzuspeichern und schliessen, bemerken wir, dass Protogrid gleich zwei Protos generiert hat: Einen Utility- und einen Übersichts-Proto. Wir öffnen den letzteren um dessen TableView-Definition anzupassen. Diese soll nämlich in Zukunft jene Cards anzeigen, welche wir in der neuen Ansicht wünschen. Dazu müssen wir einzig deren Proto unter “Verknüpfter Proto” einstellen:

Nun speichern wir die TableView-Definition ab und schliessen sie. Immer noch im neu erstellten Übersichts-Proto, erstellen wir ein neues Relationen-Feld und kümmern uns um die Einstellungen, welche im folgenden Screenshot rot markiert sind:

1) Wir beschriften das neue Relationen-Feld mit dem Filterkriterium. Dies dient nur uns als Gedächtnisstütze, da das Relationen-Feld für Benutzer versteckt sein wird.

2) Das Feld ist “berechnet” – wir wollen es ja später mittels Script-Library programmatisch setzen.

3) Da die Daten in diesem Relationen-Feld für das User-Interface irrelevant sind, setzen wir die Darstellungspriorität auf 0.

4) Hier muss der Proto des Filterkriteriums ausgewählt werden, damit dieses auch in den Auswahlmöglichkeiten des Relationen-Feldes enthalten sein wird.

5) Dann müssen wir uns noch die Card-ID dieser Relationen-Feld-Definition merken, welche wir mittels Klick auf “Diese Card” und “Zeige Eigenschaften” herausfinden.

Ganz zum Schluss geht es endlich ans Programmieren. Wir öffnen die eingangs erstellte Script-Library und kopieren den untenstehenden Code hinein. Anzupassen sind lediglich die ersten beiden Variablen-Zuweisungen, welche durch die Card-ID der Relationen-Feld-Definition und der Card-ID des Filterkriteriums ersetzt werden müssen.

function script_library() {
	    // Card-ID der Relationen-Feld-Definition
	    var card_id_relationen_feld = "5b1e87ac-cf4a-4243-8199-7be687a0146b";
	    
	    // Card-ID des Filterkriteriums
	    var card_id_filter_kriterium = "754be2fd-1051-4e6c-9ab2-0f2314836e3d";
	    
	    // Filterkriterium in das Relationen-Feld setzen und dieses verstecken
	    function on_render(card, before_first_save) {
	        card.set_element_value(card_id_relationen_feld, card_id_filter_kriterium, false);
	        var design_element_org = card.get_design_element(card_id_relationen_feld);
	        if(typeof(design_element_org) === 'object') {
	        design_element_org.hidden_in_client = true;
	        }
	    }
	    
	    // Übergabe der Render-Funktion an Protogrid
	    return {
	    on_render: on_render
	    };
	}

Jetzt sind wir fertig – unsere Protogrid Applikation wurde erfolgreich um eine benutzerdefinierte Funktionalität erweitert. Setzen Sie nun Ihre eigenen Ideen mit den unzähligen weiteren Schnittstellen und Funktionen von Script-Librarys um und teilen Sie hier Ihre Erfahrungen!

Endlich da: Release 1.0!

Michel Müller am 2015-03-05

Was ist neu?

iOS-Rollout
App-Entwickler können jetzt mittels Import|Export ein zip-File mit dem Protogrid-iOS-Client downloaden. Weitere Infos sind im Readme zu finden. Der Protogrid-Code wird kompiliert/uglified ausgerollt und funktioniert in Simulator und auf Device.

ScriptLibrary-Verbesserungen
Es wird jetzt beim Erstellen einer ScriptLibrary eine Beispiel-Library reinkopiert, die beim Schreiben/Lernen hilft.

Das Syntax-Highlighting wurde gefixt.

Wir haben eine neue API on_render(card, bevore_first_save), die Code vor dem Anzeigen ausführt. Damit können Standard-Werte abgefüllt werden und Computed-Felder berechnet werden.

Sprachen-Unterstützung
Benutzer können alle Sprachen in allen regionalen Varianten auswählen und eine Liste machen mit Ihrer eigenen Priorisierung.

App-Entwickler erstellen innerhalb der App ebenfalls eine Liste aller durch die App unterstützten Sprachen. Diese wird beim Speichern der Application Properties abgeglichen mit dem zugrundeliegenden Multilanguage Proto: Pro Sprache wird dort ein Textfeld eingerichtet. Alle Multilanguage-Cards (=momentan Felder-Labels, Hilfetexte, App-Titel) bekommen dann diese Felder und können somit übersetzt werden.

Protogrid macht jeweils ein Matching aus den User-Settings auf die verfügbaren Daten aus den Multilanguage Cards. Dabei werden regionale Varianten bevorzugt, falls vom User ausgewählt, andernfalls wird auf die Hauptsprache zurückgefallen. Dies gilt sogar für komplexe Fälle wie Chinesisch, das im Locale Hauptsprache, Schrift und regionale Variante hat (zi-Hant-HK z.B.).

Für das Interface unterstützen wir momentan Englisch, Deutsch und Spanisch. Es gibt noch ein paar Lücken. Falls Ihr selber was findet, bitte meldet es. D.h. Apps können zwar alle Sprachen unterstützen, für die Systemtexte fallen wir jedoch auf die unterstützten Sprachen zurück mit dem gleichen Matching wie oben beschrieben. Systemtexte sind übrigens gleich wie in den Apps übersetzt – mittels Multilanguage Cards in einer versteckten System-App.

Datums-Format wird separat eingestellt auf dem Userprofil. Im Moment wird Englisch und Deutsch unterstützt, viele weiteren werden folgen (wir verwenden eine Standardkomponente, die wir nur einbinden müssen).

https
Kommunikation mit Webbrowser und iPhone-Clients jetzt verschlüsselt.

Endlich einfach und rasch Apps für Smartphones und für Tablets erstellen

Michel Müller am 2015-01-09

Protogrid ist die modernste Umgebung für Geschäftsanwendungen

Ausgangslage und Problemstellung
Kennen Sie das auch?
Alle Organisationen verarbeiten Daten. Daten sind neben Kapital und Mitarbeitern eines der wichtigsten Produktionsmittel. Mit dem Aufkommen der neuen Hardware-Plattformen Smartphone (stark ansteigend seit 2007) und Tablet (stark ansteigend seit 2010) wollen die User immer häufiger auch auf diesen Plattformen Zugriff auf ihre Daten haben. Leider sind die meisten Windows-Anwendungen nicht ohne weiteres auf Tablets und Smartphones einsetzbar, sondern der Software-Hersteller muss eine neue Version entwickeln und das ist kostspielig und dauert lange. Gesucht ist eine Entwicklungsumgebung, die Anwendungen produziert, die sofort auf diesen führenden Plattformen verfügbar sind – ohne Zusatzkosten.

Hinzu kommt das Phänomen, dass man nicht immer eine Internet-Verbindung hat, dass die Geschwindigkeit der Internet-Verbindung unterwegs oft sehr niedrig ist und dass die Internet-Verbindungen für mobile Anwender oft mehrmals pro Stunde unterbrochen werden, wenn man unterwegs ist. Gesucht ist deswegen eine Lösung, die weiterfunktioniert, auch wenn die Internet-Verbindung nicht in der gewünschten Qualität vorhanden ist. Gerade für den Einsatz im geschäftlichen Umfeld kann man es sich nicht leisten, im entscheidenden Moment keinen Zugriff auf die Daten zu haben.

Der Geschäftsnutzen:

  • tiefe Entwicklungskosten: dank Rapid Application Development
  • tiefe Betriebskosten: dank Cloud
  • ständige Verfügbarkeit der Daten: dank Off-Line-Fähigkeit und automatischer Datensynchronisation
  • geringer Schulungsaufwand: dank einheitlichem User-Interface
  • schnell erstellte Mehrsprachigkeit für jede Anwendung: dank einfacher integrierter Übersetzer-Funktion kann eine Anwendung in kürzester Zeit von einem User in eine neue Sprache übersetzt werden
  • Unabhängigkeit von der Plattform: Protogrid läuft auf allen wichtigen Plattformen, man kann eine Anwendung jederzeit auf einer anderen Plattform nutzen, kein Migrationsaufwand

Rapid Application Development
Mit Protogrid können Poweruser selber rasch eine App erstellen
Einfache Anwendungen können tatsächlich von einem Poweruser in wenigen Minuten erstellt werden. Jede Anwendung enthält die wichtigsten Funktionen bereits von Geburt an:
– Nutzbarkeit auf allen Plattformen
– Web-Version der Anwendung
– Listenansichten für die erfassten Daten
– Volltextsuche
– sortierbare Spalten
– verstellbare Spaltenbreiten
– 100% vorbereitet für den Einsatz auf Touch-Screens
– intelligente Anordnung der Felder auf Masken und der Spalten ins Listenansichten
Protogrid nimmt dem Entwickler die typische Fleissarbeit ab, die bei jeder Neu-Entwicklung anfällt. Damit kann massiv Zeit eingespart werden. Bereits bei einer kleinen Anwendung werden so mehrere Dutzend Stunden eingespart gegenüber konventionellen Entwicklungstools.

Multi-Plattform-Fähigkeit von Haus aus
Protogrid-Anwendungen laufen von haus aus auf allen wichtigen Plattformen: Web-Browser, Windows, iOS, Android.

Jede neue Anwendung wird zuerst in der Web-Browser-Version entwickelt und steht allen Usern umgehend als Web-Browser-Version zur Verfügung.

Protogrid Plattformen

Und bei all diesen Vorteilen ist Protogrid sogar kostenlos.

Protogrid ist kostenlos für bis zu zwei Anwender und eine beliebige Anzahl von Applikationen.