{ ################################################################# Programa : geprrp001.4gl Sistema : Sistema de Informacion Gerencial Proceso : Busqueda Por Rango De Fecha Ventas Superior A Una Cantidad Dada Autor : Tadeo A. Ferreras Fecha : Junio 7, 1993 ################################################################# } GLOBALS "geprgb000.4gl" DEFINE fecha_in,fecha_fi DATE, cantidad1 DECIMAL(12,2) DEFINE cliente RECORD tipo_cliente SMALLINT, sec_cliente SMALLINT, descrip LIKE iptb00002.nomenclatura, cantidad DECIMAL(12,2) END RECORD FUNCTION geprrp001() #WHENEVER ERROR CONTINUE CLEAR SCREEN OPTIONS FORM LINE 8 OPEN FORM gefmrp001 FROM "gefmrp001" CALL pantalla() DISPLAY "geprrp001" AT 4,3 ATTRIBUTE(RED) DISPLAY "Clientes Con Compras Mayores Por Tipo de Pila" AT 6,17 ATTRIBUTE(BLACK) DISPLAY FORM gefmrp001 LET int_flag = FALSE LET tipo_papel = 1 CALL msgrp000(tipo_papel) CALL defecto(impresor) RETURNING imprime, letras.*, archivo INPUT BY NAME fecha_in,fecha_fi,cantidad1 ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime,letras.*, archivo BEFORE FIELD fecha_in LET fecha_in = today DISPLAY BY NAME fecha_in AFTER FIELD fecha_in IF fecha_in IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_in END IF BEFORE FIELD fecha_fi LET fecha_fi = today DISPLAY BY NAME fecha_fi AFTER FIELD fecha_fi IF fecha_fi IS NULL THEN LET fecha_fi = today END IF IF fecha_fi < fecha_in THEN LET numero_msg = 51 CALL msg(numero_msg) NEXT FIELD fecha_fi END IF DISPLAY BY NAME fecha_fi AFTER FIELD cantidad1 IF cantidad1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cantidad1 END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF CONSTRUCT criterio On b.cod_n,b.cod_grupo,a.tipo_cliente,a.sec_cliente FROM cod_n,cod_grupo,tipo_cliente,sec_cliente ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime,letras.*, archivo AFTER CONSTRUCT EXIT CONSTRUCT END CONSTRUCT LET selec = "SELECT a.tipo_cliente,a.sec_cliente,c.nomenclatura, ", " SUM(b.cantidad * b.precio) ", "FROM vetb00002 a,vetb00003 b, iptb00002 c ", "WHERE b.status_t is null AND b.cod_n = c.cod_n AND ", " b.cod_grupo=c.cod_grupo AND b.cod_tipo=c.cod_tipo AND ", " b.cod_sec = c.cod_sec AND a.factura = b.factura AND ", " a.fecha_factura BETWEEN ? AND ? AND ",criterio clipped, " GROUP BY 1,2,3 HAVING SUM(b.cantidad*b.precio) > ? ", "ORDER BY 3,4 DESC" DISPLAY "buscando Informacion... Espere por Favor" AT 17,14 ATTRIBUTE(BOLD) PREPARE comando FROM selec DECLARE busco CURSOR FOR comando OPEN busco USING fecha_in,fecha_fi,cantidad1 START REPORT clientes1 TO archivo DISPLAY "Impresion en Proceso... Espere por Favor" AT 17,14 WHILE STATUS != NOTFOUND FETCH busco INTO cliente.* 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 OUTPUT TO REPORT clientes1(cliente.*) END WHILE FINISH REPORT clientes1 RUN imprime END FUNCTION REPORT clientes1(x) DEFINE x RECORD tipo_cliente SMALLINT, sec_cliente SMALLINT, descrip LIKE iptb00002.nomenclatura, cantidad DECIMAL(12,2) END RECORD DEFINE descrip1 CHAR(30) DEFINE hora CHAR(5) OUTPUT LEFT MARGIN 2 TOP MARGIN 1 FORMAT PAGE HEADER LET hora = time PRINT COLUMN 1, letras.comp_on,letras.negrillas_on PRINT COLUMN 1, "geprrp001", COLUMN 21, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 80, "Pag. ", pageno using "###" PRINT COLUMN 21, " Sistema de Informacion Gerencial", COLUMN 80, today using "dd/mm/yyyy" PRINT COLUMN 20, "Clientes con Compras Mayores a ",cantidad1 USING "###,###,##&.&&", COLUMN 83, hora PRINT COLUMN 1, "FECHA: DEL ", fecha_in USING "dd/mm/yyyy"," AL ", fecha_fi USING "dd/mm/yyyy" SKIP 1 LINES PRINT COLUMN 1, "----------------------------------------------------", "-----------------------------------" PRINT COLUMN 3, "Cliente", COLUMN 61, "Monto Venta" PRINT COLUMN 1, "----------------------------------------------------", "-----------------------------------" PRINT letras.negrillas_off BEFORE GROUP OF x.descrip PRINT COLUMN 1,letras.negrillas_on, COLUMN 2,"Tipo de Pila:", x.descrip clipped,letras.negrillas_off SKIP 1 LINE ON EVERY ROW SELECT a.nombre INTO descrip1 FROM vetb00004 a WHERE a.tipo_cliente = x.tipo_cliente AND a.sec_cliente = x.sec_cliente PRINT COLUMN 3, x.tipo_cliente USING "&&","-",x.sec_cliente USING "&&&&", " ", descrip1 clipped, COLUMN 59,x.cantidad USING "###,###,##&.&&" ON LAST ROW PRINT letras.comp_off END REPORT