Ejemplo03: Trabajando con Cálculos

Utilizaremos variables y agregaremos cálculos numéricos básicos.

Una vez que se encuentra en el Editor de Programación ABG ingresar el siguiente código:


Si desea realizar consultas sobre la sentencia DEFVAR puede repasar el Ejemplo02 o bien bajar el documento Sentencias I

Se definen 3 variables numéricas (&Valor1, &Valor2 y &Result) y 2 variables alfanuméricas (&Accion y &TxtAcc)

ExSr FmaPanta1 Sentencia = ExSr Observaciones = Ejecuta una función definida por el programador en el Evento. El Evento debe tener definida la Función, caso contrario el compilador detecta el error. La función se cierra con una sentencia "EndSR". Parámetros: (1) 1) Nombre de la Función = FmaPanta1

Detalle: La rutina FmaPanta1 Inicializa la pantalla pasando como parámetro el título principal de una Pantalla variable.

BegSr FmaPanta1 Eval &TxtAcc = " (S,R,M,D) " InzPanVar "Operaciones - Ingreso datos" FldPanVar 01 *U "Valor 1 " &Valor1 " . 0 , -" *NONE FldPanVar 02 *U "Valor 2 " &Valor2 " . 0 , -" *NONE FldPanVar 03 *U "Accion " &Accion " " &TxtAcc EndSr InzPanVar "Operaciones - Ingreso datos" Sentencia = InzPanVar Observaciones = Inicializa una Pantalla Variable de ingreso y/o visualización de datos definibles. Puede especificar el Título, si va a representar solapas y modo de indicar la solapa activa. Parámetros: (3) 1) Título a mostrar en la pantalla. = "Operaciones - Ingreso datos" 2) Tipo de pantalla de datos. Valores posibles:
Valor Detalle
*BOTONES Pantalla con botones
*NONE Pantalla Normal
*NORMAL Pantalla Normal
*PESTAÑA Pantalla con Pestañas
*SOLAPAS Pantalla con Solapas
3) Atributo para el texto de la solapa activa. Valores posibles:
Valor Detalle
*BLINK Parpadeo
*HIGH Resaltado
*INPUT Modo de ingreso de datos
*NORMAL Normal
*REVERSE Imágen invertida

FldPanVar 01 *U "Valor 1 " &Valor1 " . 0 , -" *NONE Sentencia = FldPanVar Observaciones = Pasa campos a la Pantalla Variable para visualizarlo o actualizarlo. Parámetros: (9) 1) Número de campo dentro de la pantalla = 01 Valores posibles:
Valor Detalle
Número Número de campo
*N Siguente Campo
*NEXT Siguente Campo
2) Tipo de campo = *U Valores posibles:
Valor Detalle
*E Campo de entrada con avance de registro
*ENTREG Campo de entrada con avance de registro
*I Campo de entrada
*INPUT Campo de entrada
*O Campo de salida
*OUTPUT Campo de salida
*R Campo de actualizacion con entrada de registro
*RECENT Campo de actualizacion con entrada de registro
*U Campo de entrada/salida
*UPDATE Campo de entrada/salida
3) Texto descriptivo del campo = "Valor 1 " 4) Campo a visualizar y/o ingresar = &Valor1 5) Máscara de edición (si es numérico) = " . 0 , -" Valores posibles:
Valor Detalle
*1 Código edición 1 de RPG
*2 Código edición 2 de RPG
*3 Código edición 3 de RPG
6) Campo adicional (solo visualizació) = *NONE Valores posibles:
Valor Detalle
*NONE Ninguno

De la misma manera se puede realizar el análisis de la rutina FmaPanta2

BegSr Calcular Select When &Accion = "S" Eval &Result = &Valor1 + &Valor2 When &Accion = "R" Eval &Result = &Valor1 - &Valor2 When &Accion = "M" Eval &Result = &Valor1 * &Valor2 When &Accion = "D" Eval &Result = &Valor1 / &Valor2 EndWh EndSr

Analizaremos la sentencia EXEFMT (para mayor amplitud consulte los documento Sentencias I y Formatos de Pantallas).



Formato Utilizado

*ALTSDO --> Alta Saldo Operativo
*AUX? --> Importe Auxiliar (1 al 9) de la transaccion
*BLKLIN --> Borrar Lineas
*CAMSDO --> Cambio Saldo Operativo
*CANT --> Cantidad
*CPT1 --> Numero de Comprobante
Otros --> ...

Id de Referencia

Permite identificar la referencia por retorno desde otra instrucción

Id de Cancelación

*CANCEL --> Finaliza la ejecucion de la Transacción
*ENDTRN --> Finaliza la ejecucion de la Transacción
*NONE --> Continuar Ejecucion
*PREVIOUS --> Continuar la ejecucion en el formato anterior solicitado.
*RETURN --> Retornar de la SubRutina

Rutina de PreProceso

*CNDACCI --> Condicion de Accion (Permiso de Reversión)
*CNDFCHA --> Condicion de Fecha
*CNDRVRS --> Condicion de Reversa (Accion = Reversa)
*CNDTASA --> Condicion de Tasa
*NONE --> Indica que no se utiliza

Rutina de Validación

Nombre --> Indica el Nombre de la Rutina que realizará la validación)
*NONE --> Indica que no se utilizará

Rutina de Proceso

Nombre --> Indica el Nombre de la Rutina que realizará el proceso
*NONE --> Indica que no se utilizará
*WRTFMT --> Visualiza el mismo formato

Texto de Ayuda

Texto de ayuda
*NONE --> Indica que no se utilizará ayuda

En la Rutina "Calcular" se emplea la estructura Select/When para poder determinar la operación solicitada por el usuario y calculando el resultado correspondiente.

Una vez que ingresó todo el código grabar, salir del editor, Compilar el Programa y Ejecutar el Programa

Ejemplo de ejecución de este Programa ABG.