Das Importieren von Dokumenten ist eine häufige Aufgabe bei der Arbeit mit 4D View Pro. Wenn diese Dokumente jedoch benutzerdefinierte Funktionen enthalten, kann es eine Herausforderung sein, zu bestimmen, wann alle Berechnungen abgeschlossen sind, bevor Aktionen wie Drucken oder Speichern durchgeführt werden. Um dieses Problem zu lösen, sorgt 4D 20 R9 dafür, dass die Rückrufformel von Importbefehlen erst dann ausgeführt wird, wenn alle benutzerdefinierten Funktionen vollständig abgearbeitet wurden. Diese Verbesserung bietet mehr Kontrolle und Zuverlässigkeit bei der Arbeit mit importierten 4D View Pro Dokumenten.
HDI 4DVP End Loading Custom Function
Die aktualisierten Importbefehle
Die folgenden Importbefehle garantieren nun, dass ihr Callback erst dann ausgeführt wird, wenn alle benutzerdefinierten Funktionen geantwortet haben:
Wenn Sie zum Beispiel ein großes Dokument mit vielen benutzerdefinierten Funktionen in einen Offscreen-Bereich laden, warten, bis alle Berechnungen abgeschlossen sind, und es dann exportieren, müssen Sie eine Klasse wie die folgende einrichten:
property pdfPath : Text
property autoQuit:=False
Class constructor($pdfPath : Text)
This.pdfPath:=$pdfPath
// This function is called on each event for the offscreen area
Function onEvent
Case of
: (FORM Event.code=On VP Ready)
var $largeDocument4VP:="c:\\tmp\\mylargedocument.sjs"
// Exports document in PDF called at the end of the import
var $callback:=Formula(VP EXPORT DOCUMENT(This.area;\
This.pdfPath; {formula: Formula(ACCEPT)}))
// Document import with recalculation of all the formulas
VP IMPORT DOCUMENT(This.area; $largeDocument4VP;\
{formula: $callback; sjsOptions: {fullRecalc: True}})
: (FORM Event.code=On URL Loading Error)
CANCEL
End case
und rufen sie in Ihrem Offscreen-Bereich auf:
// Creation of the offscreen parameter object to init the offscreen area
$offScreenParameter:=cs.OffScreenParameterClass.new($pdfPath)
// Creation of the offscreen area
VP Run offscreen area($offScreenParameter)
Aktualisierung von VP FLUSH COMMANDS
Wir haben auch einen Mechanismus für das Warten auf das Ende von asynchronen Berechnungen in der VP FLUSH COMMAND. Auf die gleiche Weise wie bei Importen können Sie nun eine Formel als Parameter hinzufügen, die am Ende von Berechnungen aufgerufen wird.
Zum Beispiel, wenn Sie einige Aufrufe zu benutzerdefinierten Funktionen durch Programmierung hinzufügen und auf deren Berechnungen warten, um das Dokument zu exportieren:
// Adds an asynchronous calculation
VP SET FORMULA(VP Cell($area; 1; 2); "my4DFunction(1)")
// Waits for the calculation to finish and exports the document
VP FLUSH COMMANDS("ViewProArea"; Formula(VP EXPORT DOCUMENT("ViewProarea"; "c:\\tmp\\vpflush.xlsx")))
Fazit
Dieses Update vereinfacht die Handhabung von 4D View Pro Importen mit benutzerdefinierten Funktionen, so dass Sie Dokumente erst dann drucken, speichern oder bearbeiten können, wenn alle Berechnungen abgeschlossen sind.
