244 lines
7.6 KiB
Plaintext
244 lines
7.6 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : ipprrp046
|
|
OBJETIVO : Relacion de Documentos
|
|
PROGRAMADOR : Lic. Oscar Castillo
|
|
FECHA REALIZACION : Junio 5, del 2000
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "ipprgb000.4gl"
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
SELECT * INTO p_companias.* FROM companias
|
|
CALL ipprrp046()
|
|
END MAIN
|
|
|
|
FUNCTION ipprrp046()
|
|
|
|
DEFINE ventas CHAR(1)
|
|
DEFINE salir CHAR(1)
|
|
DEFINE select_ac,select_ant,select_p CHAR(1000)
|
|
DEFINE idx_ac,ano,idx_a,idx_c SMALLINT
|
|
DEFINE c_ano CHAR(4),
|
|
p_ano SMALLINT
|
|
|
|
DEFINE relacion RECORD
|
|
fecha DATE,
|
|
cod_mov LIKE intb00005.cod_mov,
|
|
num_doc INTEGER,
|
|
status_reg CHAR(1),
|
|
codigo CHAR(20),
|
|
nombre_transp CHAR(60),
|
|
cedula CHAR(11),
|
|
descrip_bodega CHAR(30),
|
|
cliente CHAR(60),
|
|
direccion CHAR(100),
|
|
orden INT,
|
|
descrip CHAR(30)
|
|
END RECORD
|
|
|
|
|
|
# WHENEVER ERROR CONTINUE
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
|
|
OPEN FORM ipfmrp046 FROM "ipfmrp046"
|
|
DISPLAY FORM ipfmrp046
|
|
# CALL pantalla()
|
|
DISPLAY "ipprrp046" AT 4,3 ATTRIBUTE(RED)
|
|
DISPLAY " Relacion de Documentos" AT 6,22 ATTRIBUTE(BLACK)
|
|
|
|
|
|
INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi
|
|
BEFORE INPUT
|
|
LET datos_cons.fech_fi = TODAY USING "dd/mm/yyyy"
|
|
DISPLAY BY NAME datos_cons.fech_fi
|
|
AFTER FIELD fech_in
|
|
IF datos_cons.fech_in IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fech_in
|
|
END IF
|
|
|
|
AFTER FIELD fech_fi
|
|
IF datos_cons.fech_fi IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fech_fi
|
|
END IF
|
|
|
|
END INPUT
|
|
CONSTRUCT criterio ON c.cod_mov,c.cod_transp,c.sec_transp FROM cod_mov,cod_transp,sec_transp
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
|
|
LET select_ac =
|
|
"SELECT DISTINCT c.fecha,c.cod_mov,c.num_doc, ",
|
|
" c.status_t,CAST(c.cod_transp AS CHAR(4))+'-'+CAST(c.sec_transp AS VARCHAR(10)),",
|
|
"a.nombre,CAST(a.cedula AS CHAR(7))+CAST(a.serie AS CHAR(3)), ",
|
|
" b.descripcion,d.nombre,e.direccion,c.num_oc ",
|
|
"FROM iptb00006 c LEFT OUTER JOIN prtb00012 e on c.num_oc = e.num_oc ",
|
|
" LEFT OUTER JOIN vetb00004 d ON c.cod_sp = d.tipo_cliente AND c.cod_sp_sec = d.sec_cliente,",
|
|
" vetb00015 a,intb00009 b ",
|
|
"WHERE c.fecha between ? and ? and c.cod_transp = a.cod_transp AND c.sec_transp = a.sec_transp AND ",
|
|
" c.cod_mov != 99 AND c.bodega = b.cod_bodega AND c.status_t IS NULL AND ",criterio CLIPPED,
|
|
"ORDER BY c.fecha,c.cod_mov,c.num_Doc "
|
|
|
|
DISPLAY "<< Estoy Buscando Documentos... Espere Por favor >>"
|
|
AT 19,14 ATTRIBUTE (REVERSE,BOLD)
|
|
|
|
PREPARE busca_ant FROM select_ac
|
|
DECLARE actual SCROLL CURSOR FOR busca_ant
|
|
OPEN actual USING datos_cons.fech_in,datos_cons.fech_fi
|
|
DISPLAY " "
|
|
AT 19,14
|
|
|
|
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
|
AT 19,14 ATTRIBUTE (REVERSE)
|
|
|
|
CALL seleccionarsalida() RETURNING r_output
|
|
CALL configureoutput(r_output) RETURNING handler
|
|
START REPORT relacion TO XML HANDLER handler
|
|
|
|
|
|
LET idx_c = 1
|
|
LET idx_a = 1
|
|
LET idx_ac = 1
|
|
WHILE status != notfound
|
|
FETCH actual INTO relacion.*
|
|
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
|
|
|
|
SELECT a.descrip_mov
|
|
INTO relacion.descrip
|
|
FROM iptb00005 a
|
|
WHERE a.cod_mov = relacion.cod_mov
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
OUTPUT TO REPORT relacion(relacion.*)
|
|
END WHILE
|
|
|
|
FINISH REPORT relacion
|
|
CLEAR SCREEN
|
|
END FUNCTION
|
|
|
|
REPORT relacion(x)
|
|
DEFINE x RECORD
|
|
fecha DATE,
|
|
cod_mov LIKE intb00005.cod_mov,
|
|
num_doc INTEGER,
|
|
status_reg CHAR(1),
|
|
codigo CHAR(20),
|
|
nombre_transp CHAR(60),
|
|
cedula CHAR(11),
|
|
descrip_bodega CHAR(30),
|
|
cliente CHAR(60),
|
|
direccion CHAR(100),
|
|
orden INT,
|
|
descrip CHAR(30)
|
|
END RECORD
|
|
|
|
DEFINE nom_status CHAR(10)
|
|
DEFINE primera CHAR(1)
|
|
DEFINE c_ano1 char(4)
|
|
DEFINE hora CHAR(5)
|
|
DEFINE total_p,total_m DECIMAL(12,2)
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 0
|
|
PAGE LENGTH 100
|
|
|
|
ORDER BY x.codigo,x.cod_mov,x.num_doc
|
|
FORMAT
|
|
|
|
PAGE HEADER
|
|
LET hora = time
|
|
SELECT a.* INTO p_companias.* FROM companias a WHERE a.cod_comp = 1
|
|
LET lj = (100 - LENGTH(p_companias.nombre CLIPPED))/2
|
|
|
|
|
|
PRINT COLUMN 1, "ipprrp046",
|
|
COLUMN lj, p_companias.nombre CLIPPED,
|
|
COLUMN 94, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 28, " Sistema de Inventario de Productos Terminados",
|
|
COLUMN 94, today using "dd/mm/yyyy"
|
|
PRINT COLUMN 28, " Relacion de Documentos",
|
|
COLUMN 97, hora
|
|
|
|
SKIP 1 LINES
|
|
|
|
PRINT COLUMN 2, "Desde ",datos_cons.fech_in using "dd/mm/yyyy",
|
|
COLUMN 21, "Hasta ", datos_cons.fech_fi using "dd/mm/yyyy"
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------",
|
|
"-"
|
|
|
|
|
|
PRINT COLUMN 1, "Fecha",
|
|
COLUMN 20, "Documento",
|
|
COLUMN 30, "Orden",
|
|
COLUMN 45, "Cliente / Proveedor",
|
|
COLUMN 69, "Almacen "
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------",
|
|
"-"
|
|
|
|
INITIALIZE nom_status TO NULL
|
|
BEFORE GROUP OF x.codigo
|
|
PRINT "TRANSPORTISTA: ",x.codigo," ",x.nombre_transp," ",x.cedula
|
|
SKIP 1 LINE
|
|
BEFORE GROUP OF x.cod_mov
|
|
PRINT "MOVIMIENTO: ",x.cod_mov USING "<<<<"," ",x.descrip
|
|
SKIP 1 LINE
|
|
ON EVERY ROW
|
|
|
|
IF x.status_reg IS NULL THEN
|
|
LET nom_status = "ACTIVO"
|
|
END IF
|
|
|
|
IF x.status_reg = "E" THEN
|
|
LET nom_status = "ANULADO"
|
|
END IF
|
|
|
|
PRINT COLUMN 1, x.fecha USING "dd/mm/yyyy",
|
|
COLUMN 20, x.num_doc USING "&&&&&&&&",
|
|
COLUMN 30, x.orden USING "&&&&&&&&",
|
|
COLUMN 45, x.cliente,
|
|
COLUMN 40, x.descrip_bodega
|
|
|
|
PRINT COLUMN 45, x.direccion
|
|
PRINT "-----------------------------------------------------------",
|
|
"-----------------------------------------------------------"
|
|
ON LAST ROW
|
|
|
|
END REPORT
|