primer commit subida
This commit is contained in:
@@ -0,0 +1,221 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : COPRRP028
|
||||
OBJETIVO : Reporte De Ordenes Abiertas con Cantidades
|
||||
Pendientes por Llegar.
|
||||
PROGRAMADOR : JUAN SOTO
|
||||
FECHA REALIZACION : Mayo 1997
|
||||
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
|
||||
GLOBALS
|
||||
"coprgb000.4gl"
|
||||
##### Registro para almacenar la informacion enviada al reporte
|
||||
|
||||
DEFINE d_rep28 RECORD
|
||||
tipo LIKE cotb00015.tipo,
|
||||
num_oc LIKE cotb00015.num_oc,
|
||||
fecha DATE,
|
||||
cod_n LIKE cotb00020.cod_n,
|
||||
cod_grupo LIKE cotb00020.cod_grupo,
|
||||
cod_tipo LIKE cotb00020.cod_tipo,
|
||||
cod_sec LIKE cotb00020.cod_sec,
|
||||
cantidad_l DECIMAL(12,2),
|
||||
descrip_esp CHAR(30),
|
||||
descrip CHAR(30),
|
||||
unidad_med CHAR(3),
|
||||
cantidad_r DECIMAL(12,2)
|
||||
END RECORD
|
||||
DEFINE fecha_i,fecha_f DATE
|
||||
|
||||
##### Funcion para buscar informacion
|
||||
|
||||
FUNCTION coprrp028()
|
||||
OPTIONS
|
||||
FORM LINE 8
|
||||
OPEN FORM cofmrp028 FROM "cofmrp028"
|
||||
DISPLAY FORM cofmrp028
|
||||
CALL pantalla()
|
||||
DISPLAY "coprrp028" AT 4,3
|
||||
DISPLAY "Cantidades Ordeneadas/Recibidas Por Orden" AT 6,20
|
||||
LET int_flag = FALSE
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
|
||||
##### Proceso de busqueda de la informacion requerida
|
||||
|
||||
INPUT BY NAME fecha_i,fecha_f
|
||||
AFTER FIELD fecha_i
|
||||
IF fecha_i IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_i
|
||||
END IF
|
||||
|
||||
BEFORE FIELD fecha_f
|
||||
LET fecha_f = TODAY
|
||||
DISPLAY BY NAME fecha_f
|
||||
|
||||
AFTER FIELD fecha_f
|
||||
IF fecha_f IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_i
|
||||
END IF
|
||||
|
||||
IF fecha_i > fecha_f THEN
|
||||
LET numero_msg = 149
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_f
|
||||
END IF
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DECLARE busqueda CURSOR FOR
|
||||
SELECT a.tipo,a.num_oc,a.fech_oc,b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,
|
||||
b.cantidad
|
||||
FROM cotb00014 a, cotb00015 b
|
||||
WHERE (a.tipo = b.tipo) AND (a.num_oc = b.num_oc) AND (a.cierre IS NULL OR
|
||||
a.cierre = "N") AND (a.status_t IS NULL) AND
|
||||
(a.fech_oc BETWEEN fecha_i AND fecha_f)
|
||||
ORDER BY 3,1,2,4,5,6,7
|
||||
|
||||
DISPLAY "Reporte Generandose ... Por Favor Espere"
|
||||
AT 19,14 ATTRIBUTE(BOLD,REVERSE)
|
||||
|
||||
START REPORT reporte_28 TO "C:\\archivo"
|
||||
|
||||
FOREACH busqueda INTO d_rep28.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET d_rep28.descrip_esp = NULL
|
||||
LET d_rep28.unidad_med = NULL
|
||||
CASE
|
||||
WHEN d_rep28.tipo = "01"
|
||||
SELECT a.descrip_esp,a.unidad_med
|
||||
INTO d_rep28.descrip_esp,d_rep28.unidad_med FROM intb00001 a
|
||||
WHERE (a.cod_n=d_rep28.cod_n) AND (a.cod_grupo=d_rep28.cod_grupo) AND
|
||||
(a.cod_tipo=d_rep28.cod_tipo) AND (a.cod_sec=d_rep28.cod_sec)
|
||||
|
||||
WHEN d_rep28.tipo = "02"
|
||||
SELECT a.descrip_esp,a.unidad_med
|
||||
INTO d_rep28.descrip_esp,d_rep28.unidad_med FROM iptb00002 a
|
||||
WHERE (a.cod_n=d_rep28.cod_n) AND (a.cod_grupo=d_rep28.cod_grupo) AND
|
||||
(a.cod_tipo=d_rep28.cod_tipo) AND (a.cod_sec=d_rep28.cod_sec)
|
||||
|
||||
OTHERWISE
|
||||
SELECT a.descrip_esp,a.unidad_med
|
||||
INTO d_rep28.descrip_esp,d_rep28.unidad_med FROM irtb00001 a
|
||||
WHERE (a.cod_n=d_rep28.cod_n) AND (a.cod_grupo=d_rep28.cod_grupo) AND
|
||||
(a.cod_tipo=d_rep28.cod_tipo) AND (a.cod_sec=d_rep28.cod_sec)
|
||||
END CASE
|
||||
|
||||
IF d_rep28.cantidad_l IS NULL THEN
|
||||
LET d_rep28.cantidad_l = 0
|
||||
END IF
|
||||
IF d_rep28.cantidad_r IS NULL THEN
|
||||
LET d_rep28.cantidad_r = 0
|
||||
END IF
|
||||
OUTPUT TO REPORT reporte_28(d_rep28.*)
|
||||
END FOREACH
|
||||
|
||||
FINISH REPORT reporte_28
|
||||
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
||||
|
||||
###### Funcion que disena el reporte
|
||||
REPORT reporte_28(x)
|
||||
DEFINE x RECORd
|
||||
tipo LIKE cotb00015.tipo,
|
||||
num_oc LIKE cotb00015.num_oc,
|
||||
fecha DATE,
|
||||
cod_n LIKE cotb00020.cod_n,
|
||||
cod_grupo LIKE cotb00020.cod_grupo,
|
||||
cod_tipo LIKE cotb00020.cod_tipo,
|
||||
cod_sec LIKE cotb00020.cod_sec,
|
||||
cantidad_l DECIMAL(12,2),
|
||||
descrip_esp CHAR(30),
|
||||
descrip CHAR(30),
|
||||
unidad_med CHAR(3),
|
||||
cantidad_r DECIMAL(12,2)
|
||||
END RECORD,
|
||||
nombre_m CHAR(20),
|
||||
descripcion CHAR(43)
|
||||
|
||||
DEFINE comprimido_on,comprimido_off,negrillas_on,negrillas_off CHAR(2),
|
||||
hora CHAR(5)
|
||||
|
||||
OUTPUT
|
||||
LEFT MARGIN 0
|
||||
TOP MARGIN 0
|
||||
|
||||
###### Sortenado la informacion en orden de mes de reorden y dia de reorden
|
||||
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET negrillas_on = ASCII 27, ASCII 69
|
||||
LET negrillas_off = ASCII 27, ASCII 70
|
||||
LET comprimido_on = ASCII 15
|
||||
LET comprimido_off = ASCII 18
|
||||
LET hora = TIME
|
||||
|
||||
LET l = (121 - LENGTH(p_companias.nombre CLIPPED))/2
|
||||
PRINT COLUMN 1, comprimido_on,negrillas_on
|
||||
PRINT COLUMN 1, "coprrp028",
|
||||
COLUMN l, p_companias.nombre CLIPPED,
|
||||
COLUMN 114, "Pag. ",PAGENO USING "###"
|
||||
PRINT COLUMN 37, " SISTEMA DE COMPRAS",
|
||||
COLUMN 114, TODAY USING "dd/mm/yy"
|
||||
PRINT COLUMN 37, " Cantidades Ordenadas Vs Recibidas Por Orden",
|
||||
COLUMN 117, hora
|
||||
SKIP 1 LINES
|
||||
|
||||
PRINT COLUMN 1, "Fecha: Del ",fecha_i USING "dd/mm/yy",
|
||||
" Al ",fecha_f USING "dd/mm/yy"
|
||||
PRINT COLUMN 1, "----------------------------------------",
|
||||
"----------------------------------------",
|
||||
"---------------------------------------------------"
|
||||
PRINT COLUMN 1, "Orden",
|
||||
COLUMN 11, "Fecha",
|
||||
COLUMN 21, "Producto",
|
||||
COLUMN 84, "Ordenado",
|
||||
COLUMN 98, "Recibido",
|
||||
COLUMN 112, "Pendiente",
|
||||
COLUMN 123, " Porc."
|
||||
PRINT COLUMN 1, "----------------------------------------",
|
||||
"----------------------------------------",
|
||||
"---------------------------------------------------"
|
||||
PRINT negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.num_oc
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 1, x.tipo USING "&&","-",x.num_oc USING "&&&&&&",
|
||||
COLUMN 11, x.fecha USING "dd/mm/yy";
|
||||
|
||||
ON EVERY ROW
|
||||
LET nombre_m = NULL
|
||||
LET descripcion = x.descrip_esp CLIPPED
|
||||
PRINT COLUMN 21, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
|
||||
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&"," ",
|
||||
descripcion, x.unidad_med,
|
||||
COLUMN 73, x.cantidad_l USING "###,###,###.##",
|
||||
COLUMN 88, x.cantidad_r USING "###,###,###.##",
|
||||
COLUMN 103, x.cantidad_l - x.cantidad_r USING "###,###,###.##",
|
||||
COLUMN 124, ((x.cantidad_l-x.cantidad_r)/x.cantidad_l)*100
|
||||
USING "###.##"," %"
|
||||
|
||||
ON LAST ROW
|
||||
PRINT comprimido_off
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user