Saltar al contenido principal
A continuación se describen los aspectos específicos del modelo de objetos utilizado.

Trabajar con colecciones

Todas las colecciones del modelo de objetos admiten los siguientes métodos:

Name

Tipo

Acceso

Descripción

Count

int

De solo lectura

El número de elementos de la colección

Item( index : int )

ItemInterface

De solo lectura

Recupera un elemento de la colección con el índice indicado.

La enumeración comienza con “0”.

En lugar de usar el método Item, también puede acceder a los elementos de la colección mediante paréntesis o corchetes, según el lenguaje seleccionado. En los lenguajes JScript, VBScript y Visual Basic.Net, se usan paréntesis. En C#.Net solo es posible usar corchetes. En JScript.Net se pueden usar tanto paréntesis como corchetes.
Por ejemplo,
Items( 1 ).Text = "Hello" or Items[ 1 ].Text = "Hello"
Todas las colecciones pueden usarse en construcciones “for each” y similares.

Trabajar con campos repetitivos y tablas

Todos los campos del documento, excepto las tablas, pueden ser repetitivos. En la estructura del documento, los campos repetitivos se representan mediante un campo prototipo especial que tiene una colección Items no vacía. Un campo prototipo no tiene elementos secundarios ni valor. Se usa únicamente para almacenar el conjunto de iteraciones del campo. Los campos secundarios y/o los valores de campo solo pueden ser atributos de las instancias del campo, a las que se puede acceder mediante el método Items del objeto IField. Las tablas siempre tienen la colección Rows (Rows es sinónimo de Items). La colección Rows contiene solo aquellas filas de la tabla a cuyas celdas se puede acceder mediante el método Children de las filas.

Construcción de rutas a campos

Los métodos Field, HasField e IndexedItemValue del objeto IDocument usan como parámetros rutas a los campos del formulario. La forma formal de representar la ruta mediante una BNF (forma de Backus-Naur) es la siguiente: <Path> ::= <Path_component> | <Path> "" <Path_component> <Path_component> ::= <Field_name> | <Field_name> ”[“<Field_iteration_number>”]” Donde Field_name indica los nombres de los campos del documento tal como se definen en la Definición de Document, y Field_iteration_number es el número de iteración del campo repetido (el número de fila en las tablas), comenzando por “0”. La ruta puede ser completa o relativa. Las rutas completas se construyen a partir del nombre de la sección del documento, mientras que las rutas relativas se construyen a partir del nombre del elemento secundario del grupo. Por ejemplo, para hacer referencia a la tercera fila de la columna “Total” de la tabla “Table”, que se encuentra en la sección “Section”, debe escribir lo siguiente:
"Section\Table[2]\Total"
Ese nombre completo se puede construir mediante el método FullName del objeto IField.