{ ------------------------------------------------------------------------------- PROGRAMA : IRPRRP006 OBJETIVO : CATALOGO DE REPUESTOS CON EXISTENCIAS PROGRAMADOR : Ing. Juan Fco. Soto. FECHA REALIZACION : Mayo 18, 1993. ------------------------------------------------------------------------------- } GLOBALS "irprgb000.4gl" MAIN DEFER INTERRUPT CALL arg_val(1) RETURNING usuarios CALL arg_val(2) RETURNING clave CALL arg_val(3) RETURNING impresor CONNECT TO "decomarmol" USER usuarios USING clave SELECT * INTO p_companias.* FROM companias CALL irprrp006() END MAIN FUNCTION irprrp006() DEFINE idx SMALLINT 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 irtb00002.descrip_esp, descrip_ing LIKE irtb00002.descrip_ing, unidad_med LIKE irtb00002.unidad_med, existencia LIKE irtb00002.existencia END RECORD, cod smallint #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM irfmrp006 FROM "irfmrp006" DISPLAY FORM irfmrp006 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME decide IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF CONSTRUCT criterio ON b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec FROM cod_n,cod_grupo,cod_tipo,cod_sec CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, doble_on,doble_off,comp_on,comp_off, doce,normal,archivo,copia START REPORT p_cero TO archivo IF decide = "A" THEN LET SELEC = "SELECT UNIQUE b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,b.descrip_esp, ", " b.descrip_ing,b.unidad_med ", "FROM irtb00002 b ", "WHERE ",criterio clipped," AND b.status_t IS NULL ", "ORDER BY 3,5 " ELSE LET SELEC = "SELECT UNIQUE b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,b.descrip_esp, ", " b.descrip_ing,b.unidad_med ", "FROM irtb00002 b ", "WHERE ",criterio clipped," AND b.status_t IS NULL ", "ORDER BY 3,1,2,4 " END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF PREPARE busca FROM selec IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF DECLARE accion SCROLL CURSOR FOR busca OPEN accion LET idx = 1 LET p_param = "S" WHILE status != notfound FETCH ABSOLUTE idx accion INTO materia.* IF status = NOTFOUND THEN EXIT WHILE END IF LET idx = idx + 1 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET p_param = "N" OUTPUT TO REPORT p_cero(materia.*) END WHILE FINISH REPORT p_cero CLEAR SCREEN RUN IMPRIME END FUNCTION REPORT p_cero(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 irtb00002.descrip_esp, descrip_ing LIKE irtb00002.descrip_ing, unidad_med LIKE irtb00002.unidad_med, existencia LIKE irtb00002.existencia END RECORD DEFINE dia_l,l smallint DEFINE varia CHAR(20) DEFINE descripcion CHAR(60) DEFINE primera CHAR(1) DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE normal CHAR(2) DEFINE doce CHAR(2) DEFINE 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 PRINT COLUMN 1, "irprrp006", COLUMN 18, " M A R M O T E C H S. A.", COLUMN 75, "Pag. ",pageno using "###" PRINT COLUMN 18, " Sistema de Inventario de Repuestos ", COLUMN 75, today using "dd/mm/yy" PRINT COLUMN 18, " Existencia de Repuestos ", COLUMN 78, hora 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 = (82 - LENGTH(varia))/2 PRINT COLUMN l, varia clipped PRINT COLUMN 1, doce PRINT COLUMN 1, "----------------------------------------------------", "-----------------------------------------------" PRINT COLUMN 80, "Dia de" PRINT COLUMN 1, "codigo", COLUMN 15, "Descripcion", COLUMN 71, "Unidad", COLUMN 79, "Llegada", COLUMN 89, "Existencia" PRINT COLUMN 1, "----------------------------------------------------", "-----------------------------------------------" {BEFORE GROUP OF x.codigo SKIP 1 LINE IF x.descripcion is null THEN LET x.descripcion = "NO TIENE MAQUINA" END IF PRINT COLUMN 2, negrillas_on,x.descripcion CLIPPED,negrillas_off SKIP 1 LINE } ON EVERY ROW # LET descripcion = x.descrip_esp clipped," ",x.descrip_ing clipped LET descripcion = x.descrip_esp clipped SELECT UNIQUE a.dia_llegada INTO dia_l FROM irtb00002 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 # Busqueda de las existencias SELECT SUM(a.cantidad_2) INTO x.existencia FROM irtb00006 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 #---------------------------------------------------------------------------- IF status = notfound THEN LET status = 0 END IF IF x.existencia is null THEN LET x.existencia = 0 END IF PRINT COLUMN 1, x.cod_n USING "&","-", COLUMN 3, x.cod_grupo USING "&&","-", COLUMN 5, x.cod_tipo USING "&&","-", COLUMN 8, x.cod_sec USING "&&&",2 spaces, COLUMN 11, descripcion , COLUMN 71, x.unidad_med, COLUMN 80, dia_l using "###", COLUMN 87, x.existencia 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 COLUMN 3, ASCII 27, ASCII 80 END REPORT