{ ------------------------------------------------------------------------------- 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