Referência a objetos sem nome e repetidos

O Designer oferece suporte ao recurso para criar objetos sem nome e vários objetos com o mesmo nome. Ainda é possível criar cálculos e scripts para acessar e modificar as propriedades e os valores de objetos não nomeados usando a notação de número (#) e os valores de ocorrência do objeto usando notação de colchetes ([ ]). O FormCalc interpreta corretamente o sinal de número (#) e os colchetes ([ ]); no entanto, o JavaScript não faz isso. Para acessar o valor de um campo de texto em uma situação na qual ocorre o sinal de número (#) ou os colchetes ([ ]), usando o JavaScript, é necessário usar o método resolveNode em conjunto com uma sintaxe de referência totalmente qualificada ou abreviada.

Por exemplo, ao criar um novo formulário em branco, por padrão, o nome do subformulário que representa a página do formulário é um subformulário não nomeado com um valor de ocorrência 0. A ilustração a seguir mostra a hierarquia de um novo formulário com a nomeação padrão de objeto.

O subformulário sem título que representa a primeira página do formulário tem um número de ocorrência 0. Nessa situação, as duas sintaxes de referência a seguir acessam o valor do campo de texto na hierarquia acima de um novo formulário que usa as condições padrão de nomeação:

    xfa.form.form1.#subform.TextField1.rawValue 
    xfa.form.form1.#subform[0].TextField1.rawValue
Nota: Por padrão, se um valor de ocorrência não for especificado para um objeto, a sintaxe de referência acessa a primeira ocorrência do objeto em questão.

O FormCalc reconhece a sintaxe de referência totalmente qualificada acima e a interpreta diretamente. Para acessar o mesmo valor usando o JavaScript, é necessário usar um desses formulários do método de processamento de script resolveNode:

    xfa.resolveNode("xfa.form.form1.#subform.TextField1").rawValue; 
    xfa.resolveNode("xfa.form.form1.#subform[0].TextField1").rawValue;

Se uma nova página for adicionada ao formulário, por padrão, o nome do subformulário que representa a nova página não é nomeado; no entanto, o valor de ocorrência do novo subformulário é definido para 1. É possível especificar o novo subformulário não nomeado usando uma sintaxe de referência similar conforme a anterior:

    xfa.form.form1.#subform[1].TextField1.rawValue // FormCalc 
    xfa.resolveNode("xfa.form.form1.#subform[1].TextField1").rawValue; // JavaScript
Nota: As opções de término de declaração disponíveis no Editor de scripts incluem objetos não nomeados no início da lista. Os objetos que tem vários valores de ocorrência são exibidos apenas uma vez na lista, representando a primeira ocorrência do objeto. Se desejar acessar um valor diferente da primeira ocorrência, insira o valor de ocorrência manualmente na sintaxe de referência.

Também é possível usar o método resolveNode para fazer referência a objetos presentes em outras declarações da sintaxe de referência. Isso pode ajudar a reduzir a quantia de script necessária para fazer referência a um objeto, propriedade ou método específico. Por exemplo, é possível simplificar a sintaxe de referência que aponta para um campo de texto na segunda página do formulário na seguinte declaração:

    xfa.form.form1.resolveNode("#subform[1].TextField1").rawValue; // JavaScript

Para obter mais informações sobre o método resolveNode, consulte resolveNode.