{ ------------------------------------------------------------------------------- PROGRAMA : IRPRRP029 OBJETIVO : REPUESTOS CON EXISTENCIA MINIMA PROGRAMADOR : Juan F. Soto FECHA REALIZACION : Mayo 27, 1996 ------------------------------------------------------------------------------- } GLOBALS "irprgb000.4gl" DEFINE minima LIKE irtb00002.exist_min, impresion CHAR(1) MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL irprrp029() END MAIN FUNCTION irprrp029() ### Variable de los datos del reporte DEFINE materia RECORD cod_n LIKE intb00002.cod_n, cod_grupo LIKE intb00002.cod_grupo, cod_tipo LIKE intb00002.cod_tipo, cod_sec LIKE intb00002.cod_sec, descrip_esp LIKE intb00001.descrip_esp, descrip_ing LIKE intb00001.descrip_ing, unidad_med LIKE intb00001.unidad_med, existencia LIKE irtb00002.existencia END RECORD #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM irfmrp28 FROM "irfmrp006" DISPLAY FORM irfmrp28 CALL pantalla() DISPLAY "irprrp029" AT 4,3 DISPLAY "Repuestos Con Existencia Minima" AT 6,22 LET tipo_papel = 1 CALL msgrp000(tipo_papel) LET pflag = "N" INPUT BY NAME decide ON KEY(F3) DISPLAY "MODO PANTALLA..." AT 18,14 ATTRIBUTE(RED) LET pflag = "S" AFTER FIELD decide IF decide IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD decide END IF END INPUT CONSTRUCT criterio ON b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec FROM cod_n,cod_grupo,cod_tipo,cod_sec ON KEY(F3) DISPLAY "MODO PANTALLA..." AT 18,14 ATTRIBUTE(RED) LET pflag = "S" AFTER CONSTRUCT EXIT CONSTRUCT END CONSTRUCT ### Proceso Para Cancelar Reportes IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF ## Buscando Informacion Dependiendo del tipo deseado IF decide = "A" THEN LET SELEC = "SELECT UNIQUE b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec, ", " b.descrip_esp[1,30],b.descrip_ing[1,30],b.unidad_med, ", " SUM(a.cantidad_2) ", "FROM irtb00002 b,irtb00006 a ", "WHERE (b.cod_n = a.cod_n AND b.cod_grupo = a.cod_grupo AND ", " b.cod_tipo = a.cod_tipo AND b.cod_sec = a.cod_sec) AND ", criterio clipped," and (a.status_t IS NULL) AND (b.status_t IS NULL) ", "GROUP BY 1,2,3,4,5,6,7 ORDER BY 3,5 " DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 17,14 ATTRIBUTE (BOLD) ELSE LET SELEC = "SELECT UNIQUE b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec, ", " b.descrip_esp[1,30],b.descrip_ing[1,30],b.unidad_med, ", " SUM(a.cantidad_2) ", "FROM irtb00002 b,irtb00006 a ", "WHERE (b.cod_n = a.cod_n AND b.cod_grupo = a.cod_grupo AND ", " b.cod_tipo = a.cod_tipo AND b.cod_sec = a.cod_sec) AND ", criterio clipped," and (a.status_t IS NULL) AND (b.status_t IS NULL) ", "GROUP BY 1,2,3,4,5,6,7 ORDER BY 3,1,2,4 " DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 17,14 ATTRIBUTE (BOLD) END IF PREPARE busca FROM selec DECLARE accion CURSOR FOR busca OPEN accion LET selec1 = "SELECT COUNT(*) FROM intb00001 b ", "WHERE ",criterio clipped, " and b.cod_n in (5) " PREPARE comando1 FROM selec1 DECLARE busca1 CURSOR FOR comando1 OPEN busca1 START REPORT reporte_29 TO "C:\\archivo" DISPLAY "<< Reporte Generandose... Espere Por Favor >>" AT 17,14 ATTRIBUTE (BOLD) FETCH busca1 INTO regi DISPLAY " " AT 17,14 LET p_param = "S" WHILE status != notfound FETCH accion INTO materia.* 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 CALL termometro(regi,p_param) LET p_param = "N" SELECT a.exist_min INTO minima FROM irtb00002 a WHERE (a.cod_n = materia.cod_n AND a.cod_grupo = materia.cod_grupo AND a.cod_tipo = materia.cod_tipo AND a.cod_sec = materia.cod_sec) AND a.status_t is null # IF materia.existencia <= minima THEN OUTPUT TO REPORT reporte_29(materia.*) # END IF END WHILE FINISH REPORT reporte_29 CLEAR SCREEN IF pflag = "N" THEN RUN "type C:\\archivo > %USPRINT%" ELSE RUN "pantalla C:\\archivo" END IF END FUNCTION REPORT reporte_29(x) DEFINE x RECORD cod_n LIKE intb00002.cod_n, cod_grupo LIKE intb00002.cod_grupo, cod_tipo LIKE intb00002.cod_tipo, cod_sec LIKE intb00002.cod_sec, descrip_esp LIKE intb00001.descrip_esp, descrip_ing LIKE intb00001.descrip_ing, unidad_med LIKE intb00001.unidad_med, existencia LIKE irtb00002.existencia END RECORD, l SMALLINT, varia CHAR(20), nombre1,descripcion CHAR(60), primera CHAR(1), doble_on,doble_off,negrillas_on,negrillas_off,comp_on,comp_off, normal,doce CHAR(2), hora CHAR(5) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 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 IF decide = "N" THEN LET varia = "N u m e r i c o" ELSE LET varia = "A l f a b e t i c o" END IF LET l = (95 - LENGTH(varia))/2 PRINT COLUMN 1, doce ,negrillas_on PRINT COLUMN 1, "irprrp029", COLUMN 25, " E U R O S T O N E, S. A.", COLUMN 93, "Pag. ",PAGENO USING "###" PRINT COLUMN 25, " Sistema de Inventario de Repuestos ", COLUMN 93, TODAY USING "dd/mm/yy" PRINT COLUMN 25, " Repuestos Con Existencia Minima", COLUMN 96, hora PRINT COLUMN l, varia clipped PRINT COLUMN 1, "Fecha de Corte: ", TODAY USING "dd/mm/yyyy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 90, "Existencia" PRINT COLUMN 1, "Codigo", COLUMN 12, "Descripcion Espanol", COLUMN 45, "Descripcion Ingles", COLUMN 75, "Unidad", COLUMN 83, "Exist.", COLUMN 90, "Minima" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 1, negrillas_off BEFORE GROUP OF x.cod_tipo LET nombre1 = " " ### Buscandoi el nombre de la maquina a que pertenece el repuesto SELECT a.nombre INTO nombre1 FROM irtb00010 a WHERE a.status_t IS NULL AND a.codigo = x.cod_tipo IF nombre1 IS NULL OR nombre1 = " " THEN LET nombre1 = "MAQUINA NO EXISTE" END IF PRINT COLUMN 1, negrillas_on,nombre1 CLIPPED,negrillas_off ON EVERY ROW PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-", x.cod_tipo USING "&&","-",x.cod_sec USING "&&&", COLUMN 12, x.descrip_esp CLIPPED, COLUMN 45, x.descrip_ing CLIPPED, COLUMN 77, x.unidad_med CLIPPED, COLUMN 81, x.existencia USING "#,##&.&&", COLUMN 91, minima USING "#,##&.&&" AFTER GROUP OF x.cod_tipo SKIP 1 LINE PRINT COLUMN 3, "Total del grupo = ",GROUP count(*) USING "####" SKIP 1 LINE ON LAST ROW SKIP 1 LINE PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####" PRINT COLUMN 1, "====================================================", "=================================================" PRINT normal END REPORT