Diferencia entre revisiones de «Atributos»
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
==Atributos de las definiciones de campo== | ==Atributos de las definiciones de campo== | ||
==={{AT|actualizar_escrito}}=== | ==={{AT|actualizar_escrito}}=== | ||
− | |||
− | |||
− | |||
Atributo que permite la edición de un campo y su posterior sustitución por la marca en el escrito, una vez el objeto está protegido. Es un atributo lógico, cuyo valor por defecto es <code>'''falso'''</code>. En caso de querer activarlo, se le asignará el valor <code>'''verdadero'''</code>. También permite la asignación de una expresión que devuelva un valor lógico.<p>Hay que tener en cuenta que cuando un objeto está protegido, los campos no se pueden editar. Para poder hacerlo es necesario incluir el atributo [[#edicion.proteger|{{AT|edicion.proteger}}]], que permite la edición de un campo aunque el objeto esté protegido.</p>Este atributo actúa en cualquier tipo de campo. | Atributo que permite la edición de un campo y su posterior sustitución por la marca en el escrito, una vez el objeto está protegido. Es un atributo lógico, cuyo valor por defecto es <code>'''falso'''</code>. En caso de querer activarlo, se le asignará el valor <code>'''verdadero'''</code>. También permite la asignación de una expresión que devuelva un valor lógico.<p>Hay que tener en cuenta que cuando un objeto está protegido, los campos no se pueden editar. Para poder hacerlo es necesario incluir el atributo [[#edicion.proteger|{{AT|edicion.proteger}}]], que permite la edición de un campo aunque el objeto esté protegido.</p>Este atributo actúa en cualquier tipo de campo. | ||
==={{AT|apariencia.altura}}=== | ==={{AT|apariencia.altura}}=== | ||
− | |||
− | |||
− | |||
<p>Atributo para configurar la altura a mostrar de un campo {{T|memo}}, {{T|tabla}} y {{T|lista de comprobación}} en forma de líneas de texto. Su valor por defecto es 15 y a su vez, es el máximo valor que puede adquirir este atributo. Hay que diferenciar dos aspectos en este atributo. Uno es el número de líneas que se mostrarán en el campo vacío, y otro aspecto es el número de líneas que se podrán insertar antes de que aparezca el scroll.</p><p>Si el valor asignado es menor que cinco, entonces aparecerán ese número de líneas en el campo vacío, y además aparecerá el scroll cuando se sobrepase esa cifra. Si el valor asignado es mayor o igual a cinco, sólo se mostrarán cinco líneas en el campo vacío, y el scroll aparecerá cuando se sobrepase el valor asignado:</p> | <p>Atributo para configurar la altura a mostrar de un campo {{T|memo}}, {{T|tabla}} y {{T|lista de comprobación}} en forma de líneas de texto. Su valor por defecto es 15 y a su vez, es el máximo valor que puede adquirir este atributo. Hay que diferenciar dos aspectos en este atributo. Uno es el número de líneas que se mostrarán en el campo vacío, y otro aspecto es el número de líneas que se podrán insertar antes de que aparezca el scroll.</p><p>Si el valor asignado es menor que cinco, entonces aparecerán ese número de líneas en el campo vacío, y además aparecerá el scroll cuando se sobrepase esa cifra. Si el valor asignado es mayor o igual a cinco, sólo se mostrarán cinco líneas en el campo vacío, y el scroll aparecerá cuando se sobrepase el valor asignado:</p> | ||
Línea 41: | Línea 35: | ||
==={{AT|apariencia.desplegable}}=== | ==={{AT|apariencia.desplegable}}=== | ||
− | |||
− | |||
− | |||
Indica si los valores que puede obtener un campo pueden aparecer en forma de desplegable. Es de tipo lógico, aunque no admite expresiones lógicas.<p>Este atributo, debe ir a compañado de otro atributo llamado [[#edicion.valores|{{AT|edicion.valores}}]], que contendrá los valores a seleccionar en el desplegable. De lo contrario, provocará un error de compilación.</p>Este atributo solo es aplicable a los campo {{T|texto}}, {{T|entero}} y {{T|real}}. | Indica si los valores que puede obtener un campo pueden aparecer en forma de desplegable. Es de tipo lógico, aunque no admite expresiones lógicas.<p>Este atributo, debe ir a compañado de otro atributo llamado [[#edicion.valores|{{AT|edicion.valores}}]], que contendrá los valores a seleccionar en el desplegable. De lo contrario, provocará un error de compilación.</p>Este atributo solo es aplicable a los campo {{T|texto}}, {{T|entero}} y {{T|real}}. | ||
==={{AT|apariencia.proporcion}}=== | ==={{AT|apariencia.proporcion}}=== | ||
− | |||
− | |||
− | |||
Indica el % que utilizará la etiqueta del campo para su visualización. Su valor por defecto es 40 (valor entero). El resto del porcentaje es el espacio reservado para la edición del campo. Si se define a nivel de tarea, formulario o cualquier otro componente en el que se definan los campos, el valor del atributo afectará a todos los campos: | Indica el % que utilizará la etiqueta del campo para su visualización. Su valor por defecto es 40 (valor entero). El resto del porcentaje es el espacio reservado para la edición del campo. Si se define a nivel de tarea, formulario o cualquier otro componente en el que se definan los campos, el valor del atributo afectará a todos los campos: | ||
Línea 324: | Línea 312: | ||
==={{AT|reemplazar_siempre}}=== | ==={{AT|reemplazar_siempre}}=== | ||
− | En caso de contar con más de un campo firma en un escrito, con este atributo podemos establecer si queremos que se reemplace, una vez firmada, cada campo firma en el escrito, o si por el contrario, queremos que se reemplacen cuando todas las firmas hayan sido realizadas.<p>Este atributo acepta los valores lógicos '''falso''' y '''verdadero'''. En caso de querer ir sustituyendo una a una independientemente de las firmas que queden por realizar, asignaremos el valor verdadero, si por el contrario queremos que se sustituyan todas una vez no falte ningún campo firma por firmar, asignaremos falso.</p>Para ver un ejemplo sobre el funcionamiento de este atributo, accederemos al artículo referente a los escritos. [[Escritos|Haz | + | En caso de contar con más de un campo firma en un escrito, con este atributo podemos establecer si queremos que se reemplace, una vez firmada, cada campo firma en el escrito, o si por el contrario, queremos que se reemplacen cuando todas las firmas hayan sido realizadas.<p>Este atributo acepta los valores lógicos '''falso''' y '''verdadero'''. En caso de querer ir sustituyendo una a una independientemente de las firmas que queden por realizar, asignaremos el valor verdadero, si por el contrario queremos que se sustituyan todas una vez no falte ningún campo firma por firmar, asignaremos falso.</p>Para ver un ejemplo sobre el funcionamiento de este atributo, accederemos al artículo referente a los escritos. [[Escritos|Haz clic aquí para ir al ejemplo]]. |
==={{AT|tabla.filas_max}}=== | ==={{AT|tabla.filas_max}}=== | ||
Línea 438: | Línea 426: | ||
</center> | </center> | ||
__NOTOC__ | __NOTOC__ | ||
+ | |||
+ | [[Categoría:ODL]] |
Revisión actual del 12:56 11 ago 2009
Atributos de las definiciones de campo
actualizar_escrito
Atributo que permite la edición de un campo y su posterior sustitución por la marca en el escrito, una vez el objeto está protegido. Es un atributo lógico, cuyo valor por defecto es falso
. En caso de querer activarlo, se le asignará el valor verdadero
. También permite la asignación de una expresión que devuelva un valor lógico.Hay que tener en cuenta que cuando un objeto está protegido, los campos no se pueden editar. Para poder hacerlo es necesario incluir el atributo edicion.proteger
, que permite la edición de un campo aunque el objeto esté protegido.
apariencia.altura
Atributo para configurar la altura a mostrar de un campo memo
, tabla
y lista de comprobación
en forma de líneas de texto. Su valor por defecto es 15 y a su vez, es el máximo valor que puede adquirir este atributo. Hay que diferenciar dos aspectos en este atributo. Uno es el número de líneas que se mostrarán en el campo vacío, y otro aspecto es el número de líneas que se podrán insertar antes de que aparezca el scroll.
Si el valor asignado es menor que cinco, entonces aparecerán ese número de líneas en el campo vacío, y además aparecerá el scroll cuando se sobrepase esa cifra. Si el valor asignado es mayor o igual a cinco, sólo se mostrarán cinco líneas en el campo vacío, y el scroll aparecerá cuando se sobrepase el valor asignado:
... [Anexo]es
memo
//Valor por defecto: 15
[Anexo2]es
memo
-apariencia.altura
= 7; [Anexo3]es
memo
-apariencia.altura
= 3; ...
Este atributo también es aplicable a los campos de tipo imagen
, pero con una particularidad. El valor no corresponde a líneas de texto, sino a píxeles a mostrar. Por tanto, si le damos un valor 200, entonces la altura del campo que se muestre será de 200 píxeles. La imagen cargada se adaptará a la altura indicada. Si la imagen es más grande, se reducirá el tamaño de ésta, y si es más pequeña, se expanderá:
... [Imagen]es
imagen
-apariencia.altura
= 300; ...
apariencia.desplegable
Indica si los valores que puede obtener un campo pueden aparecer en forma de desplegable. Es de tipo lógico, aunque no admite expresiones lógicas.Este atributo, debe ir a compañado de otro atributo llamado edicion.valores
, que contendrá los valores a seleccionar en el desplegable. De lo contrario, provocará un error de compilación.
texto
, entero
y real
.
apariencia.proporcion
Indica el % que utilizará la etiqueta del campo para su visualización. Su valor por defecto es 40 (valor entero). El resto del porcentaje es el espacio reservado para la edición del campo. Si se define a nivel de tarea, formulario o cualquier otro componente en el que se definan los campos, el valor del atributo afectará a todos los campos:
... [Nombre]es
texto
//Proporción por defecto: 40
[Primer apellido]es
texto
-apariencia.proporcion
= 60; [Segundo apellido]es
texto
-apariencia.proporcion
= 30; ...
certificado.estado
Atributo que actúa exclusivamente en campos de tipo timbre
. Si le asignamos protegido
indicaremos que una vez timbrado el objeto, éste se protegerá, de forma que no se podrá editar ningún campo del objeto.
certificado.secuencia
Atributo oculto de un campo timbre
(no permite ninguna asignación a nivel del programador) que adquiere el valor siguiente al valor actual de la secuencia en formato texto. Su valor, podrá ser asignado accediendo a la propiedad [&Valor_secuencia]
. En caso de incluir el atributo certificado.secuencia.longitud
en la definición del campo timbre, los dígitos que aún no se utilicen para formar el valor de la secuencia se mostrarán como ceros a la izquierda.
certificado.secuencia.nombre
Atributo para especificar el nombre de la secuencia en un campo timbre
. El valor a asignar es de tipo texto.
certificado.secuencia.longitud
Atributo para indicar el número máximo de caracteres que aceptará la secuencia de un campo timbre
. Se indicará mediante un valor entero.
certificado.subsecuencia.valor
Una subsecuencia se utiliza para reiniciar la secuencia cuando el valor de la subsecuencia cambie. Es decir, no funciona como una secuencia, en donde se van adquiriendo valores correlativos, sino que adquiere un valor, y en el momento que cambie dicho valor, el atributo certificado.secuencia
se reiniciará.El valor a asignar a este atributo será de tipo texto, pudiendo utilizar expresiones más complejas que devuelvan una ristra mediante funciones de librería, por ejemplo.
Es posible acceder al valor de este atributo mediante la propiedad del campotimbre
, [&Valor_subsecuencia]
.
certificado.subsecuencia.longitud
Al igual que el atributo certificado.secuencia.longitud
, sirve para indicar el número máximo de caracteres que aceptará la subsecuencia de un campo timbre
.
certificado.valor
Es el atributo que contiene el valor que obtendrá el campo timbre una vez timbremos el objeto y lo guardemos. Podemos asignar expresiones de tipo texto, usando funciones de librería y accediendo a las propiedades del propio campo timbre [&Valor_secuencia]
y [&Valor_subsecuencia]
.
A continuación, veamos un ejemplo en el que podamos reflejar todos los atributos explicados. Se recomienda, antes de observar el ejemplo, que se estudie todos los atributos relacionados con los campos timbre:
En este ejemplo, queremos que el código de cada expediente sea, primero el año en el que se dio de alta el expediente, y luego el valor de la secuencia, separados por un guión.tipo
[Expediente]es
contenedor
[Datos generales]es
formulario
[Número de expediente]es
timbre
-certificado
.subsecuencia
.valor
= ($texto($Año($Hoy)); -certificado
.subsecuencia
.longitud
= 4; -certificado
.secuencia
.nombre
="SECUENCIA_ENTRADA"
; -certificado
.secuencia
.longitud
= 4; -certificado
.valor
= [&Valor_subsecuencia] +"-"
+ [&Valor_secuencia]; [Fecha]es
fecha
[Centro gestor]es
texto
[Órgano competente]es
texto
...fin
fin
En primer lugar hemos definido la subsecuencia. Ésta tomará el año de la fecha actual, y la transformará a texto mediante la función $texto
. A continuación hemos definido la longitud máxima de caracteres que podrá admitir la subsecuencia con valor 4, de forma que cuando se llegue al año 10000, se producirá un error.
certificado.secuencia.nombre
y una longitud, en este caso 4. El atributo oculto certificado.secuencia
irá obteniendo valores a medida que se vayan creando expedientes, y se reiniciará cuando el valor de certificado.subsecuencia.valor
cambie.Por último, sólo nos queda indicar la expresión de tipo texto en el atributo certificado.valor
, que como ya hemos dicho, tendrá el formato año-secuencia. ¿Cómo hacemos esto? Pues para mostrar el año al principio, necesitaremos acceder al valor de la propiedad "Valor_subsecuencia". Añadimos el guión, y finalmente accederemos al valor de la propiedad "Valor_secuencia".
edicion.aspecto
Este atributo sirve para especificar el modo visual en el que se muestran los caracteres de un campo. Su valor por defecto es normal
, pudiendo tomar también los valores minusculas
, para visualizar el campo en minúsculas, o mayusculas
, para visualizarlo en mayúsculas, independientemente de cómo se inserte el carácter en cualquier caso.Actúa en campos de tipo texto
, aunque también es posible definirlo en campos de tipo código
y de tipo vínculo
, pero su definición afecta a la propiedad [&Rotulo]
de dichos campos:
... ... [Nombre]es
texto
[Primer apellido]es
texto
-edicion.aspecto
= mayusculas; [Segundo apellido]es
texto
-edicion.aspecto
= minusculas; ... ...
edicion.formato
Atributo para especificar el formato que queremos aplicar a un valor de tipo texto de un campo. La forma de establecer el formato se realiza mediante las máscaras de edición de Delphi.
edicion.longitud
Atributo de valor entero para establecer un número máximo de caracteres en el campo. Su valor por defecto es ilimitado, es decir, podremos introducir todos los caracteres que queramos.
edicion.mensaje
Permite la aparición de un mensaje en un campo a modo de ayuda al usuario, antes de que se introduzca ningún valor. Por tanto, los valores asignables serán de tipo texto o toda expresión que devuelva un valor de tipo texto.
... ... [DNI]es
texto
-edicion.mensaje
="[NO INTRODUCIR LA LETRA]"
; ...
edicion.modo
El atributo edicion.modo
nos permite especificar de qué modo se obtendrá el valor de un determinado campo. Existen cuatro modos distintos de edición: normal, sugerencia, referencia y copia. Su valor por defecto es normal, es decir, el valor será introducido por el usuario.El modo sugerencia se utiliza para sugerir el valor que puede adquirir un campo. Para ello, se debe especificar en el atributo edicion.valor
, el valor a sugerir. Este valor se puede obtener de otros campos, o bien de una expresión que incluya, por ejemplo, funciones de librería. La expresión definida en edicion.valor, se comprobará cada vez que el usuario indique "sugerir el valor" mediante egExplorer. No obstante, el usuario podrá ignorar la sugerencia y editar el campo.
El modo referencia, al igual que el anterior, necesita la definición del atributo edicion.valor
. En él incluiremos la ruta del campo de donde se toma el valor, o bien, una expresión que nos devuelva un valor. Cuando un campo adquiere su valor mediante el modo referencia, no es posible la edición por parte del usuario. El valor del campo sólo podrá variar si el valor de edicion.valor cambia. Cuando se abra el objeto, se hará la comprobación del valor del atributo edicion.valor
.
edicion.valor
cambia, esto no afectara al campo. Además, el campo podrá ser editado por el usuario.Veamos por tanto un ejemplo de cada uno de los modos de edición:
Tenemos dos contenedores en nuestro centro llamados Cliente y Expediente. En el contenedor Expediente añadiremos un vínculo a Cliente para obtener el nombre del cliente en los modos de edición sugerencia, referencia y copia:
tipo
[Expediente]es
contenedor
[Datos generales]es
formulario
[Número]es
timbre
-certificado.subsecuencia.valor
= $texto($Año($Hoy)); -certificado.subsecuencia.longitud
= 4; -certificado.valor
= [&Valor_subsecuencia] +"-"
+ [&Valor_secuencia]; -certificado.secuencia.nombre
="EXPEDIENTES"
; -certificado.secuencia.longitud
= 4; [Fecha]es
fecha
-edicion.modo
= referencia;//El valor del campo fecha se obtiene de la propiedad [&Fecha] del campo timbre
-edicion.valor
= [Número].[&Fecha]; [Órgano competente]es
texto
[DNI del cliente]es
vinculo
-vinculo.definicion
= [Cliente]; -vinculo.etiqueta
= [Datos personales].[DNI]; -vinculo.valores
= $matriz([Clientes].[Contenido]); [Nombre del cliente en modo referencia]es
texto
-edicion.modo
= referencia; -edicion.valor
= [Cliente]->[Datos personales].[Nombre]; [Nombre del cliente en modo copia]es
texto
-edicion.modo
= copia; -edicion.valor
= [Cliente]->[Datos personales].[Nombre]; [Nombre del cliente en modo sugerencia]es
texto
-edicion.modo
= sugerencia; -edicion.valor
= [Cliente]->[Datos personales].[Nombre];fin
fin
tipo
[Cliente]es
contenedor
[Datos personales]es
formulario
[Código de cliente]es
timbre
-certificado.secuencia.nombre
="MISECUENCIA"
; -certificado.valor
="CL-"
+ [&Valor_secuencia]; [Nombre]es
texto
[Primer apellido]es
texto
[Segundo apellido]es
texto
[Fecha de nacimiento]es
fecha
[Lugar de nacimiento]es
texto
[Sexo]es
texto
-apariencia.desplegable
= verdadero; -edicion.valores
= $Matriz("Hombre"
,"Mujer"
); -edicion.seleccion
= verdadero; [DNI]es
texto
-edicion.mensaje
="[NO INTRODUCIR LA LETRA]"
;fin
fin
Una vez vistas las definiciones, creamos un objeto Expediente, y veremos qué datos obtienen aquellos campos que dependen del valor del atributo edicion.valor
:
Vemos que en el modo sugerir, no aparece ningún dato. Aparecería el valor de edicion.valor
en el campo, (Rafael), si el usuario picara en el cuadrado que aparece al lado del campo. El campo además es editable.
En el modo referencia, si nos fijamos, el campo no es editable (aparece en color amarillo) y el nombre que aparece es el mismo que en los otros dos modos.
Ahora bien, ¿qué ocurriría si modificáramos el nombre del cliente? Veámoslo:Quizás te estés preguntando qué ocurre con el campo Fecha, que también está definido en modo referencia. En el caso del nombre, hemos obtenido el valor de un campo definido en otro recurso (mediante un vínculo). Pero también podemos obtener un valor accediendo a una propiedad, que en este caso es la propiedad [&Fecha] de un campo timbre
.
edicion.precision
Campo para determinar el número de dígitos que acepta la parte decimal de un campo real. Su valor por defecto es 2, pudiendo asignar un valor entero para mostrar más o menos decimales. Cuando introducimos un número mayor de decimales que el especificado en edicion.precision
, se aplicará un redondeo.
edicion.proteger
Cuando un objeto está protegido, de manera que ninguno de sus campos es editable, puede que nos interese dar la opción de moficar alguno en concreto. Para ello existe este atributo. Su valor por defecto es verdadero (no será editable ningún campo). Asignaremos falso a edicion.proteger
en el campo que queramos editar, siempre y cuando el objeto esté protegido.Un objeto puede estar protegido cuando en un campo timbre
añadimos el atributo certificado.estado
y le asignamos el valor verdadero. También se protegerá un objeto cuando se firme un campo firma
.
tipo
[Cliente]es
contenedor
[Datos personales]es
formulario
[Código de cliente]es
timbre
-certificado.estado
= protegido;//Atributo que protege el objeto una vez timbrado el objeto
-certificado.secuencia.nombre
="MISECUENCIA"
; -certificado.valor
="CL-"
+ [&Valor_secuencia]; [Nombre]es
texto
[Primer apellido]es
texto
[Segundo apellido]es
texto
-edicion.proteger
= falso; ...fin
fin
edicion.regla
Atributo cuya utilidad es proteger un campo de un objeto (no protegido), evitando la edición por parte del usuario. Su valor por defecto es verdadero. En caso de querer proteger un campo, le asignaremos falso, aunque también es posible definir una expresión lógica en el atributo, y en función del valor devuelto, se protegerá o no el campo.
tipo
[Cliente]es
contenedor
[Datos personales]es
formulario
[Código de cliente]es
timbre
-certificado.secuencia.nombre
="MISECUENCIA"
; -certificado.valor
="CL-"
+ [&Valor_secuencia]; [Nombre]es
texto
[Primer apellido]es
texto
[Segundo apellido]es
texto
... [DNI]es
texto
-edicion.mensaje
="[NO INTRODUCIR LA LETRA]"
; -edicion.regla
= falso;//Atributo que protegerá el campo DNI
fin
fin
El campo una vez protegido, podrá adquirir valores, pero mediante algún modo de edición (ver atributo edicion.modo
). Reiterar que la protección es sólo a nivel de edición del usuario.
edicion.seleccion
Atributo que indica si un campo es de selección, es decir, que el campo sólo admite los valores que se facilitan, por ejemplo, mediante un desplegable. Su valor por defecto es falso, asignándole verdadero en caso de querer activar esta opción.
edicion.valor
Atributo al que podremos asignar una expresión que devuelva un valor. Éste valor será utilizado por los modos de edicion sugerencia, referencia y copia mediante el atributo edicion.modo
, aunque también se puede utilizar en modo normal para asignar un valor a un campo automáticamente. Ver ejemplo
edicion.valores
Es el atributo encargado de administrar los posibles valores que puede adquirir un campo. Los valores vienen dados en forma de matriz, por lo que tendremos que utilizar la función $Matriz(<code>"ValorA"
,"ValorB"
)</code>, o bien utilizando un enumerado $Matriz([Nombre del enumerado])
. También es posible realizar una consulta sobre una base de datos con la función $MatrizSQL(<code>"sentencia SQL"
)</code>.Si queremos que los valores aparezcan en forma de desplegable, utilizaremos el atributo apariencia.desplegable
en el mismo campo, si no, se abrirá una ventana con la lista de valores:
... ... [Sexo]es
texto
-apariencia.desplegable
= verdadero; -edicion.valores
= $Matriz("Hombre"
,"Mujer"
); ... ...
lista_comprobacion.inicializar
Permite insertar filas de comprobación en la definición de un campo lista_comprobacion
. Los valores a inicializar serán de tipo texto, y deberán asignarse a lista_comprobacion.inicializar
utilizando la función de librería $Matriz.Los valores inicializados tendrán la casilla de verificación desactivada. Además permite seguir añadiendo otras filas de comprobación.
... ... [Documentación a presentar]es
lista_comprobacion
-lista_comprobacion.inicializar
= $Matriz("Fotocopia DNI"
,"Fotocopia IRPF"
); ...
reemplazar_siempre
En caso de contar con más de un campo firma en un escrito, con este atributo podemos establecer si queremos que se reemplace, una vez firmada, cada campo firma en el escrito, o si por el contrario, queremos que se reemplacen cuando todas las firmas hayan sido realizadas.Este atributo acepta los valores lógicos falso y verdadero. En caso de querer ir sustituyendo una a una independientemente de las firmas que queden por realizar, asignaremos el valor verdadero, si por el contrario queremos que se sustituyan todas una vez no falte ningún campo firma por firmar, asignaremos falso.
Para ver un ejemplo sobre el funcionamiento de este atributo, accederemos al artículo referente a los escritos. Haz clic aquí para ir al ejemplo.tabla.filas_max
Indica el número máximo que se permite insertar en un campo tabla
. Su valor por defecto es "sin límite", pudiéndole asignar un valor entero para establecer un número máximo de filas.
tabla.filas_min
Indica el número mínimo de filas a insertar en un campo tabla
. Su valor por defecto es 0, de forma que le asignaremos un entero para determinar el número de filas mínimo. Hasta que no se alcance ese valor, el contenedor no podrá ser guardado.
tabla.proteger_filas
Atributo lógico cuyo valor por defecto es falso. Si le asignamos verdadero, protegeremos todas las filas que hayan sido incluídas en la tabla, es decir, que no podrán ser eliminadas ni modificadas.
tamaño_maximo
Atributo que indica en los campos de tipo imagen
el tamaño máximo (en kilobytes) que puede tener la imagen a cargar. En caso de cargar una imagen que exceda el valor asignado a este atributo, se mostrará el siguiente error:
tipo_imagen
Atributo que permite indicar, para un campo de tipo imagen
, qué formatos de imagen se mostrarán en el explorador de windows para seleccionar la imagen, aunque no excluye la carga de imágenes con otros formatos. Veamos el siguiente ejemplo:
... [Imagen]es
imagen
-tipo_imagen
="jpg, bmp"
; ...
vinculo.definicion
Atributo para especificar en un campo, qué tipo de contenedor
se va a vincular en él.
vinculo.etiqueta
Atributo que permite la asignación de una expresión de tipo texto, cuyo valor será mostrado en el contendio del campo vínculo.
vinculo.valor
A diferencia del atributo vinculo.valores
que nos permite seleccionar un valor de una lista de objetos, vinculo.valor
se utiliza para asignar un valor concreto al campo vinculo
. Permite asignar una expresión siempre y cuando el valor devuelto sea un objeto u otro campo de tipo vinculo. Funciona bajo los modos de edición sugerencia, referencia y copia, de manera que debe ir acompañado del atributo edicion.modo
.Es usual utilizar la función de librería $SeleccionarObjetoPorDefinicion(coleccion,"definicion"
) que devuelve el primer objeto que encuentre en una colección
que pasamos por parámetro. Veamos un ejemplo a continuación:
En este caso, hemos optado por vincular un objeto que obtendremos mediante la función de librería $SeleccionarObjetoPorDefinición.tipo
[Expediente]es
contenedor
... ... ... [DNI del cliente]es
vinculo
-vinculo.definicion
= [Cliente]; -vinculo.etiqueta
= [Cliente].[DNI]; -vinculo.valores
= $Matriz([Clientes].[Contenido]); [Primer cliente]es
vinculo
-vinculo.definicion
= [Cliente]; -vinculo.etiqueta
= [Cliente].[Nombre]; -vinculo.valores
= $Matriz([Clientes].[Contenido]); -vinculo.valor
= $SeleccionarObjetoPorDefinicion([DNI del cliente]->[&Dominio],"[Cliente]"
); -edicion.modo
= copia;fin
fin
En primer lugar, indicamos el tipo de objeto a vincular así como la etiqueta a mostrar una vez vinculado con los atributos vinculo.definicion
y vinculo.etiqueta
respectivamente.
edicion.modo
indicará el modo de obtención del valor de la etiqueta.¿Y por qué hay definido un vinculo.valores
?
vinculo.valor
se utiliza en modo copia, estamos dando la posibilidad de editar el campo por parte del usuario, de forma que el compilador exigirá dar una lista de valores mediante vinculo.valores
. Al crear el objeto, se evaluará la expresión de vinculo.valor y dará un valor al campo vinculo. Si el usuario edita el campo dándole otro valor de la lista proporcionada en vinculo.valores, el valor del campo vinculo cambiará. Este comportamiento es válido para el modo sugerencia también.Si utilizáramos el modo referencia, la edición del campo no sería posible, por tanto, el compilador no exigirá una lista de valores ya que entiende que el campo no podrá ser editado.
Veamos el comportamiento del código que hemos elaborado:- Seleccionamos el valor del campo [DNI del cliente]:
- Ahora vemos, que al seleccionar un objeto en el campo [DNI del cliente], el campo vínculo [Selección de otro cliente] ya puede evaluar la expresión definida en
atributo.valor
. La función definida nos devuelve el primer objeto de la colección pasada por parámetro (se visualiza el nombre, indicado envinculo.etiqueta
:
- Ahora eliminamos el vínculo asignado, y vemos cómo es posible asignar otro valor mediante la colección definida en
vinculo.valores
(en modo referencia no es posible):
- Seleccionamos un objeto, y vemos que se puede vincular un objeto, o bien mediante
atributo.valor
o medianteatributo.valores
(posibilitado por el modo copia):
vinculo.valores
Atributo al que se le puede asignar una expresión en forma de matriz utilizando la función de librería $Matriz. Esto provocará que se muestre una lista con los objetos vinculables por el campo vinculo
.Existe una función de librería llamada $SeleccionarObjetosPorDefinicion(coleccion,"definicion"
) que devuelve la lista de objetos de una colección, de los cuales se seleccionará uno de modo que sea el valor del campo vinculo.
En nuestro sistema, tenemos dos tipo de contenedores, Expediente y Cliente con sus respectivas colecciones. En el contenedor Expediente hemos añadido un campotipo
[Expediente]es
contenedor
... ... ... [DNI del cliente]es
vinculo
-vinculo.definicion
= [Cliente]; -vinculo.etiqueta
= [Cliente].[DNI]; -vinculo.valores
= $Matriz([Clientes].[Contenido]);fin
fin
vinculo
. Con el atributo vinculo.definicion
indicamos el tipo de objeto que vamos a vincular, en este caso, de tipo Cliente. Con el atributo vinculo.etiqueta
seleccionamos el campo, definido en Cliente, que queremos mostrar como etiqueta del campo en el objeto Expediente.Ahora bien, tenemos que indicar qué objeto queremos vincular. En este caso, queremos obtener una lista de objetos, y seleccionar el que nos interese. Para ello utilizamos este atributo, vinculo.valores
. En él definimos la colección donde están incluídos los objetos de tipo Cliente colección
, llamada Contenido y definida en el contenedor Clientes. Como el valor del atributo hay que expresarlo como una matriz, utilizamos la función $Matriz para ello.