222 lines
7.2 KiB
Plaintext
222 lines
7.2 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
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
|