4D View Pro bietet Ihnen eine neue Möglichkeit, Ihre Daten zu laden und Ihre Vorlagen zu erstellen: den Datenkontext. Er ermöglicht es Ihnen, Ihr Dokument mit Platzhaltern zu erstellen und diese durch die Einstellung des Datenkontexts zu füllen.
Mit nur ein paar Zeilen Code können Sie Objekte oder Sammlungen anzeigen, ohne sie vorher mit VP SET CUSTOM FUNCTION! Kommen wir nun zu den Details.
Erstellen eines Dokuments mit Platzhaltern
Zunächst müssen Sie ein Dokument mit Ihren Objektattributen erstellen. Wenn Sie zum Beispiel ein Objekt mit 2 Attributen, Vorname und Nachname, verwenden, können Sie zwei Platzhalter mit dem VP SET BINDING PATH Befehl erstellen:
VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 0); "Firstname")
VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 1); "Lastname")
In Ihrem Blatt erscheinen keine Werte, weil der Datenkontext noch nicht definiert ist. Um zu überprüfen, ob Ihre Zellen korrekt gebunden sind, gehen Sie auf die Registerkarte DATEN der Multifunktionsleiste und klicken Sie auf die Schaltfläche Blattbindung. Die Namen Ihrer Attribute werden in Klammern angezeigt:
Datenkontext
Jetzt, wo Ihre Vorlage fertig ist, müssen Sie nur noch den Datenkontext mit Ihrem Objekt festlegen, indem Sie VP SET DATA CONTEXT:
$object:=New object
$object.Firstname:="John"
$object.Lastname:="Smith"
VP SET DATA CONTEXT("ViewProArea"; $object)
Die Vorlage wird also automatisch aktualisiert:
Natürlich kann der Benutzer die Daten ändern:
In diesem Fall ist das kein Problem; verwenden Sie einfach die VP Get data context Methode, um Ihr Objekt mit den Änderungen abzurufen:
$object:=VP Get data context("ViewProArea")
//$object={Firstname:Judith,Lastname:Smith}
Dateninjektion in sheetS
Wenn Sie Ihrem Datenkontext eine Sammlung übergeben, wird diese Sammlung automatisch an das Blatt gebunden. Wenn die Option autoGenerateColumns des Befehls VP SET DATA CONTEXT Befehls auf true gesetzt ist, wird die Sammlung automatisch im Blatt angezeigt.
Wenn Sie zum Beispiel eine Datenbanktabelle anzeigen möchten, schreiben Sie einfach:
$people:=ds.People.all().toCollection()
VP SET DATA CONTEXT("ViewProArea"; $people; New object("autoGenerateColumns"; True)
Sie erhalten:
Die Anzahl der Spalten und Zeilen wird automatisch berechnet, und die Namen der Spalten sind die Feldnamen der Tabelle.
Beachten Sie, dass keine Daten angezeigt werden, wenn autoGenerateColumns nicht auf true gesetzt ist!
Schauen Sie sich das obige HDI an, um diese Befehle in Aktion zu sehen. Lesen Sie auch die Dokumentation für weitere Details!