Criação de formulários em HTML

Além dos formulários em PDF e dos guias, o Forms possui a capacidade de processar formulários HTML interativos para captura de dados. Para distribuir formulários em HTML, é necessário salvar seus designs de formulário como arquivos XDP e implantar os arquivos XDP e quaisquer outros arquivos de suporte, como imagens, no Forms.

Como os formulários HTML são exibidos em um aplicativo cliente como um navegador da Web, eles estão sujeitos às restrições do ambiente do aplicativo cliente. Qualquer tipo de objeto, exceto campos de assinatura, pode ser incluído em um formulário HTML. No entanto, dependendo das limitações do aplicativo cliente, nem todas as propriedades do objeto podem ser suportadas.

Para obter uma lista de todos os objetos e as propriedades compatíveis para cada tipo de transformação, consulte Referência de transformação.

Nota: Ao criar um design de formulário para saída HTML, é necessário certificar-se de que todos os campos, grupos de exclusão e subformulários tenham nomes exclusivos.

Uso de subformulários para criar páginas em HTML

Quando um design de formulário contém subformulários que se expandem, é difícil saber exatamente quantas páginas serão renderizadas no formulário resultante no tempo de execução. A configuração do tamanho da página é usada para paginar formulários PDF, mas é ignorada quando um formulário HTML é renderizado, pois as páginas HTML podem ter qualquer tamanho.

Para implementar o conceito de um formulário HTML de várias páginas, é possível incluir um subformulário com nível de uma página no seu design de formulário. É necessário um desses subformulários para cada página que você deseja renderizar no formulário. Para formulários contendo elementos flutuantes, cada subformulário que possui conteúdo flutuante deve estar aninhado dentro de um dos subformulários em nível de página. Depois disso, quando o formulário for renderizado, todo conteúdo que pertence ao mesmo subformulário em nível de página será exibido na mesma página HTML.

Nota: Para implementar o conceito de um formulário em HTML com várias páginas, é necessário incluir um ou mais botões em cada subformulário em nível de página de modo que os usuários possam se movimentar de uma página para a próxima. Será necessário gravar um script para lidar com o processamento sempre que um usuário clicar em um desses botões.

Por exemplo, considere o design de formulário na seguinte ilustração. O design de formulário inclui três subformulários no nível de página: Subform_Page0, Subform_Page1 e Subform_LastPage. Se o Forms fosse renderizar um formulário HTML com base nesse design de formulário, uma página HTML seria criada automaticamente a partir de cada um dos subformulários de nível de página.

A.
O Subform_Page0 posiciona o conteúdo e é configurado para exibir seus objetos na primeira página do formulário que usa o layout da página mestre Page1.

B.
O Subform_Page1 contém um subformulário com conteúdo flutuante. O Expanding_subform pode repetir a renderização de seus objetos quantas vezes for necessário em resposta aos dados unidos. O conteúdo do Subform_Page1 pode ser exibido em uma ou mais páginas usando o layout da página mestre Page2_etc.

C.
O Subform_LastPage posiciona o conteúdo e foi configurado para exibir seus objetos na última página renderizada usando o layout da página mestre Page3.

Quando o Forms renderiza o formulário HTML no tempo de execução, o subformulário de nível da primeira página é exibido na primeira página. Para a finalidade deste exemplo, a primeira página pode parecer um pouco parecida com a página exibida aqui. Observe o botão Próxima página, que deve ser incluído para que os usuários possam se movimentar para a próxima página do formulário.

O botão Próxima página na parte inferior do formulário.

Presumindo que pelo menos um registro estaria disponível para unir ao Expanding_subform no tempo de execução, a segunda página pode parecer com o seguinte exemplo de página. Novamente, um botão Próxima página é necessário para que os usuários possam se movimentar para a próxima página do formulário. Além disso, é possível escolher incluir um botão Página anterior no seu próprio formulário.

O subformulário de nível da terceira página, Subform_LastPage, é exibido na última página do formulário renderizado. Neste exemplo, uma mensagem na última página agradece os usuários por preencher o formulário e fornece um botão Enviar para enviar os dados digitados pelo usuário para o Forms.

Para obter informações sobre como gravar um script de forma que os usuários possam se mover entre as páginas HTML, consulte Como gravar um script para manipular páginas HTML.

Considerações de layout para formulários HTML

As seguintes informações o ajudarão a desenvolver formulários HTML com uma boa aparência e fáceis de ler:

  • Não use as propriedades de borda de um objeto para desenhar linhas, caixas ou grades no seu formulário. Talvez alguns navegadores não alinhem bordas exatamente como elas aparecem em uma visualização do Designer. Objetos podem aparecer em camadas ou empurrar outros objetos para fora das posições desejadas.

  • Se os usuários estiverem usando o Microsoft Internet Explorer, você poderá desenvolver seu formulário com linhas, retângulos e círculos para definir o plano de fundo. Todos os outros navegadores da Web suportam apenas linhas verticais e horizontais; portanto, retângulos e círculos no seu design de formulário não serão exibidos no tempo de execução.

  • Se os usuários forem usar navegadores Opera, projete os campos um pouco maiores do que deseja. Os campos no Opera sempre têm uma borda interna em depressão. Quaisquer estilos de borda que você aplicar serão colocados ao redor do lado externo dessa borda. Como a borda em depressão ocupa espaço no campo, a área para preenchimento diminuirá.

  • Criar texto estático ligeiramente maior do que o que parece ser necessário para acomodar o texto. O Designer e o Acrobat podem usar kerning diferente do de um navegador da Web específico, e algum texto pode não ser exibido corretamente.

Orientações sobre imagens para criação de formulários em HTML

Considere as seguintes diretrizes ao adicionar imagens aos designs de formulário renderizados como HTML.

Arquivos de imagem suportados
É possível incluir qualquer arquivo de imagem (exceto arquivos GIF animados), sujeito às limitações dos navegadores da Web que os usuários precisam para exibir formulários em HTML.
Nota: Tenha em mente que o Internet Explorer processa a combinação dos objetos de botão e imagem de uma forma diferente dos outros navegadores da Web. Por exemplo, se você criar um objeto de botão com uma aparência transparente personalizada e colocá-lo sobre um objeto de imagem, o Internet Explorer pode processar o HTML resultante de forma incorreta, de forma que os usuários não consigam clicar no botão usando um mouse. Consulte Solução para limitações do navegador da Web.

Não incorpore imagens no formulário
O Forms não é compatível com imagens incorporadas. Em vez disso, use nomes de caminho relativos para inserir arquivos de imagem. Por exemplo, o caminho pode ser relativo ao diretório raiz dos formulários do Forms , que, por padrão, é a pasta designada como o repositório dos formulários. A pasta de imagens no seguinte caminho está no mesmo nível que a pasta de formulários:
../images/graphic.jpg

Solução para limitações do navegador da Web

Se você acredita que alguns dos usuários usarão navegadores com recursos limitados, precisa considerar as limitações do menor denominador comum e projetar seus formulários de acordo. Como alternativa, se sua organização usar navegadores que suportam XHTML, terá mais opções para projetar o design de formulário.

Lembre-se das seguintes considerações ao desenvolver formulários que serão vistos em diversos navegadores:

  • Especifique um tamanho de página para garantir que a transformação para HTML4 (para Netscape Navigator 4.7.x) exibe todos os objetos estáticos adequadamente. Caso contrário, será reservado espaço suficiente para campos apenas quando o formulário for renderizado.

  • Incorpore uma margem de no mínimo 6,35 mm na parte superior e no lado esquerdo do formulário. Qualquer coisa acima e à esquerda dessa margem não ficará visível.

  • Objetos ou partes de objetos desenhados em coordenadas de grade negativas não são exibidos. Por exemplo, se você desenhar um objeto começando na coordenada de grade vertical -12, parte do objeto de -12 até a borda interna de uma margem de 6,35 mm não será exibida.

  • Deixe espaço suficiente ao redor dos campos para compensar a degradação visual que pode ocorrer em um navegador de baixa definição. Por exemplo, em alguns navegadores, caixas de seleção e botões de opção são exibidos com um tamanho maior do que foram projetados.

  • Qualquer alinhamento de dados à esquerda pode não ser mantido quando um navegador de baixa definição for usado para exibir o formulário, especialmente se os usuários alterarem as fontes padrão associadas aos seus navegadores.

  • O Internet Explorer processa a combinação dos objetos de botão e imagem de uma forma diferente dos outros navegadores da Web. Por exemplo, se você criar um objeto de botão com uma aparência transparente personalizada e colocá-lo sobre um objeto de imagem, o Internet Explorer pode processar o HTML resultante de forma incorreta, de forma que os usuários não consigam clicar no botão usando um mouse. Entretanto, os usuários ainda podem alcançar o botão com a tabulação e pressionar a tecla Enter ou a barra de espaço. Este erro de processamento ocorre porque o tamanho do objeto de botão depende do tamanho da legenda. A quantidade de espaço vazio na área de legenda precisa ser grande o bastante para que o tamanho do botão seja maior que o tamanho da imagem. Para solucionar este problema, substitua o texto da legenda com espaços vazios suficientes para permitir que os usuários cliquem no botão usando um mouse.

Visualização de um formulário em HTML

Para testar a operação de seu design de formulário com o Forms e para configurar botões de comando com precisão em um design de formulário, é necessário saber o URL que será associado com solicitações para o Forms. O desenvolvedor do aplicativo personalizado conhece o URL.

Para visualizar um formulário em HTML, é necessário disponibilizar o design de formulário para o Forms de modo que o Forms possa armazenar o design de formulário. Depois disso, é possível solicitar o formulário por meio do URL associado ao Forms. Use um navegador da Web ou um dos aplicativos de destino clientes (como um leitor de tela) para abrir o formulário.

Onde cálculos e scripts são executados

É possível incorporar cálculos e scripts em um design de formulário para executar cálculos, métodos ou operações quando qualquer um dos eventos de um objeto ocorrer em tempo de execução. Por exemplo, um evento ocorre em tempo de execução quando o usuário executa a ação especificada por esse evento. É possível chamar qualquer dos métodos suportados de um objeto e examinar ou definir propriedades por meio da definição de um script.

No Designer, scripts e cálculos são designados, por padrão, para execução no dispositivo cliente. O local de processamento padrão é definido na guia Visualização da caixa de diálogo Propriedades do formulário (selecione Arquivo > Propriedades do formulário). Para suprimir o local de processamento padrão, é possível especificar explicitamente um local de processamento diferente usando a opção Executar em no Editor de scripts quando um script ou um cálculo é anexado a um objeto.

Com o Forms , o processamento pode ser feito no cliente, no servidor ou em ambos. Quando você especificar que um script/cálculo deve ser executado no cliente e no servidor, o cliente e servidor poderão ambos tentar executar o script/cálculo. O Forms sempre tentará processar o script/cálculo se o cliente não puder fazê-lo. Se scripts/cálculos forem designados para execução no servidor, o Forms executará esses scripts e/ou cálculos, reunirá os resultados no formulário e os retornará ao cliente.

Scripts e cálculos de cliente são executados no dispositivo cliente. Ao criar formulários PDF para o Acrobat ou o Adobe Reader, todo o processamento será feito no cliente. Entretanto, se o cliente não conseguir executar o script ou o cálculo, o Forms tentará processá-los.

Para executar um script de cliente em um formulário HTML com êxito, determinadas condições devem ser atendidas:

  • O aplicativo cliente deve ser o Microsoft Internet Explorer 5.x, Netscape 6.0 ou mais recente ou o Opera 5 ou mais recente.

  • O JavaScript pode ser usado somente para gravar scripts (não é possível incluir cálculos FormCalc no design de formulário).

  • O JavaScript deve estar habilitado no aplicativo cliente.

Processamento no cliente e no servidor

O processamento pode ser executado no cliente, no servidor ou em ambos. Scripts e cálculos apresentam um comportamento diferente quando são executados no cliente e quando são executados no servidor.

Processamento no cliente

Em tempo de execução, se o processamento tiver sido definido para ocorrer no cliente, os scripts/cálculos serão executados em tempo real no computador do usuário. O código e as variáveis declarados se tornarão disponíveis logo após a abertura do formulário. As informações permanecerão disponíveis, e o estado dos dados será mantido até que uma destas situações ocorra:

  • Outro script é executado.

  • Outro script remove o objeto associado.

  • O formulário é fechado.

Processamento no servidor

O Forms pode gerenciar qualquer script/cálculo que o aplicativo cliente não consegue gerenciar. Por exemplo, para preencher previamente um formulário, talvez seja necessário usar um script para conexão com um banco de dados ou um serviço da Web que não esteja disponível no cliente. Quando o Forms executa um script ou cálculo, a execução é feita enquanto o formulário está sendo renderizado. Nenhum código ou variável continua disponível após a conclusão do processamento. Em outras palavras, se forem adicionadas variáveis a um script ou cálculo, elas apenas permanecerão válidas durante o processamento.

Nota: Se você escolher a transformação HTML4 para suportar o Netscape Navigator 4.7.x, qualquer JavaScript designado para executar no cliente será executado automaticamente no servidor.

Eventos que podem ser referenciados em um script ou cálculo

Scripts no servidor

O Acrobat e o Adobe Reader reconhecem todos os eventos compatíveis com o Designer. O aplicativo cliente envia eventos iniciados pelo usuário ao Forms para processamento no servidor. Nenhum outro tipo de evento aciona processamento no servidor. O Forms realiza processamento no servidor sempre que estiver renderizando um formulário, executando eventos de servidor iniciados do cliente ou processando dados enviados.

Quando um script ou cálculo é especificado para execução no servidor, os seguintes eventos iniciados pelo usuário fazem com que o Acrobat ou o Adobe Reader envie o evento ao Forms para processamento:

  • exit

  • mouseEnter

  • mouseExit

  • change

  • mouseUp

  • mouseDown

  • click

Durante o processamento de eventos, o Forms executa todos os scripts/cálculos designados para execução no servidor e reúne os resultados no formulário antes de retorná-lo ao aplicativo cliente.

Se qualquer um destes eventos for referenciado em um script/cálculo de servidor, o Acrobat ou o Adobe Reader o ignorará:

  • initialize

  • calculate

  • validate

  • docReady

  • docClose

A seguinte tabela identifica os eventos que podem ser referenciados apenas em scripts/cálculos no servidor. Esses eventos não são reconhecidos pelos aplicativos clientes em HTML.

Evento

Para obter mais informações, consulte

form:ready

evento form:ready

layout:ready

evento layout:ready

Quando um script tiver sido designado para executar no servidor, o evento click (de um botão normal) será o único evento que fará com que um cliente HTML inicie o processamento no servidor. Durante o processamento, o Forms une novamente os resultados no formulário HTML antes de retorná-lo ao aplicativo cliente. Todos os outros eventos são ignorados pelo cliente HTML e são executados somente quando o Forms executa um processamento no servidor.

Scripts no cliente

Para scripts e cálculos de cliente, o Acrobat e o Adobe Reader oferecem suporte para a lista completa de eventos que podem ser definidos no Designer.

No entanto, nem todos esses eventos são reconhecidos pelos clientes HTML. Se você for usar um único design de formulário para criar formulários em PDF e em HTML, seus scripts no cliente deverão fazer referência apenas a um subconjunto dos eventos suportados.

Se um script no cliente fizer referência a um evento não reconhecido pelo cliente HTML, o script irá parar de executar no ponto no qual o evento não reconhecido é referenciado.

É possível usar os seguintes eventos para executar scripts no cliente a partir de formulários HTML.

Evento

Para obter mais informações, consulte

initialize

evento initialize

enter

evento initialize

exit

evento initialize

calculate

evento calculate

Nota: Apenas em formulários HTML, atividades acionadas por eventos calculate são executadas quando o cursor sai de um campo. O processamento não é iniciado quando um usuário altera um campo de valor, mas é possível chamar o processamento explicitamente nesse momento, se for necessários, usando o método execCalculate().

validate

evento validate

change

evento change

Nota: Em formulários em PDF e HTML, esse evento é suportado apenas para listas e caixas de listagem.

mouseUp

evento mouseUp

mouseDown

evento mouseDown

click

evento click

Nota: O evento click não pode ser usado para botões Enviar em formulários PDF ou HTML. Em seu lugar o evento preSubmit.

preSubmit

evento preSubmit

Nota: Em formulários PDF e HTML, esse evento é suportado apenas para botões Enviar. Ao usar o evento preSubmit para executar um script no cliente, o processamento é feito antes dos dados serem enviados. Se o evento executar um script no servidor, o processamento será feito enquanto os dados estiverem sendo enviados.

Resumo de propriedades, métodos e eventos suportados

Nota: A funcionalidade Guias foi retirada.
Com exceção de alguns poucos métodos de objetos do host, o Acrobat e o Adobe Reader oferecem suporte para uma grande variedade de propriedades, métodos e eventos. Os clientes HTML reconhecem um número limitado dessas propriedades, métodos e eventos.

Se você estiver usando um design de formulário único para criar formulários PDF e HTML, seus scripts poderão fazer referência a um subconjunto de propriedades, métodos e eventos aceitos.

As tabelas a seguir resumem quais aplicativos clientes reconhecem as diversas propriedades, métodos e eventos que podem ter referência nos scripts do cliente e/ou do servidor.

Objeto host - Propriedades

Acrobat/Adobe Reader

HTML ou cliente do guia

currentPage (somente leitura)

Sim

Sim

numPages (somente leitura)

Sim

Sim

name (somente leitura)

Sim

Sim

validationsEnabled

Sim

Sim

calculationsEnabled

Sim

Sim

Objeto host - Métodos

Acrobat/Adobe Reader

HTML ou cliente do guia

pageUp

Sim

Somente cliente e servidor

pageDown

Sim

Somente cliente e servidor

exportData

Sim

Não

importData

Sim

Não

gotoURL

Somente cliente.

Somente cliente.

messageBox

Somente cliente.

Somente cliente.

resetData

Sim

Sim

setFocus

Somente cliente.

Somente cliente.

Objeto host - Eventos

Acrobat/Adobe Reader

HTML ou cliente do guia

docReady

Sim

Somente servidor.

docClose

Sim

Somente servidor.

postPrint

Sim

Não

postSave

Sim

Não

prePrint

Sim

Não

preSave

Sim

Não

Objeto de formulário - Métodos

Acrobat/Adobe Reader

HTML ou cliente do guia

resolveNodes

Sim

Sim

resolveNode

Sim

Sim

execCalculate

Sim

Sim

execValidate

Sim

Sim

execInitialize

Sim

Sim

Objetos de subformulário - Propriedades

Acrobat/Adobe Reader

HTML ou cliente do guia

name (somente leitura)

Sim

Sim

index (somente leitura)

Sim

Sim

x

Sim

Sim

y

Sim

Sim

w

Sim

Sim

h

Sim

Sim

validationMessage

Sim

Sim

Objeto de subformulário - Métodos

Acrobat/Adobe Reader

HTML ou cliente do guia

resolveNodes

Sim

Sim

resolveNode

Sim

Sim

execCalculate

Sim

Sim

execValidate

Sim

Sim

execInitialize

Sim

Sim

Objetos de subformulário - Eventos

Acrobat/Adobe Reader

HTML ou cliente do guia

enter

Sim

Sim

exit

Sim

Sim

initialize

Sim

Sim

validate

Sim

Sim

calculate

Sim

Sim

Objetos de campo - Propriedades

Acrobat/Adobe Reader

HTML ou cliente do guia

name (somente leitura)

Sim

Sim

index (somente leitura)

Sim

Sim

rawValue

Sim

Sim

formattedValue

Consulte a observação 1.

Sim

x

Sim

Sim

y

Sim

Sim

w

Sim

Sim

h

Sim

Sim

presence

Sim

Sim

mandatory

Sim

Sim

fontColor

Sim

Sim

fillColor

Sim

Sim

borderColor

Sim

Sim

borderWidth

Sim

Sim

validationMessage

Sim

Sim

Objetos de campo - Métodos

Acrobat/Adobe Reader

HTML ou cliente do guia

execCalculate

Sim

Sim

execInitialize

Sim

Sim

execValidate

Sim

Sim

addItem

Sim, apenas para caixas de listagem e listas suspensas.

Sim, apenas para caixas de listagem e listas suspensas.

clearItems

Sim, apenas para caixas de listagem e listas suspensas.

Sim, apenas para caixas de listagem e listas suspensas.

resolveNodes

Sim

Sim

resolveNode

Sim

Sim

Objetos de campo - Eventos

Acrobat/Adobe Reader

HTML ou cliente do guia

exit

Sim

Sim

enter

Sim

Sim

calculate

Sim

Sim

validate

Sim

Sim

initialize

Sim

Sim

click

Sim, mas não para botões Enviar. Consulte a observação 2.

Sim, mas não para botões Enviar. Consulte a observação 2.

change

Sim

Sim, apenas para caixas de listagem e listas suspensas.

mouseUp

Sim

Sim

mouseDown

Sim

Sim

preSubmit

Sim

Sim, somente para botões Enviar.

Observação 1: para caixas de listagem, formattedValue não retorna o texto exibido.

Observação 2: o evento clicar não é aceito para botões Enviar em formulários PDF ou HTML. Use preSubmit como alternativa.

Objeto ScriptObject

Acrobat/Adobe Reader

HTML ou cliente do guia

Consulte a observação 3.

Sim

Sim

Observação 3: o objeto ScriptObject pode ser criado e usado com qualquer outro script. Consulte Como criar um objeto de script.

Objetos de evento - Propriedades

Acrobat/Adobe Reader

HTML ou cliente do guia

prevText

Sim

Não

prevContentType

Sim

Não

newText

Sim

Não

newContentType

Sim

Não

fullText

Sim

Não

commitKey

Sim

Não

keyDown

Sim

Não

modifier

Sim

Não

name

Sim

Não

selEnd

Sim

Não

selStart

Sim

Não

shift

Sim

Não

target

Sim

Não

change

Sim

Não

Observação 1: para caixas de listagem, formattedValue não retorna o texto exibido.

Observação 2: o evento clicar não é aceito para botões Enviar em formulários PDF. Use preSubmit como alternativa.

Observação 3: o objeto ScriptObject pode ser criado e usado com qualquer outro script. Consulte Como criar um objeto de script.

Expressões suportadas pelos clientes HTML

Um subconjunto simplificado de expressões de sintaxe de referência é suportado pelos clientes HTML:

  • Cálculos FormCalc não são válidos em navegadores HTML e são removidos antes da renderização do formulário em HTML.

  • A sintaxe ellipsis (...) não é suportada.

  • Ao gravar um script no cliente para formulários em HTML, é necessário usar a expressão resolveNode de JavaScript para localizar os nós na hierarquia. O script não pode percorrer a hierarquia usando a notação do objeto. Por exemplo, a seguinte expressão não é suportada:

        xfa.form.subform1.TextEdit1

A seguinte expressão é suportada:

xfa.form.resolveNode("subform1.TextEdit1")

Referências de campo não qualificadas podem ser usadas para localizar campos irmãos na hierarquia.

Nota: Se você escolher a transformação HTML4 para suportar o Netscape Navigator 4.7.x, qualquer JavaScript designado para executar no cliente será executado automaticamente no servidor.

Como gravar um script para manipular páginas HTML

Quando o mesmo design de formulário é usado para renderizar formulários em PDF e em HTML, a configuração do tamanho da página é usada para paginar formulários em PDF, mas é ignorada quando um formulário em HTML é renderizado. Para lidar com as diferenças entre páginas em PDF e em HTML, os criadores de formulário podem usar como opção subformulários de nível de página para configurar as páginas HTML artificiais. Se as páginas HTML forem configuradas dessa forma, o JavaScript será necessário para permitir que os usuários se movimentem de uma página HTML para a próxima no tempo de execução.

É possível usar os métodos pageUp() e pageDown() para permitir que os usuários se movimentem entre páginas HTML usando um botão de comando regular que aciona o processamento quando o evento click do botão ocorrer. Para os formulários em PDF e em HTML, o processamento deve ser executado no cliente e no servidor.

Os métodos pageUp() e pageDown() operam em subformulários de nível de página. Por exemplo, presuma que o criador do formulário configurou a seguinte estrutura no design de formulário:

A.
Esse subformulário de nível de página corresponde à primeira página.

B.
Esse subformulário de nível de página corresponde à segunda página.

C.
Esse subformulário de nível de página corresponde à terceira página.

Se o usuário estiver visualizando a página HTML que corresponde ao Subform_Page0, chamar xfa.host.pageDown() faria com que o Subform_Page1 fosse exibido no navegador. Da mesma forma, chamar xfa.host.pageUp() enquanto Subform_Page1 está em exibição faria com que Subform_Page0 fosse exibido no navegador. Os números de páginas seriam atribuídos às seguintes propriedades para manipular essas páginas HTML:

xfa.host.currentPage = 0     //moves to the first page 
xfa.host.currentPage = 1     //moves to the second page 
xfa.host.currentPage = 2     //moves to the third page 
xfa.host.currentPage = xfa.host.numPages -1     //moves to the last page

À medida que os usuários se movimentam entre as páginas HTML, o estado dos dados é mantido, mas o estado da apresentação de um objeto (por exemplo, a cor de plano de fundo de um campo) pode mudar de uma página para outra. É possível manter as configurações da apresentação entre as páginas usando campos ocultos que contêm valores de estado para as diversas configurações e botões de comando que permitem que os usuários se movimentem para frente e para trás nas páginas do formulário. Seu script atualizaria os estados de apresentação dos campos com base nos valores dos campos ocultos. Quando um usuário clica em um dos botões de comando, o evento calculate para o botão poderia ser usado para executar o script.

Por exemplo, o seguinte JavaScript mantém a cor de preenchimento de um campo com base no valor de um campo chamado hiddenField. O script é acionado quando o evento calculate ocorre.

If (hiddenField.rawValue == 1) 
this.fillColor = "255,0,0" 
else 
this.fillColor = "0,255,0"
Nota: Ao executar scripts em um formulário HTML no dispositivo cliente, é possível executar scripts apenas na página de subformulário/HTML atual.