vBdC vGuru


Registrado: 11 Oct 2005 Mensajes: 2
|
Publicado: Mie, 10-Nov-2004 02:00:00 Asunto: Contenido inicial de un campo |
|
|
Contenido inicial de un campo
Categorías: Campo
Palabras clave: Contenido inicial, Booleano
Enunciado:
¿Cuándo se disparan los contenidos iniciales de un campo?
Desarrollo:
El contenido inicial de un campo se dispara si ha cambiado alguno de los campos que constituyen la expresión contenido inicial. Si está compuesto por constantes, funciones, variables o campos de tablas enlazadas y no contiene campos de la propia tabla, no se recalculará.
Por ejemplo: supongamos una tabla con un campo booleano que tiene un contenido inicial dependendiente de otro campo alfabético de la misma tabla. Este contenido inicial es fDecidirDato( IDcampoAlfa=1, 0, 1). Esto ocasiona que si el campo alfabético contiene "A", el booleano esté a 0 (no). Entonces, si cuando damos de alta la ficha dejamos vacío el campo alfabético, Velázquez interpreta que el alfabético no ha cambiado y no se disparan los contenidos iniciales dependientes de él, así que el booleano se pone por defecto a 0.
En resumen: aunque el alfabético no contenga "A" (realmente está vacío) y el resultado que cabría esperar es que el booleano se ponga a 1, como hemos dejado vacío el alfabético Velázquez interpreta que no ha cambiado, no se disparan los contenidos iniciales y el booleano toma por defecto el valor 0.
En este caso la solución pasaría por invertir la lógica del booleano. El contenido inicial pasaría a ser fDecidirDato(IDcampoAlfa "A", 1, 0 ). De este modo, si dejamos vacío el campo alfabético el booleano se pondrá a 0, lo que encaja con el nuevo contenido inicial.
Artículos relacionados
El campo CODIGO y su índice
Error cuando uso en contenidos iniciales funciones que transaccionan
¿Cómo son indexados los campos numéricos que son cero o se inicializan sin valor alguno en un índice de tipo Acepta repetidas?
Ultima edición por vBdC el Mie, 10-Nov-2004 02:00:00, editado 1 vez |
|