{ ------------------------------------------------------------------------------- PROGRAMA : CGPRRP022 OBJETIVO : Listar las Entrada de Diario PROGRAMADOR : Juan Soto FECHA REALIZACION : Mayo 9, 1994. ------------------------------------------------------------------------------- } GLOBALS "cgprgb000.4gl" DEFINE p_mes SMALLINT DEFINE p_ano CHAR(4) 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 cgprrp022() END MAIN FUNCTION cgprrp022() DEFINE x1 RECORD id INTEGER, ref LIKE cgtb00004.ref, cuenta_no LIKE cgtb00004.cuenta_no, departamento LIKE cgtb00004.departamento, cod_aux LIKE cgtb00004.cod_aux, cod_sec LIKE cgtb00004.cod_sec, num_doc LIKE cgtb00004.num_doc, descripcion LIKE cgtb00001.descripcion, debito LIKE cgtb00004.debito, credito LIKE cgtb00004.credito, detalle1 LIKE cgtb00004.detalle_1, detalle2 LIKE cgtb00004.detalle_2 END RECORD # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 ##### Abriendo y desplegando el formulario de captura de datos OPEN FORM cgfmrp022 FROM "cgfmrp022" DISPLAY FORM cgfmrp022 CALL pantalla() DISPLAY "cgprrp022" AT 4,3 DISPLAY "ENTRADAS REGISTRADAS" AT 6,29 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ###### Aceptando los valores para el rango de fecha INPUT BY NAME p_mes,p_ano IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF SELECT fecha_inicio,fecha_corte INTO fecha1,fecha2 FROM prdtable WHERE mes = p_mes and ano = p_ano CONSTRUCT BY NAME criterio ON a.ref IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca la informacion requerida { CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, doble_on,doble_off,comp_on,comp_off, doce,normal,archivo,copia } CALL configureoutput("SVG") RETURNING HANDLER START REPORT imp_entrada TO XML HANDLER handler LET selec = "SELECT '1',a.ref,a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec, ", " a.num_doc,b.descripcion,a.debito,a.credito,a.detalle_1,detalle_2 ", "FROM cgtb00004 a,cgtb00001 b ", "WHERE ",criterio clipped," and a.cuenta_no = b.cuenta_no and ", " a.tipo = '1' and a.status_t is null and a.fecha between ? and ? ", "ORDER BY 2,3,1 " PREPARE comando FROM selec DECLARE busca CURSOR FOR comando OPEN busca USING fecha1,fecha2 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) DISPLAY " " AT 19,14 ##### Loop para enviar informacion al reporte DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) FOREACH busca INTO x1.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF OUTPUT TO REPORT imp_entrada(x1.*) END FOREACH FINISH REPORT imp_entrada END FUNCTION #### Funcion para dar salida ordenada a la informacion requerida de #### una entrada de diario de nominas local REPORT imp_entrada(x) DEFINE x RECORD id INTEGER, ref LIKE cgtb00004.ref, cuenta_no LIKE cgtb00004.cuenta_no, departamento LIKE cgtb00004.departamento, cod_aux LIKE cgtb00004.cod_aux, cod_sec LIKE cgtb00004.cod_sec, num_doc LIKE cgtb00004.num_doc, descripcion LIKE cgtb00001.descripcion, debito LIKE cgtb00004.debito, credito LIKE cgtb00004.credito, detalle1 LIKE cgtb00004.detalle_1, detalle2 LIKE cgtb00004.detalle_2 END RECORD DEFINE t_debito,t_credito DECIMAL(12,2) DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(6) DEFINE negrillas_off CHAR(6) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE comprimido CHAR(3) DEFINE hora CHAR(5) DEFINE dpto INTEGER DEFINE nomina1 CHAR(24) OUTPUT LEFT MARGIN 0 TOP MARGIN 0 ORDER BY x.ref,x.cuenta_no FORMAT PAGE HEADER { LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 } LET hora = time LET l = (100 - LENGTH(p_compania.nombre CLIPPED))/2 PRINT COLUMN 1, doce,negrillas_on PRINT COLUMN 1, "cgprrp022", COLUMN l, p_compania.nombre CLIPPED, COLUMN 93, "Pag. ",pageno using "###" PRINT COLUMN 38, "Sistema de Contabilidad", COLUMN 93, today using "dd/mm/yy" PRINT COLUMN 40, "Entradas al Diario", COLUMN 96, hora PRINT COLUMN 38, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2 USING "dd/mm/yy" SKIP 1 LINE PRINT doce,negrillas_off BEFORE GROUP OF x.ref LET t_debito = 0 LET t_credito = 0 PRINT COLUMN 01,"Entrada de Diario No.", doble_on,x.ref,doble_off PRINT COLUMN 1,"Observaciones: _____________________________________" PRINT COLUMN 1," _____________________________________" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 2, "Cuenta ", COLUMN 11, "Dpto", COLUMN 17, "Catalogo", COLUMN 26, "Refe", COLUMN 41, "Concepto", COLUMN 75, "Debe", COLUMN 93, "Haber",negrillas_off PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" ON EVERY ROW IF t_debito is null THEN LET t_debito = 0 END IF IF t_credito is null THEN LET t_credito = 0 END IF IF x.debito != 0 THEN PRINT COLUMN 2, x.cuenta_no, COLUMN 11, x.departamento using "&&&&", COLUMN 17, x.cod_aux using "&&","-",x.cod_sec using "&&&&", COLUMN 26, x.num_doc, COLUMN 41, x.descripcion[1,25], COLUMN 68, x.debito using "#,###,###,###.##" LET t_debito = t_debito + x.debito END IF IF x.credito != 0 THEN PRINT COLUMN 2, x.cuenta_no, COLUMN 11, x.departamento using "&&&&", COLUMN 17, x.cod_aux using "&&","-",x.cod_sec using "&&&&", COLUMN 26, x.num_doc, COLUMN 41, x.descripcion[1,25], COLUMN 85, x.credito using "#,###,###,###.##" LET t_credito = t_credito + x.credito END IF AFTER GROUP OF x.ref PRINT COLUMN 1,negrillas_on PRINT COLUMN 67,"--------------", COLUMN 85,"--------------" PRINT COLUMN 35,"Totales-->", COLUMN 66, t_debito using "##,###,###,###.##", COLUMN 83, t_credito using "##,###,###,###.##" PRINT COLUMN 1, x.detalle1,x.detalle2 SKIP TO TOP OF PAGE LET t_debito = 0 LET t_credito = 0 PAGE TRAILER SKIP 4 LINE PRINT COLUMN 4,"_______________________", COLUMN 36,"_______________________", COLUMN 75,"_______________________" PRINT COLUMN 2," PREPARADO POR ", COLUMN 36," REVISADO POR ", COLUMN 75," AUTORIZADO POR " PRINT COLUMN 1,comp_off,negrillas_off END REPORT