Lembre-se das seguintes dicas ao depurar cálculos e scripts.
Dados de amostra
Lembre-se de especificar um arquivo de dados de visualização na caixa de diálogo Propriedades do formulário. A especificação de um arquivo de dados de visualização não salva os dados no PDF final.
Páginas mestres
Para depurar as páginas mestre, solte um objeto diferente em cada página mestre para descobrir qual é o especificado.
Primeira página de um formulário
O Designer avalia o subformulário raiz para determinar em qual página o formulário será iniciado. Se o subformulário raiz não determinar a primeira página, então, a primeira página mestre será usada por padrão.
Depuração incremental
Ao depurar um design de formulário, comece removendo as partes do formulário até que não possa reproduzir o problema. Tente isolar a fonte do problema depois de ter revisado cada propriedade de objeto e script. Para depurar os subformulários, você pode especificar uma borda grossa colorida ao redor dos subformulários ou usar o preenchimento. As cores e o preenchimento podem ajudar a indicar qual subformulário é usado e seu alcance. Normalmente, esta técnica funciona bem quando você deseja determinar os limites de um objeto e pode mostrar por que ele é inserido em um certo local.
Exibição da hierarquia
Veja o design de formulário usando a exibição Hierarquia para entendê-lo melhor. A ordem dos objetos listados na hierarquia indica a ordem em que são colocados na página. Não se pode clicar em alguns objetos se estiverem abaixo de outros.
Mensagens de erro de script
No Designer, as mensagens de erro de script aparecem na guia Log da paleta Relatório quando você visualiza o formulário. Se o design de formulário contém scripts FormCalc e o erro ocorre no servidor, os avisos aparecem na guia Log. Se o erro de script FormCalc ocorrer no cliente, a mensagem aparece no Adobe Reader ou Acrobat.
Um erro em um script FormCalc impede que todo o script seja executado.
Um erro em um JavaScript é executado até que atinja o erro.
Erros de sintaxe no FormCalc
Às vezes, os erros de sintaxe no FormCalc são difíceis de resolver. Quando "Erro de sintaxe próximo ao token '%1' na linha %2, coluna %3" aparece, o %1 geralmente contém o token (palavra) mais próximo do erro. Assim, o token está possivelmente correto e o erro não é relacionado a outro erro, exceto por sua proximidade. Por exemplo, o script a seguir gera o erro 7008: "Syntax error near token 'then' on line x, column y".
var b = abc(1)
if (b ne 1) then
//comment
O problema é que o token endif está ausente do script. O último token correto é then (comentários não contam como tokens). Adicionar uma declaração endif ao final do script conserta o problema.
Funções definidas em um objeto de script
Você só pode chamar uma função que esteja definida em um objeto de script com um script JavaScript. Certifique-se de alterar a linguagem de script para JavaScript no Editor de scripts. Caso contrário, você receberá uma mensagem indicando que o Designer não pode resolver o objeto de script. O mesmo erro pode ocorrer quando há um problema de sintaxe no objeto de script.
Chamadas de serviço da Web
Ao criar chamadas de serviço da Web, use o evento postExecute para verificar o que foi retornado e se o serviço da Web emitiu alguma mensagem de erro.
Expressões SOM longas
Ao digitar expressões SOM longas e com várias camadas, pressione a tecla Ctrl e clique no objeto na tela. O comando insere a expressão SOM do objeto no script. A expressão SOM é relativa ao objeto que hospeda o script. Para inserir o SOM absoluto, pressione Ctrl+Shift e clique no objeto. Esses comandos funcionam quando você clica no objeto na exibição Design, não na exibição Hierarquia.
Testar as expressões SOM
Quando uma expressão SOM falhar, volte ao início da raiz da expressão e teste cada ponto com className até encontrar o problema. Por exemplo, teste a.b.c.d começando pela raiz.
console.println(a.className)
console.println(a.b.className)
console.println(a.b.c.className)
console.println(a.b.c.d.className)
Use os objetos de script para depurar os designs de formulário
Use um objeto de script como um fragmento para ajudar a depurar os designs de formulário:
Despeje uma hierarquia de nó abaixo de um nó.
Coloque o valor de uma propriedade ou atributo de um nó.
Coloque se o nó tem uma propriedade ou um atributo especificados.
Coloque a expressão SOM de um nó.
Despeje o xml src de um determinado nó.
A seguir, um exemplo de um objeto de script que contém várias funções de depuração:
<script contentType="application/x-javascript" name="XFADEBUG">
//This script object provides several tracing functions to help debug a form design
//Dump out node hierarchy to console.println()
function printNode(node) {... }
//Dump out SOM expression to console.println() function printSOM(node) {... }
//Dump out property or attribute value function printValue(node, attrOrPropertyName) {...}
function printXMLSource(node) { ....}
function printHasPropertySpecified(node, prop) {...}\\
</script>
O que você deve evitar ao criar formulários
Chamar xfa.layout.relayout(). o docReady even causa problemas pois o evento docReady dispara toda vez que o layout está pronto.
Colocar um contêiner continuado dentro de um contêiner posicionado causa problemas de quebras de página, objetos sobrepostos e repetição de subformulários. O subformulário raiz é um contêiner continuado. Aproveite-se disso e coloque os contêineres continuados dentro dos subformulários raiz, desvinculando os subformulários de página depois que o layout estiver pronto. Como alternativa, configure o fluxo dos subformulários de página como continuado.
Problema de página em branco (Acrobat 7.1 ou anterior). No momento do design, uma página em branco é exibida quando o subformulário não se ajusta aos limites da área de conteúdo. Para consertar a página em branco, redimensione o subformulário ou permita quebras de página. Se o usuário estiver utilizando o Acrobat 7.1 ou anterior, um subformulário de segundo nível aparecerá em uma página diferente.