Designer ofrece la posibilidad de crear objetos sin nombre y varios objetos con el mismo nombre. En esos casos, se pueden seguir creando cálculos y secuencias de comandos para acceder a las propiedades y los valores de los objetos sin nombre y modificarlos utilizando la notación de signo de número (#) o la notación de corchetes ([ ]) en el caso de valores de incidencia de objetos. FormCalc interpreta correctamente los caracteres de signo de número (#) y corchetes ([ ]), pero JavaScript no. Para acceder al valor de un campo de texto en el caso de que se utilice el signo de número (#) o los corchetes ([ ]) mediante JavaScript, se debe utilizar el método resolveNode junto con una sintaxis de referencia completa o abreviada.
Por ejemplo, cuando se crea un nuevo formulario en blanco, de forma predeterminada el nombre del subformulario que representa la primera página del formulario es un subformulario sin nombre con un valor de incidencia de 0. La siguiente ilustración muestra la jerarquía de un formulario nuevo con la nomenclatura de objetos predeterminada.
El subformulario sin nombre que representa la primera página del formulario tiene el número de incidencia 0. En esta situación, las dos sintaxis de referencia siguientes permiten acceder al valor del campo de texto de la jerarquía del formulario anterior en un formulario nuevo en el que se utilizan las convenciones de nomenclatura predeterminadas:
xfa.form.form1.#subform.TextField1.rawValue
xfa.form.form1.#subform[0].TextField1.rawValue
Nota: de forma predeterminada, si no se especifica el valor de incidencia de un objeto, con la sintaxis de referencia se accede a la primera incidencia del objeto.
FormCalc reconoce la sintaxis de referencia completa anterior y la interpreta directamente. Para acceder al mismo valor con JavaScript, se debe utilizar uno de estos formatos del método de secuencia de comandos resolveNode:
xfa.resolveNode("xfa.form.form1.#subform.TextField1").rawValue;
xfa.resolveNode("xfa.form.form1.#subform[0].TextField1").rawValue;
Si se agrega una página nueva al formulario, de forma predeterminada, el formulario que representa la nueva página no tiene nombre; sin embargo, el valor de incidencia de ese nuevo subformulario se define como 1. Se puede especificar el nuevo subformulario sin nombre utilizando una sintaxis de referencia similar a la anterior:
xfa.form.form1.#subform[1].TextField1.rawValue // FormCalc
xfa.resolveNode("xfa.form.form1.#subform[1].TextField1").rawValue; // JavaScript
Nota: las opciones de conclusión de instrucciones disponibles en el Editor de secuencias de comandos incluyen objetos sin nombre al principio de la lista. Los objetos que cuentan con varios valores de incidencia aparecen sólo una vez en la lista, lo que representa la primera incidencia del objeto. Si se quiere acceder a un valor de incidencia que no sea el primero, se debe agregar manualmente el valor de incidencia a la sintaxis de referencia.
Se puede utilizar el método resolveNode para hacer referencia a objetos dentro de otras instrucciones de sintaxis de referencia. Con ello se puede reducir la cantidad de secuencias de comandos necesarias para hacer referencia a un objeto, una propiedad o un método específicos. Por ejemplo, se puede simplificar la sintaxis de referencia que señala a un campo de texto en la segunda página del formulario con la siguiente instrucción:
xfa.form.form1.resolveNode("#subform[1].TextField1").rawValue; // JavaScript
Para obtener más información sobre el método resolveNode, consulte resolveNode.