{ ------------------------------------------------------------------------------- PROGRAMA : CCPRRP025 OBJETIVO : Balances Pendientes de Avance Por Cliente PROGRAMADOR : Lic. Abner Montalvo FECHA REALIZACION : Marzo 26, 1997 ------------------------------------------------------------------------------- } GLOBALS "ccprgb000.4gl" DEFINE fecha_corte DATE DEFINE idx_1, idx_2,idx_b,idx_f SMALLINT DEFINE dia_minimo, dia_maximo INTEGER DEFINE selec10 CHAR(500) DEFINE valor_de DECIMAL(12,2) DEFINE valor_fact RECORD tipo_cliente SMALLINT, sec_cliente SMALLINT, nombre CHAR(30), num_doc INTEGER, fecha DATE, balance DECIMAL(12,2) END RECORD FUNCTION ccprrp025() DEFINE salir2,salir,salir1 CHAR(1) # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM ccfmrp025 FROM "ccfmrp025" DISPLAY FORM ccfmrp025 CALL pantalla() DISPLAY "ccprrp025" AT 4,3 DISPLAY "Balances Pendientes de Avances Por Cliente" AT 6,19 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha_corte BEFORE FIELD fecha_corte LET fecha_corte = today AFTER FIELD fecha_corte IF fecha_corte is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_corte END IF END INPUT CONSTRUCT BY NAME criterio ON d.tipo_cliente,d.sec_cliente IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET selec10 = "SELECT d.tipo_cliente,d.sec_cliente,a.nombre,d.num_doc,MIN(d.fecha_orig), ", " SUM(d.valor + d.monto_desc) ", "FROM cctb00001 d,vetb00004 a ", "WHERE d.fecha_orig <= ? AND d.tipo_cliente = a.tipo_cliente AND ", " d.sec_cliente = a.sec_cliente AND ",criterio CLIPPED, " AND d.status_t IS NULL AND d.tipo_doc = 'AV' AND a.status_t IS NULL ", "GROUP BY 1,2,3,4 HAVING SUM(d.valor + d.monto_desc) <> 0 " DISPLAY "<< Buscando Informacion... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE comando FROM selec10 DECLARE busca CURSOR FOR comando OPEN busca USING fecha_corte START REPORT reporte_25 TO "C:\\archivo" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) LET idx_b = 1 LET salir1 = "N" WHILE salir1 = "N" FETCH busca INTO valor_fact.* IF STATUS = NOTFOUND THEN LET salir1 = "S" EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT reporte_25(valor_fact.*) END WHILE FINISH REPORT reporte_25 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT reporte_25(x) DEFINE x RECORD tipo_cliente SMALLINT, sec_cliente SMALLINT, nombre CHAR(30), num_doc INTEGER, fecha DATE, balance DECIMAL(12,2) END RECORD DEFINE nombre1,apellido CHAR(30) DEFINE dias_c INTEGER DEFINE fecha5 DATE DEFINE balance, monto_factura DECIMAL(10,2) DEFINE descrip_zone CHAR(30) DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE hora CHAR(5) DEFINE fecha DATE DEFINE total_monto_zona,total_gral_monto_zona,monto DECIMAL(12,2) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 ORDER BY x.tipo_cliente,x.sec_cliente,x.fecha,x.num_doc 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 lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, comp_off,negrillas_on PRINT COLUMN 1, "ccprrp025", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 73, "Pag. ",pageno using "###" PRINT COLUMN 25, "Sistema de Cuentas por Cobrar", COLUMN 73, today using "dd/mm/yyyy" PRINT COLUMN 19, "Balances de Avances Pendientes Por Cliente", COLUMN 76, hora PRINT COLUMN 1, "--------------------------------------------------", "------------------------------" PRINT COLUMN 1, "Cliente", COLUMN 44, "Fecha", COLUMN 56, "Avance", COLUMN 74, "Balance" PRINT COLUMN 1, "--------------------------------------------------", "------------------------------" PRINT negrillas_off BEFORE GROUP OF x.sec_cliente PRINT COLUMN 1, x.tipo_cliente using "&&","-", x.sec_cliente USING "&&&&"," ",x.nombre clipped; ON EVERY ROW PRINT COLUMN 44, x.fecha USING "dd/mm/yyyy", COLUMN 56, x.num_doc USING "&&&&&&", COLUMN 66, x.balance USING "(((,(((,(((.##)" AFTER GROUP OF x.sec_cliente IF GROUP COUNT(*) > 1 THEN PRINT COLUMN 66, "---------------" PRINT COLUMN 24, "Total Por Cliente --->", COLUMN 66, GROUP SUM(x.balance) USING "(((,(((,(((.##)" END IF SKIP 1 LINE ON LAST ROW PRINT COLUMN 66, "---------------" PRINT COLUMN 24, "Total General --->", COLUMN 66, SUM(x.balance) USING "(((,(((,(((.##)" SKIP 1 LINE END REPORT