{ ------------------------------------------------------------------------------- PROGRAMA : CGPRRP001 OBJETIVO : Catalogo de Cuentas PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Octubre 05, 1993 ------------------------------------------------------------------------------- } GLOBALS "cgprgb000.4gl" DEFINE primera CHAR(1) MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CONNECT to "smarmotech" USER usuarios USING clave SELECT a.* INTO p_compania.* 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 DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) CALL seleccionarsalida() RETURNING r_output PREPARE busca FROM selec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF ## SE DECLARA EL CURSOR PARA BUSCAR LA INFORMACION SELECCIONADA DECLARE accion CURSOR FOR busca LET primera = "S" ## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE LET idx = 1 FOREACH accion INTO cuentas.* IF idx = 1 THEN CALL configureoutput(r_output) RETURNING HANDLER START REPORT cat_cuenta TO XML HANDLER handler END IF OUTPUT TO REPORT cat_cuenta(cuentas.*) LET idx = idx+1 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), aplica_ant LIKE cgtb00001.aplica_a OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 0 PAGE LENGTH 100 ORDER BY x.cuenta_no FORMAT PAGE HEADER LET hora = time LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2 PRINT comp_off,normal PRINT COLUMN 1,"cgprrp001", COLUMN l, p_compania.nombre CLIPPED, COLUMN 72, "Pag. ",pageno using "###" LET l = (80 - LENGTH("Sistema de Contabilidad General")) / 2 PRINT COLUMN l, "Sistema de Contabilidad General", COLUMN 72, today using "dd/mm/yy" LET l = (80 - LENGTH("Catalogo de Cuentas")) / 2 PRINT COLUMN l, "Catalogo de Cuentas", COLUMN 75, hora PRINT comp_on PRINT COLUMN 2, "---------------------------------------------------", "---------------------------------------------------", "------------------------------------" PRINT COLUMN 86, "C O D I G O S", COLUMN 100, "E S T A D O S" PRINT COLUMN 1, "Cuenta", COLUMN 21, "Descripcion", COLUMN 74, "ANAL", COLUMN 80, "NIVEL", COLUMN 86, "DPTO.", COLUMN 94, "CAT.AUX", COLUMN 102, "REF", COLUMN 110, "Est_G/P", COLUMN 117, "Est_R" , COLUMN 126, "ORIGEN", COLUMN 134, "APLICA" PRINT COLUMN 2, "----------------------------------------------------", "----------------------------------------------------" , "----------------------------------" ## AQUI SE INDICA LA IMPRESION DEL DETALLE BEFORE GROUP OF x.cuenta_no IF x.nivel =1 OR x.nivel=2 THEN SKIP 1 LINE END IF ON EVERY ROW IF x.origen = "D" THEN LET nom_orig = "Debito" ELSE LET nom_orig = "Credito" END IF PRINT COLUMN 3, x.cuenta_no, COLUMN 21, x.descripcion, COLUMN 76, x.analitico, COLUMN 82, x.nivel using "&", COLUMN 88, x.depto, COLUMN 96, x.cata, COLUMN 103, x.ref, COLUMN 110, x.estado_a, COLUMN 119, x.estado_m, COLUMN 126, nom_orig, COLUMN 134, x.aplica END REPORT