{ ------------------------------------------------------------------------------- PROGRAMA : CCPRRP030 OBJETIVO : Notas De Creditos Sin Aplicar PROGRAMADOR : Tadeo A. Ferreras F. FECHA REALIZACION : Julio 28, 1994 ------------------------------------------------------------------------------- } GLOBALS "ccprgb000.4gl" DEFINE nom1,apell1 CHAR(15) DEFINE m RECORD tipo_cliente SMALLINT, sec_cliente SMALLINT, nombre CHAR(30), num_doc SMALLINT, monto DECIMAL(12,2), valor_orig DECIMAL(12,2), vend SMALLINT, nom_v CHAR(30) END RECORD DEFINE fecha2,fecha_corte DATE DEFINE s_cliente CHAR(6) FUNCTION ccprrp030() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM ccfmrp030 FROM "ccfmrp030" DISPLAY FORM ccfmrp030 CALL pantalla() DISPLAY "ccprrp030" AT 4,3 DISPLAY "Notas de Creditos Sin Aplicar" AT 6,25 LET tipo_papel = 1 CALL msgrp000(tipo_papel) # Creando el criterio de busqueda de informteion INPUT BY NAME fecha2 AFTER FIELD fecha2 IF fecha2 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha2 END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF ##### Selecionando la prima del dolar tetual LET selec = "SELECT a.tipo_cliente,a.sec_cliente,b.nombre,a.num_doc, ", " SUM(a.valor + a.monto_desc) ", "FROM cctb00001 a,vetb00004 b ", "WHERE a.fecha_orig <= ? ", " AND a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente AND ", " a.status_t IS NULL AND a.tipo_doc = 'DE' ", "GROUP BY 1,2,3,4 HAVING SUM(a.valor + a.monto_desc) <> 0 " DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE comando FROM selec DECLARE busca CURSOR FOR comando OPEN busca USING fecha2 START REPORT rep30 TO "C:\\archivo" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) WHILE STATUS != NOTFOUND FETCH busca INTO m.* IF STATUS = NOTFOUND THEN EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca el vendedor para este cliente SELECT sec_vend INTO m.vend FROM vetb00028 WHERE sec_cliente = m.sec_cliente and tipo_cliente = m.tipo_cliente #-------------------------------------------------------------------------- SELECT a.valor + a.monto_desc INTO m.valor_orig FROM cctb00001 a WHERE a.valor + a.monto_desc > 0 AND a.aplica_a = a.num_doc AND a.num_doc=m.num_doc AND a.status_t IS NULL AND a.tipo_doc="AV" AND a.sec_cliente = m.sec_cliente SELECT a.nom1_emp,a.apell1_emp INTO nom1,apell1 FROM adtb00003 a WHERE a.num_emp = m.vend LET m.nom_v = nom1 CLIPPED," ",apell1 CLIPPED OUTPUT TO REPORT rep30(m.*) END WHILE FINISH REPORT rep30 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION #### Funcion que genera el reporte REPORT rep30(j) DEFINE j RECORD tipo_cliente SMALLINT, sec_cliente SMALLINT, nombre CHAR(30), num_doc SMALLINT, monto DECIMAL(12,2), valor_orig DECIMAL(12,2), vend SMALLINT, nom_v CHAR(30) END RECORD DEFINE p_cliente CHAR(6) DEFINE pago_num,numero INTEGER DEFINE nombre_cta CHAR(30), p_cxc,p_dep,pago_monto DECIMAL(12,2), fecha_c DATE DEFINE doble_on CHAR(3) DEFINE doble_off CHAR(3) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(3) DEFINE normal CHAR(2) DEFINE hora CHAR(5) DEFINE total1,total2,total3 DECIMAL(12,2) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 ##### Sorteando la salida de la informteion ORDER BY j.vend,j.sec_cliente,j.num_doc FORMAT PAGE HEADER LET doble_on = ASCII 001 LET doble_off = ASCII 002 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 77 LET normal = ASCII 27, ASCII 80 LET hora = time LET lj = (85 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, doce,negrillas_on PRINT COLUMN 1, "ccprrp030", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 78, "Pag. ",pageno USING "###" PRINT COLUMN 20, " Sistema de Cuentas Por Cobrar ", COLUMN 78, today using "dd/mm/yy" PRINT COLUMN 30, "Notas de Creditos Sin Aplicar", COLUMN 78, hora PRINT COLUMN 1, "FECHA: AL ", fecha2 USING "dd/mm/yy" SKIP 1 LINE PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------------------" PRINT COLUMN 1, "Cliente", COLUMN 45, "Docto.", COLUMN 55, " Monto", COLUMN 70, " Aplicado", COLUMN 85, " Por Aplicar" PRINT COLUMN 1, "--------------------------------------------------", "-----------------------------------------------" PRINT negrillas_off BEFORE GROUP OF j.vend LET total3 = 0 PRINT negrillas_on PRINT COLUMN 1, j.vend USING "####"," ",j.nom_v CLIPPED PRINT negrillas_off BEFORE GROUP OF j.sec_cliente LET total1 = 0 PRINT COLUMN 1, j.tipo_cliente USING "&&","-", j.sec_cliente USING "&&&&"," ",j.nombre CLIPPED; ON EVERY ROW IF total2 IS NULL THEN LET total2 = 0 END IF LET total1 = total1 + j.monto LET total2 = total2 + j.monto LET total3 = total3 + j.monto PRINT COLUMN 45, j.num_doc USING "######", COLUMN 55, j.valor_orig USING "###,###,###.##", COLUMN 70, j.valor_orig - j.monto USING "(((,(((,((#.##)", COLUMN 85, j.monto USING "(((,(((,((#.##)" AFTER GROUP OF j.sec_cliente PRINT negrillas_on PRINT COLUMN 1,"Total Cliente", COLUMN 85, total1 USING "(((,(((,((#.##)" PRINT negrillas_off AFTER GROUP OF j.vend PRINT negrillas_on PRINT COLUMN 1,"Total Vendedor", COLUMN 85, total3 USING "(((,(((,((#.##)" PRINT negrillas_off SKIP TO TOP OF PAGE ON LAST ROW SKIP TO TOP OF PAGE PRINT negrillas_on PRINT COLUMN 1,"Total Gral. ", COLUMN 85, total2 USING "(((,(((,((#.##)" PRINT negrillas_off,normal LET total2 = 0 END REPORT