4D View Pro : Le rappel d’importation garantit que les fonctions personnalisées sont entièrement résolues

Traduit automatiquement de Deepl

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.

 

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.