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 habilitación
El siguiente ejemplo está definido en la clase cmpDETALLE_pragma_arsARTICULO (que es ancestro de varias clases de registro de detalles de artículos en comprobantes de compras y de ventas) y opera sobre el campo FATRIBUTO2 que corresponde a la clasificación (ver ARTICULOS/CLASIFICACION).
<TAG DETONADOR>FARTICULO <TAG TIPO>HABILITACION <COMANDO> SELECT FRESULTADO = CASE WHEN EXISTS ( SELECT * FROM ARTCLASIFICACION WHERE ARTCLASIFICACION.FARTICULO = FBN(FARTICULO) AND ARTCLASIFICACION.FCODIGO <> 'NA' ) THEN 1 ELSE 0 END </COMANDO>
- La etiqueta <TAG DETONADOR>FARTICULO indica que el detonador es el campo FARTICULO, por lo que en el onexit (salida del control de edición) de ese campo se ejecuta la evaluación.
- La etiqueta <TAG TIPO>HABILITACION indica que si el comando retorna 1 (verdadero) entonces el campo se habilitará.
- Los comandos entre las etiquetas <COMANDO> y /<COMANDO> retorna 1 (verdadero) si el artículo tiene definidas clasificaciones distintas a 'NA' en la tabla ARTICULOS/CLASIFICACION, sino retorna 0.
Debe notarse que:
- Cuando un campo tiene asociado un auxiliar de habilitación, el campo estará deshabilitado por defecto cuando iniciemos la inserción o edición de datos.
- Del mismo modo, cuando tiene asociado un auxiliar de deshabilitación, el campo estará habilitado por defecto cuando iniciemos la inserción o edición de datos.
Ejemplo de una deshabilitación
El siguiente ejemplo está definido en la clase ORDENES PAGO y opera sobre el campo FFECHAPAGO.
<TAG TIPO>DESHABILITACION <TAG DETONADOR>FCIRCUITOCAJA <COMANDO> SELECT CASE WHEN EXISTS (SELECT * FROM wflFIRMASX WHERE FCOMPROBANTE = FBN(FCMPCODIGO)) THEN 1 ELSE 0 END </COMANDO>
- La etiqueta <TAG DETONADOR>FCIRCUITOCAJA indica que el detonador es el campo FCIRCUITOCAJA, por lo que en el onexit (salida del control de edición) de ese campo se ejecuta la evaluación.
- La etiqueta <TAG TIPO>DESHABILITACION indica que si el comando retorna 1 (verdadero) entonces el campo se deshabilitará.
- Los comandos entre las etiquetas <COMANDO> y /<COMANDO> retorna 1 (verdadero) si el comprobante tiene alguna firma de aprobación del workflow.