Importar documentos é uma tarefa comum quando se trabalha com 4D View Pro. No entanto, quando esses documentos contêm funções personalizadas, pode ser difícil determinar quando todos os cálculos estão completos antes de realizar ações como imprimir ou salvar. Para resolver isso, 4D 20 R9 garante que a fórmula de retorno de chamada de comandos de importação é feita apenas depois de todas as funções personalizadas terem sido completamente tratadas. Esta melhoria dá mais controle e fiabilidade quando trabalhar com documentos 4D View Pro importados.
Função personalizada de carregamento final do HDI 4DVP
Os comandos de importação actualizados
Os seguintes comandos de importação garantem agora que a sua chamada de retorno não é executada até que todas as funções personalizadas tenham respondido:
Por exemplo, se estiver carregando um documento grande com muitas funções personalizadas numa área fora da tela, aguardando que todos os cálculos terminem e depois exportá-lo, terá de configurar uma classe como esta:
property pdfPath : Text
property autoQuit:=False
Class constructor($pdfPath : Text)
This.pdfPath:=$pdfPath
// Esta função é chamada a cada evento para a área offscreen
Function onEvent
Case of
: (FORM Event.code=On VP Ready)
var $largeDocument4VP:="c:\\tmp\\mylargedocument.sjs"
// Exporte documento em PDF chamado ao final da importação
var $callback:=Formula(VP EXPORT DOCUMENT(This.area;\
This.pdfPath; {formula: Formula(ACCEPT)}))
// Documento importado com todas as fórmulas recalculadas
VP IMPORT DOCUMENT(This.area; $largeDocument4VP;\
{formula: $callback; sjsOptions: {fullRecalc: True}})
: (FORM Event.code=On URL Loading Error)
CANCEL
End case
e chamá-la na sua área fora da tela:
// Criação do parâmetro objeto offscreen para iniciar a área offscreen
$offScreenParameter:=cs.OffScreenParameterClass.new($pdfPath)
// Criação da área offscreen
VP Run offscreen area($offScreenParameter)
Atualização dos comandos VP FLUSH
Também introduzimos um mecanismo para aguardar o fim dos cálculos assíncronos na classe VP FLUSH COMMAND. Da mesma forma que as importações, pode agora adicionar uma fórmula como parâmetro que será chamada no final dos cálculos.
Por exemplo, se adicionar algumas chamadas a funções personalizadas através de programação e aguardar os respectivos cálculos para exportar o documento:
// Adiciona um cálculo assíncrono
VP SET FORMULA(VP Cell($area; 1; 2); "my4DFunction(1)")
// Espera que o cálculo termine e exporta o documento
VP FLUSH COMMANDS("ViewProArea"; Formula(VP EXPORT DOCUMENT("ViewProarea"; "c:\\tmp\\vpflush.xlsx")))
Conclusão
Esta atualização simplifica o tratamento das importações do 4D View Pro com funções personalizadas, facilitando a impressão, a gravação ou o processamento de documentos apenas quando todos os cálculos estiverem completos.
