{ ------------------------------------------------------------------------------- PROGRAMA : IPPRRP017 OBJETIVO : Detallado por Tipo de Movimiento Eliminado PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Abril 28, 1993 ------------------------------------------------------------------------------- } GLOBALS "ipprgb000.4gl" 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 ano_act CHAR(4) DEFINE fecha_1,fecha_2 DATETIME YEAR TO DAY DEFINE fecha_ini_per CHAR(8) DEFINE reg_elim RECORD cod_mov LIKE iptb00005.cod_mov, descripcion CHAR(30), num_doc INTEGER, fecha_doc DATE, cod_n SMALLINT, cod_grupo SMALLINT, cod_Tipo SMALLINT, cod_Sec SMALLINT, cantidad DECIMAL(12,5), descrip_esp CHAR(30), unidad_med CHAR(3), fech_crea LIKE iptb00006.fech_crea, fech_mod LIKE iptb00006.fech_mod, status_t LIKE iptb00006.status_t, usuario_c,usuario_m VARCHAR(20), cbodega SMALLINT, dbodega VARCHAR(30) END RECORD MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT to "smarmotech" USER usuarios USING clave SELECT a.* INTO p_companias.* FROM companias a CALL ipprrp017() END MAIN FUNCTION ipprrp017() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM ipfmrp17 FROM "ipfmrp023" DISPLAY FORM ipfmrp17 #CALL pantalla() DISPLAY "ipprrp017" AT 4,3 DISPLAY " Documentos Eliminados " AT 6,30 LET tipo_papel = 1 # CALL msgrp000(tipo_papel) CONSTRUCT criterio ON c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec FROM cod_n,cod_grupo,cod_tipo,cod_sec INPUT BY NAME fecha_1,fecha_2 AFTER FIELD fecha_1 IF fecha_1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_1 END IF AFTER FIELD fecha_2 IF fecha_2 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_2 END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET selec = "SELECT c.cod_mov,a.descrip_mov,c.num_doc,c.fecha,c.cod_n,c.cod_grupo, ", " c.cod_tipo,c.cod_sec,c.cantidad_2,b.descrip_esp,b.unidad_med, ", " c.fech_crea,c.fech_mod,c.status_t,c.us_crea,c.us_mod,d.cod_bodega,d.descripcion ", "FROM iptb00006 c,iptb00002 b,iptb00005 a,intb00009 d ", "WHERE c.fech_mod between (?) AND (?) AND c.status_t = 'E' AND ", " c.bodega = d.cod_bodega AND ", " c.cod_n = b.cod_n AND c.cod_grupo=b.cod_grupo AND ", " c.cod_tipo = b.cod_tipo AND c.cod_sec = b.cod_sec AND ", " c.cod_mov = a.cod_mov AND ",criterio CLIPPED DISPLAY "<< Estoy Buscando Documentos... Espere Por favor >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE comando FROM selec DECLARE actual CURSOR FOR COMANDO OPEN actual USING fecha_1,fecha_2 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) CALL selectoutput() RETURNING r_output CALL configureoutput(r_output) RETURNING handler START REPORT reporte_17 TO XML HANDLER handler WHILE STATUS != NOTFOUND FETCH actual INTO reg_elim.* 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 DISPLAY "DATOS: ",reg_elim.cod_sec USING "&&&","-", reg_elim.cantidad USING "##,###,###.##" AT 20,14 OUTPUT TO REPORT reporte_17(reg_elim.*) END WHILE FINISH REPORT reporte_17 END FUNCTION REPORT reporte_17(x) DEFINE x RECORD cod_mov LIKE iptb00005.cod_mov, descripcion CHAR(30), num_doc INTEGER, fecha_doc DATE, cod_n SMALLINT, cod_grupo SMALLINT, cod_Tipo SMALLINT, cod_Sec SMALLINT, cantidad DECIMAL(12,5), descrip_esp CHAR(30), unidad_med CHAR(3), fech_crea LIKE iptb00006.fech_crea, fech_mod LIKE iptb00006.fech_mod, status_t LIKE iptb00006.status_t, usuario_c,usuario_m VARCHAR(20), cbodega SMALLINT, dbodega VARCHAR(30) END RECORD DEFINE primera CHAR(1) DEFINE c_ano1 char(4) DEFINE negrillas_on CHAR(6) DEFINE negrillas_off CHAR(6) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(3) DEFINE doce CHAR(3) DEFINE normal CHAR(3) DEFINE hora CHAR(5) DEFINE l INTEGER DEFINE total_p,total_m DECIMAL(12,2) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 PAGE LENGTH 70 ORDER BY x.cod_mov,x.num_doc FORMAT PAGE HEADER { LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27,ASCII 77 LET normal = ASCII 27,ASCII 80 } LET hora = time LET l = (138 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT comp_on PRINT COLUMN 1, "ipprrp017", COLUMN l, p_companias.nombre CLIPPED, COLUMN 131, "Pag. ",PAGENO USING "###" PRINT COLUMN 46, "Sistema de Inventario de Productos ", COLUMN 131, today using "dd/mm/yy" PRINT COLUMN 46, " Documentos Eliminados ", COLUMN 134, hora SKIP 1 LINE PRINT COLUMN 2, "Desde ",fecha_1, " Hasta ",fecha_2 PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------------------------", "---------------" PRINT COLUMN 1, "Docto", COLUMN 10, "Fecha", COLUMN 22, "Articulo", COLUMN 80, "Cantidad", COLUMN 95, "Fecha Creacion", COLUMN 115, "Fecha Modif.", COLUMN 133, "Status", COLUMN 140, "Usuario C", COLUMN 161, "Usuario M" PRINT comp_on PRINT COLUMN 1, "---------------------------------------------------", "---------------------------------------------------", "---------------------------------------------------", "---------------" BEFORE GROUP OF x.cod_mov PRINT negrillas_on PRINT COLUMN 1, x.cod_mov using "##"," ",x.descripcion PRINT negrillas_off BEFORE GROUP OF x.num_doc PRINT COLUMN 1, x.num_doc USING "######", COLUMN 10, x.fecha_doc USING "dd/mm/yy", COLUMN 22, "(",x.cbodega USING "<<<",")",x.dbodega ON EVERY ROW PRINT COLUMN 22, x.cod_n USING "&&&&","-",x.cod_grupo USING "&&&&&","-", x.cod_tipo USING "&&&&&","-",x.cod_sec USING "&&&&&&&&&&"," ", x.descrip_esp clipped, COLUMN 75, x.cantidad USING "###,###,###.###", COLUMN 95, x.fech_crea, COLUMN 115, x.fech_mod," ",x.status_t, COLUMN 140, x.usuario_c, COLUMN 161, x.usuario_m AFTER GROUP OF x.cod_mov SKIP 1 LINE PRINT COLUMN 1, "Total Registros Por Movimiento ", GROUP COUNT(*) USING "###,###" ON LAST ROW PRINT normal END REPORT