Métodos abreviados de sintaxis de referencia de FormCalc

Para facilitar el acceso a las propiedades y los valores de los objetos, FormCalc incluye métodos abreviados que reducen el esfuerzo necesario para crear referencias. En esta sección se describen los métodos abreviados de la sintaxis de referencia para FormCalc.

Campo u objeto actual

Se refiere al campo u objeto actual.

Notación

$

Ejemplo

$ = "Tony Blue"

El ejemplo anterior fija el valor del campo u objeto actual en Tony Blue.

Raíz del modelo de datos de xfa.datasets.data

Representa la raíz del modelo de datos xfa.datasets.data.

Notación

$data

Ejemplo

$data.purchaseOrder.total

equivale a

xfa.datasets.data.purchaseOrder.total

Suceso de objeto de formulario

Representa el suceso de objeto de formulario actual.

Notación

$event

Ejemplo

$event.name

equivale a

xfa.event.name

Para obtener más información, consulte Trabajo con el modelo de sucesos.

Raíz del modelo de formulario

Representa la raíz del modelo de formulario xfa.form.

Notación

$formulario

Ejemplo

$form.purchaseOrder.tax

equivale a expresar

xfa.form.purchaseOrder.tax

Objeto principal

Representa el objeto principal.

Notación

$host

Ejemplo

$host.messageBox("Hello world")

equivale a

xfa.host.messageBox("Hello world")

Para obtener más información, consulte Uso de una aplicación host.

Raíz del modelo de presentación

Representa la raíz del modelo de presentación xfa.layout.

Notación

$layout

Ejemplo

$layout.ready

equivale a expresar

xfa.layout.ready

Colección de registro de datos

Representa el registro actual de un conjunto de datos, como los de un archivo XML.

Notación

$record

Ejemplo

$record.header.txtOrderedByCity

hace referencia al nodo txtOrderedByCity en el nodo header de los datos XML actuales.

Raíz del modelo de plantilla

Representa la raíz del modelo de plantilla xfa.template.

Notación

$template

Ejemplo

$template.purchaseOrder.item

equivale a

xfa.template.purchaseOrder.item

Raíz del modelo de datos de xfa.datasets.data

Representa la raíz del modelo de datos xfa.datasets.

Notación

!

Ejemplo

!data

equivale a

xfa.datasets.data

Seleccionar todos los objetos de formulario

Selecciona todos los objetos de formulario de un contenedor dado, como un subformulario, independientemente del nombre o selecciona todos los objetos con un nombre similar.

Puede utilizar la sintaxis ‘*’ (asterisco) con JavaScript si se combina con el método resolveNode.

Notación

*

Ejemplo

Por ejemplo, la expresión siguiente selecciona todos los objetos con el nombre item en un formulario:

xfa.form.form1.item[*]

Búsqueda de objetos que forman parte de un subcontenedor

Se pueden utilizar dos puntos en cualquier lugar de la sintaxis de referencia para buscar objetos que formen parte de cualquier subcontenedor del objeto de contenedor actual, como un subformulario.

Puede utilizar la sintaxis de ‘..’ (punto doble) con JavaScript si se combina con el método resolveNode.

Notación

..

Ejemplo

La expresión Subform_Page..Subform2significa localizar el nodo Subform_Page (como de costumbre) y buscar un descendiente de Subform_Page llamado Subform2.

Según el árbol del ejemplo anterior:

Subform_Page..TextField2

equivale a

Subform_Page.Subform1[0].Subform3.TextField2[0]

porque TextField2[0] es el primer nodo Subform1 que encuentra FormCalc en la búsqueda. Un segundo ejemplo:

Subform_Page..Subform3[*]

devuelve los cuatro objetos TextField2.

Denotación de un objeto sin nombre o especificar una propiedad

La notación de signo de número (#) se utiliza para denotar uno de los siguientes elementos en una sintaxis de referencia:

  • Un objeto sin nombre

  • Especificar una propiedad en una sintaxis de referencia cuando una propiedad y un objeto tienen el mismo nombre

Puede utilizar la sintaxis ‘#’ (signo de almohadilla) con JavaScript si se combina con el método resolveNode.

Notación

#

Ejemplo

Con la siguiente sintaxis de referencia se accede a un subformulario sin nombre:

xfa.form.form1.#subform

La siguiente sintaxis de referencia accede a la propiedad name de un subformulario si éste también contiene un campo llamado name:

xfa.form.form1.#subform.#name

Valor de incidencia de un objeto

La notación de corchetes ([ ]) denota el valor de incidencia de un objeto.

En formularios específicos de idiomas para árabe, hebreo, tailandés y vietnamita, la sintaxis de referencia se encuentra siempre a la derecha (incluso para los idiomas que se leen de derecha a izquierda).

Notación

[ ]

Ejemplo

Para crear una referencia de valor de incidencia, utilice corchetes ([ ]) detrás de un nombre de objeto y encierre entre corchetes uno de los valores siguientes:

  • [ n ], donde n es un número de índice de incidencia absoluto que empieza en 0. Un número de incidencia fuera de rango no devuelve un valor. Por ejemplo:

    xfa.form.form1.#subform.Quantity[3]

    refers to the fourth occurrence of the Quantity object.

  • [ +/- n ], donde n indica una incidencia relativa a la incidencia del objeto que hace la referencia. Con valores positivos se obtienen números de incidencia mayores, mientras que con los negativos se obtienen números de incidencia menores. Por ejemplo:

    xfa.form.form1.#subform.Quantity[+2]

    Esta referencia da como resultado la incidencia de Quantity cuyo número de incidencia es dos números mayor que el número de incidencias del contenedor que hace la referencia. Por ejemplo, si esta referencia se adjunta al objeto Quantity[2], la referencia equivaldría a:

    xfa.template.Quantity[4]

    Si el número de índice computado está fuera de rango, la referencia genera un error.

    Esta sintaxis se emplea habitualmente para ubicar la incidencia anterior o siguiente de un objeto concreto. Por ejemplo, todas las incidencias del objeto Quantity (salvo la primera) pueden utilizar Quantity[-1] para obtener el valor del objeto Quantity anterior.

  • [*] indica varias incidencias de un objeto. Se encuentra el primer objeto nombrado y se devuelven los objetos que tengan el mismo nombre y sean descendientes del primero. Tenga en cuenta que cuando se usa esta notación se obtiene un conjunto de objetos. Por ejemplo:

    xfa.form.form1.#subform.Quantity[*]

  • Esta expresión se refiere a todos los objetos con el nombre de Quantity que sean descendientes de la primera incidencia del objeto Quantity encontrada.

Con el árbol como referencia, las expresiones devuelven los siguientes objetos:

  • Subform_Page.Subform1[*] devuelve ambos objetos Subform1.

  • Subform_Page.Subform1.Subform3.TextField2[*] devuelve dos objetos TextField2.Subform_Page.Subform1 se resuelve en el primero objeto Subform1 de la izquierda y TextField2[*] se evalúa en relación con el objeto Subform3.

  • Subform_Page.Subform1[*].TextField1 devuelve las dos instancias de TextField1.Subform_Page.Subform1[*] se resuelve en los dos objetos Subform1 y TextField1 se evalúa en relación con los objetos Subform1.

  • Subform_Page.Subform1[*].Subform3.TextField2[1] devuelve el segundo y el cuarto objeto TextField2 de la izquierda.Subform_Page.Subform1[*] se resuelve en los dos objetos Subform1 y TextField2[1] se evalúa en relación con los objetos Subform3.

  • Subform_Page.Subform1[*].Subform3[*] devuelve las dos instancias del objeto Subform3.

  • Subform_Page.*devuelve los dos objetos Subform1 y el objeto Subform2.

  • Subform_Page.Subform2.*devuelve las dos instancias del objeto NumericField2.

  • Puede utilizar la sintaxis ‘ [ ]’ (corchetes) con JavaScript si se combina con el método resolveNode.