Lorsque vous utilisez 4D View Pro (notamment en mode hors écran) avec des documents complexes, le calcul de toutes les formules peut prendre un certain temps et il peut être difficile de savoir quand il est enfin terminé (et il est important d’attendre avant d’appeler des commandes telles que l’exportation ou l’impression).
Comme solution, nous avons introduit deux nouveaux événements. L’un d’eux est appelé pour chaque calcul/formule, ce qui pourrait être utilisé pour déclencher une minuterie. Si le temps expire sans qu’une autre formule soit terminée, nous pouvons supposer que le document entier est terminé.
Le premier événement est On VP Range Changed. Cet événement est lancé chaque fois qu’un calcul est terminé. Comme il peut y avoir plusieurs calculs, le deuxième événement est l’événement on Timer. Cet événement permet d’attendre que le prochain calcul soit terminé. Si un événement On VP Range Changed est lancé avant la fin de la minuterie, il faut la relancer, sinon, elle est terminée.
Par exemple, si vous voulez charger un gros document, attendre la fin de tous les calculs et l’exporter, vous devrez créer ce type de classe :
Class constructor($pdfPath: Text)
This .pdfPath:=$pdfPath
This .autoQuit:=False
This .isWaiting:=False
Function onEvent
Case of
: (FORM Event.code=On VP Ready)
// Document import
VP IMPORT DOCUMENT (This.area; $largeDocument4VP)
This .isWaiting:=True
// Start a timer to verify if all calculations are finished.
// If during this period the "On VP Range Changed" is thrown, the timer will be restarted
// The time must be defined according to the computer configuration.
SET TIMER (60)
: (FORM Event.code=On VP Range Changed)
// End of calculation detected. Restart the timer
If (This.isWaiting
)
SET TIMER (60)
End if
: (FORM Event.code=On Timer)
// To make sure not to restart the timer if you call other 4D View commands after this point
This .isWaiting:=False
// Stop the timer
SET TIMER (0)
// Start the PDF export
VP EXPORT DOCUMENT (This.area; This.pdfPath; New object("formule" ; Formula(ACCEPT)))
: (FORM Event.code=On URL Loading Error) xml-ph-00 CANCEL
End case
Téléchargez l’IDH ci-dessus pour voir comment utiliser ces événements pour exporter un grand fichier 4D View Pro au format PDF !
Et consultez le centre de documentation pour plus de détails !