DEV AUXILIARES/ASIGNACION

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

Descripción

Los auxiliares de tipo ASIGNACION permiten asignar valores a campos de la pantalla que se está editando.

Las evaluaciones se usan en las pantallas de edición de datos.

Este tipo de auxiliar aplica a:

Modo de operación

Cuando estamos en una pantalla de edición, y ante un evento definido en cada auxiliar, éste asignará un valor al campo al que está asociado. La pantalla debe estar en inserción o en edición.

Etiquetas

Las etiquetas en uso son:

<COMANDO>

Define el comando que asigna el valor, cierra con </COMANDO>.

<TAG DETONADOR>

Indica qué campo detona la asignación.

<TAG ESTADISTICA>

Indica si el campo se asigna según valores estadísticos, es decir, el valor más usado en ese campo.

<TAG EVENTO>

Indica qué evento que gatilla la asignación, los valores posibles son:

  • ONENTER: Ejecuta al ingresar al campo.
  • ONEXIT: Ejecuta al salir del campo.

<TAG ONPOST>

Indica que el valor del campo se debe refrescar al postear los cambios (cuando se presiona Aplicar en la pantalla).

<TAG PORCENTAJE100>

Esta etiqueta indica al sistema que al asignar valores a un campo hay que adicionalmente verificar que no exceda un porcentaje de 100%, no está en uso.

<TAG VALORNULO>

Esta etiqueta indica que solo debe asignarse valor al campo cuando su valor (previo a la asignación) es NULO.

Uso del auxiliar

El auxiliar es ejecutado automáticamente desde dentro de 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> son lo que se ejecutará para asignar el valor, el SQL puede tener la complejidad y longitud que sea necesaria sin limitaciones, y tampoco es necesario que el resultado tenga un valor de campo ya que la aplicación asigna el valor del primer campo del resultado.