{ ------------------------------------------------------------------------------- PROGRAMA : IRPRRP002 OBJETIVO : CATALOGO DE REPUESTOS. PROGRAMADOR : Ing. Juan Fco. Soto. FECHA REALIZACION : Enero 29, 1993. ------------------------------------------------------------------------------- } GLOBALS "irprgb000.4gl" DEFINE fecha1 DATE 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 irprrp002() END MAIN FUNCTION irprrp002() DEFINE sel_exist CHAR(300) DEFINE salir1,salir CHAR(1) DEFINE idx1,idx SMALLINT DEFINE hoy DATE DEFINE dat_exist RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, existencia SMALLINT END RECORD 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, dia_llegada LIKE intb00002.dia_llegada, unidad_med LIKE intb00001.unidad_med, descripcion LIKE intb00001.descrip_esp, codigo LIKE irtb00010.codigo, 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 irfmrp02 FROM "irfmrp002" DISPLAY FORM irfmrp02 CALL pantalla() DISPLAY "irprrp002" AT 4,3 DISPLAY "Catalogo de Repuestos " AT 6,28 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME decide,fecha1 BEFORE FIELD fecha1 LET fecha1 = TODAY DISPLAY BY NAME fecha1 AFTER FIELD fecha1 IF fecha1 IS NULL THEN LET numero_msg = 2 CALL msg(numero_msg) NEXT FIELD fecha1 END IF END INPUT 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 maestra 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.dia_llegada,b.unidad_med, ", " c.nombre,c.codigo ", " FROM irtb00002 b, OUTER irtb00010 c ", " WHERE ",criterio clipped, " AND c.codigo = b.cod_tipo ", "ORDER BY 10,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.dia_llegada,b.unidad_med, ", " c.nombre,c.codigo ", " FROM irtb00002 b, OUTER irtb00010 c ", " WHERE ",criterio clipped, " AND c.codigo = b.cod_tipo AND b.status_t IS NULL ", "ORDER BY 10,1,2,3,4 " END IF LET selec1 = "SELECT COUNT(*) FROM irtb00002 b,irtb00010 c ", "WHERE ",criterio clipped, " AND c.codigo = b.cod_tipo AND b.status_t IS NULL" PREPARE comando1 FROM selec1 DECLARE busca1 CURSOR FOR comando1 OPEN busca1 FETCH busca1 INTO regi DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 17,14 ATTRIBUTE (BOLD) 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 CURSOR FOR busca DISPLAY " " AT 17,14 LET p_param = "S" FOREACH accion INTO materia.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF OUTPUT TO REPORT maestra(materia.*) END FOREACH FINISH REPORT maestra CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT maestra(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, dia_llegada LIKE intb00002.dia_llegada, unidad_med LIKE intb00001.unidad_med, descripcion LIKE intb00001.descrip_esp, codigo LIKE irtb00010.codigo, existencia LIKE irtb00002.existencia END RECORD DEFINE 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 3, comp_off,negrillas_on PRINT COLUMN 1, "irprrp002", COLUMN 17, " E U R O S T O N E, S. A.", COLUMN 75, "Pag. ",pageno using "###" PRINT COLUMN 17, " Sistema de Inventario de Repuestos ", COLUMN 75, today using "dd/mm/yyyy" PRINT COLUMN 17, " Catalogo 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 = (80 - LENGTH(varia))/2 LET l = l - 8 PRINT COLUMN l+2, varia clipped," AL ",fecha1 USING "dd/mm/yyyy" PRINT COLUMN 1, comp_on PRINT COLUMN 1, "----------------------------------------------------", "----------------------------------------------------" , "----------------------------------------" PRINT COLUMN 99, "Dia de", COLUMN 109, "Existencia" PRINT COLUMN 1, "codigo", COLUMN 15, "Descripcion", COLUMN 91, "Unidad", COLUMN 99, "Llegada", COLUMN 109, "S/Mvto." PRINT COLUMN 1, "----------------------------------------------------", "----------------------------------------------------" , "----------------------------------------" BEFORE GROUP OF x.codigo SKIP 1 LINE PRINT COLUMN 2, negrillas_on,x.descripcion CLIPPED,negrillas_off SKIP 1 LINE ON EVERY ROW 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 AND a.fecha <= fecha1 IF x.existencia is null THEN LET x.existencia = 0 END IF PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&&","-", x.cod_tipo USING "&&","-",x.cod_sec USING "&&&"," ", x.descrip_esp CLIPPED," ",x.descrip_ing, COLUMN 91, x.unidad_med, COLUMN 100, x.dia_llegada using "###", COLUMN 107, 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, comp_off END REPORT