{ ------------------------------------------------------------------------------- PROGRAMA : ISPRRP003 OBJETIVO : REPORTE DE MOVIMIENTOS PROGRAMADOR : Ing. Juan Fco. Soto FECHA REALIZACION : Octubre 21, 1993 ------------------------------------------------------------------------------- } GLOBALS "isprgb000.4gl" FUNCTION isprrp003() DEFINE idx_b SMALLINT DEFINE salir CHAR(1) DEFINE transacc RECORD cod_n LIKE istb00002.cod_n, cod_grupo LIKE istb00002.cod_grupo, cod_tipo LIKE istb00002.cod_tipo, cod_sec LIKE istb00002.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, fecha LIKE istb00006.fecha, num_doc LIKE istb00006.num_doc, cod_mov LIKE istb00006.cod_mov, descrip_mov CHAR(30), cantidad_2 LIKE istb00006.cantidad_2 END RECORD DEFINE codigo_ant RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT END RECORD DEFINE balances RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, balance LIKE istb00006.cantidad_2 END RECORD DEFINE select_balan CHAR(1000) #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 OPEN FORM isfmrp003 FROM "isfmrp003" DISPLAY FORM isfmrp003 CALL pantalla() DISPLAY "isprrp003" AT 4,3 ATTRIBUTE(RED) DISPLAY "Movimientos" AT 6,34 ATTRIBUTE(BLACK) LET tipo_papel = 1 CALL msgrp000(tipo_papel) CALL defecto(impresor) RETURNING imprime, letras.*,archivo IF int_flag != 0 THEN let numero_msg = 2 CALL msg(numero_msg) SLEEP 1 LET int_flag = 0 RETURN END IF INPUT BY NAME datos_cons.fech_in,datos_cons.fech_fi ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime, letras.*, archivo AFTER INPUT EXIT INPUT END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) CLEAR SCREEN RETURN END IF CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec FROM cod_n,cod_grupo,cod_tipo,cod_sec ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime, letras.*, archivo AFTER CONSTRUCT EXIT CONSTRUCT END CONSTRUCT LET select_balan = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ", " b.unidad_med,a.fecha,a.num_doc,a.cod_mov,c.descrip_mov, ", " a.cantidad_2 ", "FROM istb00006 a,intb00001 b,istb00005 c ", "WHERE a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ", " a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND ", criterio clipped," AND a.cod_mov=c.cod_mov AND a.status_t IS NULL AND ", " a.fecha BETWEEN ? AND ? " DISPLAY "<< Buscando Informacion ... Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE busca_balan FROM select_balan DECLARE accion SCROLL CURSOR FOR busca_balan OPEN accion USING datos_cons.fech_in,datos_cons.fech_fi START REPORT reporte3 TO archivo DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) WHILE STATUS != NOTFOUND FETCH accion INTO transacc.* IF status = notfound THEN EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) EXIT WHILE END IF OUTPUT TO REPORT reporte3(transacc.*) END WHILE FINISH REPORT reporte3 RUN imprime CLEAR SCREEN END FUNCTION REPORT reporte3(x) DEFINE x RECORD cod_n LIKE istb00002.cod_n, cod_grupo LIKE istb00002.cod_grupo, cod_tipo LIKE istb00002.cod_tipo, cod_sec LIKE istb00002.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, fecha LIKE istb00006.fecha, num_doc LIKE istb00006.num_doc, cod_mov LIKE istb00006.cod_mov, descrip_mov CHAR(30), cantidad_2 LIKE istb00006.cantidad_2 END RECORD, cantidad DECIMAL(12,2) DEFINE nombre CHAR(8), und CHAR(3) , primera, busca,imprime CHAR(1), hora CHAR(5), balance_in,balan_ini,canti,balance_rp DECIMAL(12,2), entrada,salida DECIMAL(12,2) OUTPUT LEFT MARGIN 0 ORDER BY x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec,x.fecha,x.num_doc FORMAT PAGE HEADER LET hora = time PRINT letras.doce PRINT COLUMN 1, "isprrp003", COLUMN 22, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 93, "Pag. ", COLUMN 98, pageno using "<&&" PRINT COLUMN 1, COLUMN 25, "Sistema de Inventario de Suministros", COLUMN 93, today using "dd/mm/yyyy" PRINT COLUMN 34, "Movimientos", COLUMN 96, hora SKIP 2 LINES PRINT COLUMN 1, "Desde ",datos_cons.fech_in using "dd/mm/yyyy", COLUMN 18, "Hasta ",datos_cons.fech_fi using "dd/mm/yyyy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 1, "Suministro", COLUMN 64, "Entradas", COLUMN 79, "Salidas", COLUMN 93, "Balance" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" BEFORE GROUP OF x.cod_sec LET balance_in = 0 SELECT SUM(a.cantidad_2) INTO balance_in FROM istb00006 a WHERE a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND a.cod_tipo = x.cod_tipo AND a.cod_sec = x.cod_sec AND a.status_t IS NULL AND a.fecha < datos_cons.fech_in IF balance_in is null THEN LET balance_in = 0 END IF LET canti = balance_in PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-", x.cod_tipo USING "&&","-",x.cod_sec USING "&&&", " ",x.descrip_esp, #COLUMN 51, x.unidad_med COLUMN 73, "Inicial ---> ", COLUMN 89, balance_in using "---,---,---.##" ON EVERY ROW LET salida = null LET entrada = null IF x.cantidad_2 > 0 THEN LET salida = null LET entrada = x.cantidad_2 ELSE LET salida = x.cantidad_2 LET entrada = null END IF LET canti = canti + x.cantidad_2 PRINT COLUMN 8, x.num_doc USING "&&&&&&"," ",x.fecha USING "dd/mm/yyyy", COLUMN 24, "(",x.cod_mov using "&&",") ",x.descrip_mov CLIPPED, COLUMN 59, entrada USING "---,---,---.##", COLUMN 74, salida USING "---,---,---.##", COLUMN 89, canti USING "---,---,---.##" AFTER GROUP OF x.cod_sec SKIP 1 LINE END REPORT