4D View Pro: la retrollamada de importación garantiza que las funciones personalizadas se resuelvan por completo

Importar documentos es una tarea común cuando se trabaja con 4D View Pro. Sin embargo, cuando estos documentos contienen funciones personalizadas, puede ser un reto determinar cuándo se han completado todos los cálculos antes de realizar acciones como imprimir o guardar. Para resolver esto, 4D 20 R9 se asegura de que la fórmula de retrollamada de los comandos de importación se realiza sólo después de que todas las funciones personalizadas han sido completamente tratadas. Esta mejora ofrece más control y fiabilidad cuando se trabaja con documentos importados de 4D View Pro.

Función personalizada de carga final de HDI 4DVP

Los comandos de importación actualizados

Los siguientes comandos de importación garantizan ahora que su retrollamada no se ejecute hasta que todas las funciones personalizadas hayan respondido:

 

Por ejemplo, si está cargando un documento grande con muchas funciones personalizadas en un área fuera de pantalla, esperando a que todos los cálculos terminen, y luego exportándolo, necesitará configurar una clase como esta:

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 

y llamarla en su área fuera de pantalla:

// 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)

Actualización de los COMANDOS VP FLUSH

También hemos introducido un mecanismo que permite esperar el final de los cálculos asíncronos en la clase VP FLUSH COMMAND. De la misma forma que las importaciones, ahora puede añadir una fórmula como parámetro que será llamada al final de los cálculos.

Por ejemplo, si añade alguna llamada a funciones personalizadas por programación y espera a sus cálculos para exportar el documento:

// 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")))

Conclusión

Esta actualización simplifica el manejo de las importaciones de 4D View Pro con funciones personalizadas, facilitando la impresión, guardado o procesamiento de documentos sólo cuando todos los cálculos estén completos.

 

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.