{ ========================================================================== PROGRAMA : EDPRRP099 OBJETIVO : LISTAR LA ENTRADA DE DIARIO CIERRE DE ANO PROGRAMADOR : JUAN F. SOTO FECHA : DICIEMBRE 20, 1994 ========================================================================== } SCHEMA decomarmol GLOBALS "cgprgb000.4gl" DEFINE fecha2 DATE, decide CHAR(1), entrada_no CHAR(14), detalle CHAR(40) DEFINE datos RECORD cuenta_no CHAR(10), departamento SMALLINT, cod_aux SMALLINT, cod_sec SMALLINT, num_doc CHAR(12), balance DECIMAL(12,2) END RECORD 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.* INTO p_compania.* FROM companias a CALL edprrp099() END MAIN FUNCTION edprrp099() OPTIONS ERROR LINE 24, FORM LINE 9 CALL pantalla() DISPLAY "Entrada Cierre de Ano" AT 6,29 OPEN FORM edfmrp099 FROM "edfmrp099" DISPLAY FORM edfmrp099 INPUT BY NAME entrada_no,fecha2,decide,detalle AFTER FIELD entrada_no IF entrada_no is null THEN ERROR "(16) CAMPO EN BLANCO" NEXT FIELD entrada_no END IF SELECT UNIQUE a.ref FROM cgtb00004 a WHERE a.ref = entrada_no IF status != notfound THEN ERROR "(03) REGISTRO EXISTE" NEXT FIELD entrada_no END IF AFTER FIELD fecha2 IF fecha2 is null THEN ERROR "(16) CAMPO EN BLANCO" NEXT FIELD fecha2 END IF AFTER INPUT IF int_flag THEN ERROR "(2) OPERACION CANCELADA" LET int_flag = false RETURN END IF EXIT INPUT END INPUT DISPLAY "Buscando Informacion.. Espere Por Favor" AT 15,14 {CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, doble_on,doble_off,comp_on,comp_off, doce,normal,archivo,copia } LET r_filename='edprrp099.4rp' IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file LET preview=1 CALL seleccionarsalida() RETURNING r_output CALL fgl_report_selectDevice(r_output) -- changing default CALL fgl_report_selectPreview(preview) -- changing default LET handler = fgl_report_commitCurrentSettings() -- commit changes # CALL configureoutput(r_output) RETURNING HANDLER # LET handler = configureOutput(r_output) END IF START REPORT entrada TO XML HANDLER HANDLER DECLARE busca CURSOR FOR SELECT a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc,sum(a.debito-a.credito) FROM cgtb00004 a WHERE (a.cuenta_no[1] = "4" or a.cuenta_no[1] = "5" or a.cuenta_no[1] = "6" or a.cuenta_no[1] = "8") and a.fecha <= fecha2 and a.status_t is null GROUP BY a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc ORDER BY a.cuenta_no DISPLAY "Reporte Generandose... Espere Por Favor" AT 15,14 FOREACH busca INTO datos.* OUTPUT TO REPORT entrada(datos.*) END FOREACH FINISH REPORT entrada #RUN imprime END FUNCTION REPORT entrada(x) DEFINE x RECORD cuenta_no CHAR(10), departamento SMALLINT, cod_aux SMALLINT, cod_sec SMALLINT, num_doc CHAR(12), balance DECIMAL(12,2) END RECORD DEFINE p_descripcion CHAR(40) DEFINE negritas_on,negritas_off,comp_off,comp_on CHAR(3) DEFINE t_debito,t_credito,sumatoria,credito,debito,dvalor DECIMAL(12,2) DEFINE fecha date OUTPUT LEFT MARGIN 3 FORMAT FIRST PAGE HEADER LET fecha =today { LET negritas_on = ASCII 27, ASCII 69 LET negritas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 PRINT comp_on} { PRINT COLUMN 1,"edprrp099", COLUMN 39, "M A R M O T E C H, S. A.", COLUMN 90, "Pag. ",pageno using "<<<" PRINT COLUMN 38, "ENTRADA CIERRE DE ANO", COLUMN 90, today using "dd/mm/yy" SKIP 1 LINE PRINT COLUMN 1, "ENTRADA NO. ",entrada_no PRINT "============================================================================", "==================================" PRINT COLUMN 1, "CUENTA NO.", COLUMN 12, "DEPART", COLUMN 20, "CATAL.", COLUMN 28, "REF", COLUMN 40, "DESCRIPCION", COLUMN 77, "DEBITO", COLUMN 100, "CREDITO" PRINT "=============================================================================", "=================================" SKIP 1 LINE PRINT "DETALLE: ",detalle SKIP 1 LINE} ON EVERY ROW SELECT descripcion INTO p_descripcion FROM cgtb00001 WHERE cuenta_no = x.cuenta_no IF t_debito is null THEN LET t_debito = 0 END IF IF t_credito is null THEN LET t_credito = 0 END IF LET credito = 0 LET debito = 0 IF x.balance > 0 THEN LET credito = x.balance ELSE LET debito = x.balance * -1 END IF LET dvalor=debito+credito PRINTX p_compania.*,x.*,p_descripcion,debito,credito,fecha,entrada_no,dvalor { PRINT COLUMN 1, x.cuenta_no, COLUMN 12, x.departamento using "####", COLUMN 20, x.cod_aux using "##","-",x.cod_sec using "####", COLUMN 28, x.num_doc, COLUMN 40, p_descripcion[1,20], COLUMN 70, debito using "####,###,###.##", COLUMN 94, credito using "###,###,###.##"} LET t_debito = t_debito + debito LET t_credito = t_credito + credito IF decide = "S" THEN INSERT INTO cgtb00004 (ref,fecha,tipo,cuenta_no,departamento, cod_aux,cod_sec,num_doc,debito,credito, us_crea,fech_crea,detalle_1) VALUES (entrada_no,fecha2,"01",x.cuenta_no, x.departamento, x.cod_aux,x.cod_sec,x.num_doc,debito,credito, suser_sname(),getdate(),DETALLE) END IF ON LAST ROW SELECT descripcion INTO p_descripcion FROM cgtb00001 WHERE cuenta_no = "3312" LET sumatoria = SUM(x.balance) LET credito = 0 LET debito = 0 IF sumatoria < 0 THEN LET credito = SUM(x.balance) * -1 ELSE LET debito = SUM(x.balance) END IF LET t_debito = t_debito + debito LET t_credito = t_credito + credito PRINTX t_debito,t_credito { PRINT COLUMN 1, "3312", COLUMN 40, p_descripcion[1,20], COLUMN 70, debito USING "#,###,###,###.##", COLUMN 95, credito USING "#,###,###,###.##" PRINT COLUMN 70, "--------------", COLUMN 94, "--------------" PRINT COLUMN 70, t_debito using "###,###,###,###.##", COLUMN 94, t_credito using "###,###,###,###.##"} IF decide = "S" THEN INSERT INTO cgtb00004 (ref,fecha,tipo,cuenta_no,departamento, cod_aux,cod_sec,num_doc,debito,credito, us_crea,fech_crea,detalle_1) VALUES (entrada_no,fecha2,"01","3312", x.departamento, x.cod_aux,x.cod_sec,x.num_doc,debito,credito, suser_sname(),getdate(),detalle) END IF END REPORT FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) LET fecha = today USING "dd/mm/yy" LET hora = time DISPLAY " M A R M O T E C H, S A. " AT 4,17 ATTRIBUTE (REVERSE,blue) DISPLAY fecha AT 4,70 ATTRIBUTE (blue) DISPLAY "Sistema Contabilidad General" AT 5,24 DISPLAY hora AT 6,73 ATTRIBUTE(blue) CALL fgl_drawbox(5,79,3,1) CALL fgl_drawbox(1,79,22,1) END FUNCTION