Diferencia entre revisiones de «Colecciones»
Línea 1: | Línea 1: | ||
__TOC__ | __TOC__ | ||
− | ==¿Qué es una colección?== | + | ===¿Qué es una colección?=== |
<p>Una {{T|colección}} es un componente de ODL que se define a nivel de [[Contenedores|contenedores]] (tanto en definiciones de tipo, como en definiciones de sistema), y que permite almacenar objetos de igual o distinto tipo, generando una tabla en la base de datos para cada una de las definiciones de colección. Además, es posible definir varias colecciones en una misma definición de contenedor.</p> | <p>Una {{T|colección}} es un componente de ODL que se define a nivel de [[Contenedores|contenedores]] (tanto en definiciones de tipo, como en definiciones de sistema), y que permite almacenar objetos de igual o distinto tipo, generando una tabla en la base de datos para cada una de las definiciones de colección. Además, es posible definir varias colecciones en una misma definición de contenedor.</p> | ||
<p>Es un componente importante, ya que para poder crear objetos en un centro, es necesario que sus correspondientes definiciones estén incluídas en al menos una colección.</p> | <p>Es un componente importante, ya que para poder crear objetos en un centro, es necesario que sus correspondientes definiciones estén incluídas en al menos una colección.</p> | ||
Línea 12: | Línea 12: | ||
{{PR|fin}} | {{PR|fin}} | ||
− | ===Declaraciones de contenido=== | + | ====Declaraciones de contenido==== |
<p>A la hora de definir una colección, es necesario declarar el contenido que tendrá la colección. Es decir, se especificarán todas las definiciones de contenedor correspondientes a los tipos objetos que queramos almacenar en la colección.</p> | <p>A la hora de definir una colección, es necesario declarar el contenido que tendrá la colección. Es decir, se especificarán todas las definiciones de contenedor correspondientes a los tipos objetos que queramos almacenar en la colección.</p> | ||
<p>Para ello, utilizaremos la palabra reservada {{PR|contiene}}, de manera que incluiremos un <code>contiene</code> por cada definición de contenedor.</p> | <p>Para ello, utilizaremos la palabra reservada {{PR|contiene}}, de manera que incluiremos un <code>contiene</code> por cada definición de contenedor.</p> | ||
Línea 21: | Línea 21: | ||
... | ... | ||
− | ===Declaraciones de columna=== | + | ====Declaraciones de columna==== |
<p>Como hemos dicho, una colección genera una tabla en la base de datos del centro, pero también habrá que especificar las columnas que se crearán en ella.</p> | <p>Como hemos dicho, una colección genera una tabla en la base de datos del centro, pero también habrá que especificar las columnas que se crearán en ella.</p> | ||
<p>Con la palabra reservada {{PR|columna}} seguida de un nombre, detallaremos dichas columnas. El nombre especificado hará referencia al título de la columna a nivel de egExplorer, no de la base de datos. Para especificar el nombre de la columna en la base de datos utilizaremos el atributo {{AT|columna_bd.nombre}}. Ambos nombres no tienen por qué coincidir, el nombre de la columna en la tabla puede ser distinto al del listado en el egExplorer.</p> | <p>Con la palabra reservada {{PR|columna}} seguida de un nombre, detallaremos dichas columnas. El nombre especificado hará referencia al título de la columna a nivel de egExplorer, no de la base de datos. Para especificar el nombre de la columna en la base de datos utilizaremos el atributo {{AT|columna_bd.nombre}}. Ambos nombres no tienen por qué coincidir, el nombre de la columna en la tabla puede ser distinto al del listado en el egExplorer.</p> | ||
Línea 36: | Línea 36: | ||
</blockquote> | </blockquote> | ||
− | ==Sintaxis== | + | ===Sintaxis=== |
Revisión del 17:19 17 mar 2009
Contenido
¿Qué es una colección?
Una colección
es un componente de ODL que se define a nivel de contenedores (tanto en definiciones de tipo, como en definiciones de sistema), y que permite almacenar objetos de igual o distinto tipo, generando una tabla en la base de datos para cada una de las definiciones de colección. Además, es posible definir varias colecciones en una misma definición de contenedor.
Es un componente importante, ya que para poder crear objetos en un centro, es necesario que sus correspondientes definiciones estén incluídas en al menos una colección.
Como hemos dicho, la definición de una colección genera una tabla en la base de datos. Para su creación, será necesario indicar el nombre de la tabla. Esto lo hacemos utilizando el atributo nombre_tabla
, que acepta una ristra como valor. El nombre de la tabla tendrá que estar siempre precedido del prefijo TC$:
[Definición]es
contenedor
[Contenido]es
coleccion
-nombre_tabla
="TC$NOMBRE"
; ... ...fin
Declaraciones de contenido
A la hora de definir una colección, es necesario declarar el contenido que tendrá la colección. Es decir, se especificarán todas las definiciones de contenedor correspondientes a los tipos objetos que queramos almacenar en la colección.
Para ello, utilizaremos la palabra reservada contiene
, de manera que incluiremos un contiene
por cada definición de contenedor.
Su sintaxis sería la siguiente:
...
contiene
[Definición de contenedor]
...
Declaraciones de columna
Como hemos dicho, una colección genera una tabla en la base de datos del centro, pero también habrá que especificar las columnas que se crearán en ella.
Con la palabra reservada columna
seguida de un nombre, detallaremos dichas columnas. El nombre especificado hará referencia al título de la columna a nivel de egExplorer, no de la base de datos. Para especificar el nombre de la columna en la base de datos utilizaremos el atributo columna_bd.nombre
. Ambos nombres no tienen por qué coincidir, el nombre de la columna en la tabla puede ser distinto al del listado en el egExplorer.
Además, también es necesario indicar el campo que almacenará cada una de las columnas. El atributo origen
nos permite asignarle una expresión que especifique la definición de un campo, que tendrá que estar incluído en la definición de contenedor que contenga la colección.
...columna
[Nombre de la columna] -columna_bd.nombre
="NOMBRE"
; -origen
= [Formulario].[Campo]; ...
NOTA: En caso de que la colección contenga más de una definición de contenedor, los campos que se especifiquen en las columnas con el atributo
origen
tendrán que estar definidos en todos los contenedores. Es decir, la ruta tendrá que ser exactamente igual en todas las definiciones de contenedor.