Diferencia entre revisiones de «Formularios, secciones y campos»
(→Formulario) |
|||
Línea 24: | Línea 24: | ||
{{PR|fin}} | {{PR|fin}} | ||
− | Si nos fijamos, la definición de tipo se realiza fuera del ámbito de los contenedores, al contrario que la definición de formulario '''Mi formulario''', que sí se tiene que definir en un contenedor.<p>Si ahora quisiéramos redefinir '''Mi formulario''' como '''Datos comunes''', de manera que se hereden los campos definidos en él, | + | Si nos fijamos, la definición de tipo se realiza fuera del ámbito de los contenedores, al contrario que la definición de formulario '''Mi formulario''', que sí se tiene que definir en un contenedor.<p>Si ahora quisiéramos redefinir '''Mi formulario''' como '''Datos comunes''', de manera que se hereden los campos definidos en él, el resultado sería como haberlo implementado de la siguiente manera:</p> |
{{PR|tipo}} [MiContenedor] {{PR|es}} {{RE|contenedor}} | {{PR|tipo}} [MiContenedor] {{PR|es}} {{RE|contenedor}} | ||
Línea 40: | Línea 40: | ||
A la hora de crear un objeto de tipo '''MiContenedor''', en nuestro formulario aparecerán los campos definidos en '''Mi formulario''' y los heredados por '''Datos comunes'''. Por tanto, la definición de tipo nos puede servir para crear definiciones de formulario (como en este caso) o para crear nuevos tipos, herendando siempre su contenido.<p>La definición de tipo no exige la creación de la componente, mientras que la definición de formulario (instancia) sí exige la creación de la componente o del recurso en el que esté definido, en este caso un objeto.</p> | A la hora de crear un objeto de tipo '''MiContenedor''', en nuestro formulario aparecerán los campos definidos en '''Mi formulario''' y los heredados por '''Datos comunes'''. Por tanto, la definición de tipo nos puede servir para crear definiciones de formulario (como en este caso) o para crear nuevos tipos, herendando siempre su contenido.<p>La definición de tipo no exige la creación de la componente, mientras que la definición de formulario (instancia) sí exige la creación de la componente o del recurso en el que esté definido, en este caso un objeto.</p> | ||
+ | |||
===Sección=== | ===Sección=== | ||
Una sección es otro {{T|componente}} de ODL que permite agrupar campos dentro de un formulario, diferenciándolos de los demás. Por tanto, se deduce que la definición de una sección se realiza a nivel de formulario. No obstante, también es posible encontrarse definiciones de secciones en un campo tabla, o en definiciones de plantillas, cuyo funcionamiento se puede observar en el artículo dedicado a los [[Escritos|escritos]].<p>De igual manera que en los formularios, se pueden realizar definiciones de secciones o definiciones de tipo de secciones. El comportamiento de dichas definiciones es exactamente igual que en el caso de los formularios. En este caso la definición de sección se realizará a nivel de formulario y la definición de {{PR|tipo}} de sección la realizaremos fuera de cualquier ámbito.</p>Veamos por tanto, un ejemplo parecido al del apartado anterior, aprovechándolo también para ver su sintaxis: | Una sección es otro {{T|componente}} de ODL que permite agrupar campos dentro de un formulario, diferenciándolos de los demás. Por tanto, se deduce que la definición de una sección se realiza a nivel de formulario. No obstante, también es posible encontrarse definiciones de secciones en un campo tabla, o en definiciones de plantillas, cuyo funcionamiento se puede observar en el artículo dedicado a los [[Escritos|escritos]].<p>De igual manera que en los formularios, se pueden realizar definiciones de secciones o definiciones de tipo de secciones. El comportamiento de dichas definiciones es exactamente igual que en el caso de los formularios. En este caso la definición de sección se realizará a nivel de formulario y la definición de {{PR|tipo}} de sección la realizaremos fuera de cualquier ámbito.</p>Veamos por tanto, un ejemplo parecido al del apartado anterior, aprovechándolo también para ver su sintaxis: |
Revisión del 10:12 21 ene 2009
En un sistema de información donde intervienen elementos de diferente naturaleza, resulta indispensable ofrecer un mecanismo para la entrada de información que identifique esos elementos. Para ello, ODL facilita al programador una serie de componentes que nos van a permitir diseñar estructuras para la entrada de datos según las necesidades del sistema de información. Estos componentes son formularios, secciones y campos. Veamos a continuación la especificación de cada componente:
Contenido
Componentes
Formulario
Unformulario
es un componente donde podemos definir secciones y campos. En cuanto a su definición, podemos distinguir dos opciones. La definición de formulario como instancia, o una definición de tipo formulario.Si definimos un formulario como una instancia tendremos que hacerlo a nivel de contenedores. El compilador no aceptará su definición fuera de ese ámbito.
Ahora bien, ¿cuándo nos puede interesar una definición de tipo?
A la hora de programar un sistema de información en ODL, es probable que muchos formularios compartan cierto tipo de campos. Para ahorrarnos código, definiremos un tipo formulario con los campos comunes, para luego definir una instancia de ese tipo en la definición de un contenedor o crear nuevos tipos a partir de él. Para entender mejor estos conceptos, veamos la sintaxis de las dos opciones que hemos comentado:- Definición de formulario como instancia:
tipo
[MiContenedor]es
contenedor
[Mi formulario]es
formulario
[Campo1]es
texto
... ... ...fin
fin
- Definición de tipo formulario:
Si nos fijamos, la definición de tipo se realiza fuera del ámbito de los contenedores, al contrario que la definición de formulario Mi formulario, que sí se tiene que definir en un contenedor.tipo
[Datos comunes]es
formulario
[Campo común]es
texto
... ...//Definición de los campos comunes
...fin
Si ahora quisiéramos redefinir Mi formulario como Datos comunes, de manera que se hereden los campos definidos en él, el resultado sería como haberlo implementado de la siguiente manera:
A la hora de crear un objeto de tipo MiContenedor, en nuestro formulario aparecerán los campos definidos en Mi formulario y los heredados por Datos comunes. Por tanto, la definición de tipo nos puede servir para crear definiciones de formulario (como en este caso) o para crear nuevos tipos, herendando siempre su contenido.tipo
[MiContenedor]es
contenedor
[Mi formulario]es
[Datos comunes] [Campo común]es
texto
... ...//Campos heredados de la definición de tipo "Datos comunes"
... [Campo1]es
texto
... ...//Resto de campos ya definidos
...fin
fin
La definición de tipo no exige la creación de la componente, mientras que la definición de formulario (instancia) sí exige la creación de la componente o del recurso en el que esté definido, en este caso un objeto.
Sección
Una sección es otrocomponente
de ODL que permite agrupar campos dentro de un formulario, diferenciándolos de los demás. Por tanto, se deduce que la definición de una sección se realiza a nivel de formulario. No obstante, también es posible encontrarse definiciones de secciones en un campo tabla, o en definiciones de plantillas, cuyo funcionamiento se puede observar en el artículo dedicado a los escritos.De igual manera que en los formularios, se pueden realizar definiciones de secciones o definiciones de tipo de secciones. El comportamiento de dichas definiciones es exactamente igual que en el caso de los formularios. En este caso la definición de sección se realizará a nivel de formulario y la definición de tipo
de sección la realizaremos fuera de cualquier ámbito.
- Definición de una sección:
tipo
[MiContenedor]es
contenedor
[Mi formulario]es
formulario
[Campo1]es
texto
... ... [Otros campos]es
seccion
[Campo10]es
texto
... ...fin
fin
fin
- Definición de tipo sección:
tipo
[Nueva sección]es
seccion
[Campo común1]es
texto
[Campo común2]es
texto
... ...//Definición de los demás campos agrupados en la sección
...fin
Como vemos, el comportamiento es prácticamente igual que los formularios. Si la sección Otros campos la redefinimos como Nueva sección, la sección Otros campos heredará los campos definidos en Nueva sección.