Files
MBS/PROYECTO/cgdir/cgprrp001.4gl
T

227 lines
7.0 KiB
Plaintext

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