Files
MBS/PROYECTO/gedir/geprrp004.4gl
T

185 lines
5.1 KiB
Plaintext

{
=======================================================================
Programa : GEPRRP004
Sistema : Sistema de Informacion Gerencia
Proceso : Clientes con Mayores Ventas
Autor : Tadeo A. Ferreras
Fecha : Junio 21,1993
=======================================================================
}
GLOBALS
"geprgb000.4gl"
DEFINE ger_comp RECORD
cod_sp SMALLINT,
cod_sp_sec SMALLINT,
nombre CHAR(30),
cantidad DECIMAL(10,2),
secuencia SMALLINT
END RECORD,
cod1 SMALLINT
DEFINE fecha_in,fecha_fi DATE,
cod_sup SMALLINT,
total2,cantidad1 DECIMAL(12,2)
FUNCTION geprrp004()
LET int_flag = FALSE
OPTIONS
FORM LINE 8
OPEN FORM gefmrp004 FROM "gefmrp004"
CALL pantalla()
DISPLAY "geprrp004" AT 4,3
ATTRIBUTE(RED)
DISPLAY "Suplidores Con Ventas Mayores" AT 6,24
ATTRIBUTE(BLACK)
DISPLAY FORM gefmrp004
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*, archivo
INPUT BY NAME fecha_in,fecha_fi,cod_sup
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*, archivo
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
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 cod_sup
IF cod_sup IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_sup
END IF
END INPUT
IF int_flag tHEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DECLARE buscar CURSOR FOR
SELECT a.cod_sp,a.cod_sp_sec,b.nom_sp,SUM(a.valor)
FROM cptb00001 a, cotb00001 b
WHERE (a.cod_sp = b.cod_sp AND a.cod_sp_sec = b.cod_sp_sec) AND
(a.status_t IS NULL) AND a.fecha_orig between fecha_in AND fecha_fi
AND a.cod_sp = cod_sup and tipo_doc = "FT"
GROUP BY 1,2,3 HAVING SUM(a.valor) > 0 ORDER BY 4 DESC
DISPLAY "Buscando Informacion ... Espere por Favor" AT 17,14
START REPORT gerencia4 TO archivo
DISPLAY "Impresion en Proceso..... Espere por Favor" AT 17,14
LET idx = 1
FOREACH buscar INTO ger_comp.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET ger_comp.secuencia = idx
OUTPUT TO REPORT gerencia4(ger_comp.*,fecha_in,fecha_fi,cod_sup)
LET idx = idx + 1
END FOREACH
FINISH REPORT gerencia4
RUN imprime
END FUNCTION
REPORT gerencia4(x,fecha1,fecha2,cod_sup1)
DEFINE x RECORD
cod_sp SMALLINT,
cod_sp_sec SMALLINT,
nombre CHAR(30),
cantidad DECIMAL(10,2),
secuencia SMALLINT
END RECORD
DEFINE cod_sup1 SMALLINT
DEFINE supl CHAR(13)
DEFINE fecha1,fecha2 DATE,
total1,proporcion,cant DECIMAL(12,2)
DEFINE descrip,descrip1 CHAR(30)
DEFINE hora CHAR(5)
OUTPUT
LEFT MARGIN 2
TOP MARGIN 1
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, "geprrp004",
COLUMN 17, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 73, "Pag. ", pageno using "###"
PRINT COLUMN 17, " SISTEMA DE INFORMACION GERENCIAL",
COLUMN 73, today using "dd/mm/yyyy"
PRINT COLUMN 17, " Suplidor Con Compra Mayor",
COLUMN 76, hora
PRINT COLUMN 28, "DEL ", fecha1 USING "dd/mm/yyyy",
" AL ", fecha2 USING "dd/mm/yyyy"
SKIP 1 LINES
IF cod_sup1 = 21 THEN
LET supl = "INTERCOMPANY"
ELSE
IF cod_sup1 = 22 THEN
LET supl = "INTERNACIONAL"
ELSE
LET supl = "LOCAL"
END IF
END IF
PRINT COLUMN 1, supl
PRINT COLUMN 1, "-----------------------------------",
"-----------------------------------",
"---------------------------"
PRINT COLUMN 3,"Suplidor",
COLUMN 62, "Cantidad"
PRINT COLUMN 1, "-----------------------------------",
"-----------------------------------",
"---------------------------"
SKIP 2 LINE
ON EVERY ROW
SELECT a.nom_sp INTO descrip FROM cotb00001 a
WHERE a.cod_sp = x.cod_sp AND a.cod_sp_sec = x.cod_sp_sec
PRINT COLUMN 3, x.cod_sp USING "&&","-",x.cod_sp_sec USING "&&&&",
" ",x.nombre clipped,
COLUMN 57,x.cantidad USING "###,###,###.##"
END REPORT