DEV AUXILIARES/CONDICION EDICION
Descripción
Los auxiliares de tipo CONDICION_EDICION permiten habilitar o deshabilitar campos de una pantalla ante un determinado evento. Se usan en las pantallas de edición de datos durante la inserción o edición de un registro.
Este tipo de auxiliar aplica a:
Modo de operación
Estos auxiliares son manejados directamente por la aplicación.
Etiquetas
Las etiquetas en uso son:
<COMANDO>
Define el comando que verifica la condición, si éste retorna 1 la condición es verdadera y habilitará o deshabilitará el campo según lo que indica la etiqueta <TAG TIPO>, cierra con </COMANDO>.
<TAG DETONADOR>
Indica qué campo detona la evaluación.
<TAG REQUERIDO>
Indica que el ingreso del campo es requerido.
Normalmente el atributo de requerido de un campo se asignaría al crear la tabla, pero los campos que participan de este auxiliar no pueden tener el atributo de Requerido ya que en ocasiones el campo debe ser deshabilitado sin ingresar ningún valor.
Esta etiqueta se usa habitualmente cuando la condición haría que se habilite un campo y queremos que se ingrese un valor.
<TAG TIPO>
Indica la acción a realizar si el comando de evaluación retorna verdadero, los valores posibles son:
- DESHABILITACION: Se deshabilitará el campo.
- HABILITACION: Se habilitará el campo.
Uso del auxiliar
El auxiliar es ejecutado automáticamente por la aplicación y solamente cuando la pantalla está en inserción o en edición.
Ejemplos
Ejemplo de una asignación estadística
La asignación estadística asigna a un campo el valor más usado (para ese campo) entre todos los registros de la tabla, el siguiente ejemplo asigna el campo FIMPUTATIPO de la tabla de ASIENTOS CONTALES/DETALLE con el valor estadístico:
<TAG EVENTO>ONENTER <TAG DETONADOR>FIMPUTATIPO <TAG VALORNULO> <TAG ESTADISTICA>
- La etiqueta <TAG EVENTO>ONENTER indica que el auxiliar se ejecuta al ingresar al campo.
- La etiqueta <TAG DETONADOR>FIMPUTATIPO indica que el campo es FIMPUTATIPO, por lo tanto, el auxiliar se ejecutará al ingresar al campo FIMPUTATIPO.
- La etiqueta <TAG VALORNULO> indica que la asignación se hará exclusivamente si el valor del campo, previo a la asignación, es NULO.
- La etiqueta <TAG ESTADISTICA> indica que el tipo de asignación es estadística, por lo que el sistema le asignará el valor más usado en ese mismo campo, pero en todos los registros de la tabla.
Ejemplo de una asignación con SQL
La siguiente asignación usa un comando SQL que si bien opera sobre valores internos usando FBN, puede reemplazarse por cualquier SQL válido. El auxiliar opera en el detalle de ASIENTOS CONTABLES/DETALLE asignando el valor al campo FCANTIDAD como la diferencia entre débitos y créditos.
Los comandos son:
<TAG EVENTO>ONENTER <TAG DETONADOR>FCANTIDAD <TAG VALORNULO> <COMANDO> SELECT CASE WHEN ISNULL(FBN(master.FDEBITOS),0) > ISNULL(FBN(master.FCREDITOS),0) AND FBN(FTIPOIMPORTE) = 'Crédito' THEN ISNULL(FBN(master.FDEBITOS),0) - ISNULL(FBN(master.FCREDITOS),0) WHEN ISNULL(FBN(master.FDEBITOS),0) < ISNULL(FBN(master.FCREDITOS),0) AND FBN(FTIPOIMPORTE) = 'Débito' THEN ISNULL(FBN(master.FCREDITOS),0) - ISNULL(FBN(master.FDEBITOS),0) ELSE NULL END </COMANDO>
- La etiqueta <TAG EVENTO>ONENTER indica que el auxiliar se ejecuta al ingresar al campo.
- La etiqueta <TAG DETONADOR>FCANTIDAD indica que el campo es FCANTIDAD, por lo tanto, el auxiliar se ejecutará al ingresar al campo FCANTIDAD.
- La etiqueta <TAG VALORNULO> indica que la asignación se hará exclusivamente si el valor del campo, previo a la asignación, es NULO.
- Los comandos entre las etiquetas <COMANDO> y </COMANDO> se ejecutan para asignar el valor. El SQL puede tener la complejidad y longitud que sea necesaria sin limitaciones. No es necesario que el resultado tenga un nombre de campo (este caso no lo tiene) ya que la aplicación asigna el valor del primer campo del resultado.