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

208 lines
6.0 KiB
Plaintext

{
=======================================================================
Programa : GEPRRP005
Sistema : Sistema de Informacion Gerencia
Proceso : Clientes con Ventas Mayores a X Cantidad
Autor : Tadeo A. Ferreras
Fecha : Junio 21,1993
=======================================================================
}
GLOBALS
"geprgb000.4gl"
DEFINE ger_comp2 RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
nombre CHAR(30),
limite DECIMAL(12,2),
neto LIKE vetb00002.neto,
secuencia SMALLINT
END RECORD,
cod1 SMALLINT
DEFINE fecha_in,fecha_fi DATE,
total2,cantidad1 DECIMAL(12,2)
FUNCTION geprrp005()
LET int_flag = FALSE
OPTIONS
FORM LINE 8
OPEN FORM gefmrp005 FROM "gefmrp005"
DISPLAY FORM gefmrp005
CALL pantalla()
DISPLAY "geprrp005" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Clientes Con Ventas Mayores a X Cantidad" AT 6,20
ATTRIBUTE(BLACK)
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
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 OR cantidad1 < 0 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
SELECT SUM(a.neto) INTO total2 FROM vetb00002 a,vetb00004 b
WHERE a.sec_cliente = b.sec_cliente AND a.status_t IS NULL AND
b.status_t IS NULL AND a.fecha_factura BETWEEN fecha_in AND fecha_fi
LET selec =
"SELECT a.tipo_cliente,a.sec_cliente,b.nombre,b.limite_credito,SUM(a.sub_total) ",
"FROM vetb00002 a,vetb00004 b ",
"WHERE a.status_t IS NULL AND a.fecha_factura between ? AND ? AND ",
" a.tipo_cliente = b.tipo_cliente and ",
" a.sec_cliente = b.sec_cliente AND b.status_t IS NULL ",
" and a.ventas = '1' ",
"GROUP BY 1,2,3,4 ORDER BY 5 DESC,1,2 "
DISPLAY "Buscando Informacion..... Espere por Favor" AT 17,14
ATTRIBUTE(BOLD)
PREPARE comando FROM selec
DECLARE buscar CURSOR FOR comando
OPEN buscar USING fecha_in,fecha_fi
START REPORT gerencia5 TO "clientes"
DISPLAY "Impresion en Proceso..... Espere por Favor " AT 17,14
INITIALIZE letras.* TO NULL
LET idx = 1
WHILE STATUS != NOTFOUND
FETCH buscar INTO ger_comp2.*
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
LET ger_comp2.secuencia = idx
{
SELECT a.neto,a.fecha_factura
INTO ger_comp2.neto,ger_comp2.fecha
FROM vetb00002 a
WHERE a.factura = ger_comp2.factura
}
OUTPUT TO REPORT gerencia5(ger_comp2.*)
LET idx = idx + 1
END WHILE
FINISH REPORT gerencia5
#RUN imprime
END FUNCTION
REPORT gerencia5(x)
DEFINE x RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
nombre CHAR(30),
limite DECIMAL(12,2),
neto LIKE vetb00002.neto,
secuencia SMALLINT
END RECORD
DEFINE descrip,descrip1 CHAR(30),
hora CHAR(5)
OUTPUT
LEFT MARGIN 2
TOP MARGIN 1
ORDER BY x.secuencia
FORMAT
PAGE HEADER
LET hora = time
{
PRINT COLUMN 1, letras.negrillas_on
PRINT COLUMN 1, "geprrp005",
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 18, "Clientes con Ventas Mayores a ",
cantidad1 USING "###,###,##&.&&",
COLUMN 76, hora
SKIP 1 LINES
PRINT COLUMN 1, "Fecha: Del ",fecha_in USING "MM/DD/yyyy",
" Al ",fecha_fi USING "MM/DD/yyyy"
PRINT COLUMN 1, "----------------------------------------",
"----------------------------------------",
"-----------------------"
PRINT COLUMN 1, "Secuencia",
COLUMN 11, "Cliente",
COLUMN 53, "Limite Credito",
COLUMN 70, "Factura",
COLUMN 80, "Fecha",
COLUMN 98, "Monto"
PRINT COLUMN 1, "----------------------------------------",
"----------------------------------------",
"-----------------------"
PRINT letras.negrillas_off
}
ON EVERY ROW
PRINT COLUMN 3, x.secuencia USING "#,###",
COLUMN 11, x.tipo_cliente USING "&&","-",
x.sec_cliente USING "&&&&"," ", x.nombre,
2 SPACES, x.limite USING "###,###,###.##",
2 SPACES, x.neto USING "###,###,###.##"
ON LAST ROW
PRINT COLUMN 1, letras.negrillas_on
PRINT COLUMN 30, "TOTAL VENTAS...."," ",
COLUMN 74, SUM(x.neto) USING "###,###,###.##"
END REPORT