L’importation de documents est une tâche courante lorsque l’on travaille avec 4D View Pro. Cependant, lorsque ces documents contiennent des fonctions personnalisées, il peut être difficile de déterminer quand tous les calculs sont terminés avant d’effectuer des actions telles que l’impression ou l’enregistrement. Pour résoudre ce problème, 4D 20 R9 s’assure que la formule de rappel des commandes d’importation n’est utilisée qu’une fois que toutes les fonctions personnalisées ont été entièrement traitées. Cette amélioration permet un meilleur contrôle et une plus grande fiabilité lors du travail avec des documents 4D View Pro importés.
Fonction personnalisée de fin de chargement de HDI 4DVP
Les commandes d’importation mises à jour
Les commandes d’importation suivantes garantissent désormais que leur rappel n’est pas exécuté tant que toutes les fonctions personnalisées n’ont pas répondu :
Par exemple, si vous chargez un gros document avec de nombreuses fonctions personnalisées dans une zone hors écran, que vous attendez que tous les calculs soient terminés, puis que vous l’exportez, vous devrez configurer une classe comme celle-ci :
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
et l’appeler dans votre zone hors écran :
// 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)
Mise à jour des commandes VP FLUSH
Nous avons également introduit un mécanisme permettant d’attendre la fin des calculs asynchrones dans la classe VP FLUSH COMMAND. De la même manière que pour les importations, vous pouvez désormais ajouter une formule en tant que paramètre qui sera appelée à la fin des calculs.
Par exemple, si vous ajoutez des appels à des fonctions personnalisées par programmation et que vous attendez leurs calculs pour exporter le document :
// 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")))
Conclusion
Cette mise à jour simplifie la gestion des importations de 4D View Pro avec des fonctions personnalisées, ce qui facilite l’impression, l’enregistrement ou le traitement des documents uniquement lorsque tous les calculs sont terminés.