Files
DECOMARMOL/PROYECTO/cgdir/cgprrp001.4gl
T
2026-09-22 20:38:51 -04:00

190 lines
5.6 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CGPRRP001
OBJETIVO : Catalogo de Cuentas
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Octubre 05, 1993
-------------------------------------------------------------------------------
}
GLOBALS "cgprgb000.4gl"
DEFINE total_registro SMALLINT
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "decomarmol" USER usuarios USING clave
SELECT a.nombre INTO p_compania.nombre FROM companias a
CALL cgprrp001()
END MAIN
FUNCTION cgprrp001()
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
DEFINE decide CHAR(1)
DEFINE cuentas RECORD
cuenta_no LIKE cgtb00001.cuenta_no,
descripcion LIKE cgtb00001.descripcion,
analitico LIKE cgtb00001.analitico,
depto LIKE cgtb00001.depto,
nivel LIKE cgtb00001.nivel,
ref LIKE cgtb00001.ref,
cata LIKE cgtb00001.cata,
estado_a LIKE cgtb00001.estado_a,
estado_m LIKE cgtb00001.estado_m,
origen LIKE cgtb00001.origen,
aplica LIKE cgtb00001.aplica_a
END RECORD
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM cgfmrp001 FROM "cgfmrp001"
DISPLAY FORM cgfmrp001
DISPLAY "cgprrp001" AT 4,3
DISPLAY "Catalogo de Cuentas" AT 6,30
## AQUI SE INDICA EL CRITERIO DE BUSQUEDA DEL REPORTE
CONSTRUCT BY NAME criterio ON a.cuenta_no
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE
LET SELEC = "SELECT a.cuenta_no,a.descripcion,a.analitico,a.depto,a.nivel,a.ref, ",
" a.cata,a.estado_a,a.estado_m,a.origen,a.aplica_a ",
" FROM cgtb00001 a ",
" WHERE a.status_t is null AND ",criterio clipped
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
## SE PREPARA LA INFORMACION SELECCIONADA
PREPARE busca FROM selec
DECLARE accion CURSOR FOR busca
LET selec = "SELECT COUNT(*) FROM cgtb00001 a WHERE a.status_t IS NULL AND ",criterio CLIPPED
PREPARE cuenta FROM selec
EXECUTE cuenta INTO total_registro
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
## SALIDA AL REPORTE
LET idx = 1
LET r_filename ="cgprrp001.4rp"
LET preview = 1
CALL seleccionarsalida() RETURNING r_output
LET progreso = 0
DISPLAY progreso TO progreso
CALL ui.Interface.refresh()
FOREACH accion INTO cuentas.*
IF idx = 1 THEN
#LET preview = 1
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview)
LET handler = fgl_report_commitCurrentSettings() -- commit changes
ELSE
EXIT PROGRAM
END IF
--run the report
IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT cat_cuenta TO XML HANDLER HANDLER
END IF
END IF
OUTPUT TO REPORT cat_cuenta(cuentas.*)
LET idx = idx+1
LET progreso = (idx /total_registro )*100
DISPLAY progreso TO progreso
CALL ui.Interface.refresh()
END FOREACH
IF idx > 1 THEN
FINISH REPORT cat_cuenta
ELSE
CALL fgl_winmessage("INFO","NO EXISTEN REGISTROS CON ESTA CONDICION","INFO")
END IF
END FUNCTION
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT cat_cuenta(x)
DEFINE x RECORD
cuenta_no LIKE cgtb00001.cuenta_no,
descripcion LIKE cgtb00001.descripcion,
analitico LIKE cgtb00001.analitico,
depto LIKE cgtb00001.depto,
nivel LIKE cgtb00001.nivel,
ref LIKE cgtb00001.ref,
cata LIKE cgtb00001.cata,
estado_a LIKE cgtb00001.estado_a,
estado_m LIKE cgtb00001.estado_m,
origen LIKE cgtb00001.origen,
aplica LIKE cgtb00001.aplica_a
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE nom_orig CHAR(7)
DEFINE hora CHAR(5),
fecha_rep VARCHAR(10),
aplica_ant LIKE cgtb00001.aplica_a
ORDER BY x.cuenta_no
FORMAT
FIRST PAGE HEADER
LET hora = TIME
LET fecha_rep = TODAY USING "dd/mm/yyyy"
PRINTX p_compania.nombre,hora,fecha_rep
ON EVERY ROW
IF x.origen = "D" THEN
LET nom_orig = "Debito"
ELSE
LET nom_orig = "Credito"
END IF
PRINTX x.cuenta_no,
x.descripcion,
x.analitico,
x.nivel,
x.depto,
x.cata,
x.ref,
x.estado_a,
x.estado_m,
nom_orig,
x.aplica,
x.origen,
nom_orig
ON LAST ROW
LET total_registro = COUNT(*)
PRINTX total_registro
END REPORT