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.