{ ------------------------------------------------------------------------------- PROGRAMA : ISPRRP002 OBJETIVO : CATALOGO DE SUMINISTRO PROGRAMADOR : Ing. Juan Soto FECHA REALIZACION : Octubre 21, 1993 ------------------------------------------------------------------------------- } GLOBALS "isprgb000.4gl" FUNCTION isprrp002() DEFINE idx_c SMALLINT DEFINE salir CHAR(1) DEFINE mes CHAR(2) DEFINE materia 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, existencia LIKE istb00002.existencia, pto_reorden LIKE istb00002.pto_reorden, dia_llegada LIKE istb00002.dia_llegada, cod_nab LIKE istb00002.cod_nab, bodega LIKE istb00002.bodega , unidad_med LIKE intb00001.unidad_med, base LIKE istb00002.base, costo LIKE istb00013.costo_st END RECORD, cod smallint DEFINE select_cost CHAR(1000) DEFINE costos RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, fecha CHAR(2), costo LIKE istb00013.costo_st END RECORD OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM isfmrp002 FROM "isfmrp002" DISPLAY FORM isfmrp002 CALL pantalla() DISPLAY "isprrp002" AT 4,3 ATTRIBUTE(RED) DISPLAY "Catalogo de Suministros" AT 6,28 ATTRIBUTE(BLACK) LET tipo_papel = 1 CALL msgrp000(tipo_papel) CALL defecto(impresor) RETURNING imprime, letras.*, archivo INPUT BY NAME decide ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime, letras.*, archivo AFTER FIELD decide IF decide IS NULL THEN NEXT FIELD decide END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF CONSTRUCT BY NAME criterio ON a.cod_grupo, a.cod_tipo,a.cod_sec IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF DISPLAY " " AT 19,14 IF decide = "A" THEN LET SELEC = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ", " a.existencia,a.pto_reorden,a.dia_llegada,a.cod_nab, ", " a.bodega,b.unidad_med,a.base ", "FROM istb00002 a, intb00001 b ", "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 ", " a.cod_n = 2 AND ", " a.status_t is NULL AND ",criterio clipped, " ORDER BY 5" ELSE LET SELEC = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, ", " a.existencia,a.pto_reorden,a.dia_llegada,a.cod_nab,", " a.bodega,b.unidad_med,a.base ", "FROM istb00002 a, intb00001 b ", "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 ", " a.cod_n = 2 AND ", " a.status_t is NULL AND ",criterio clipped, " ORDER BY 1,2,3,4" END IF DISPLAY "<< Estoy Buscando Los Suministros. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) display "opdeodod" PREPARE busca FROM selec DECLARE accion CURSOR FOR busca OPEN accion DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT maestra TO archivo 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 RUN imprime CLEAR SCREEN END FUNCTION REPORT maestra(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, existencia LIKE istb00002.existencia, pto_reorden LIKE istb00002.pto_reorden, dia_llegada LIKE istb00002.dia_llegada, cod_nab LIKE istb00002.cod_nab, bodega LIKE istb00002.bodega, unidad_med LIKE intb00001.unidad_med, base LIKE istb00002.base, costo LIKE istb00013.costo_st END RECORD DEFINE l SMALLINT DEFINE hora CHAR(5) DEFINE varia CHAR(19) OUTPUT LEFT MARGIN 2 FORMAT PAGE HEADER LET hora = time PRINT COLUMN 1, letras.comp_on PRINT COLUMN 1, "isprrp002", COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 135, "Pag. ", COLUMN 140, pageno using "###" PRINT COLUMN 1, COLUMN 51, "Sistema de Inventario de Suministro", COLUMN 135, today using "dd/mm/yyyy" PRINT COLUMN 1, COLUMN 56, "Catalogo de Suministro", COLUMN 138, hora IF decide = "N" THEN LET varia = "N u m e r i c o" #clipped ELSE LET varia = "A l f a b e t i c o" END IF LET l = (142 - LENGTH(varia)) / 2 PRINT COLUMN l, varia # ESTA LINEA TIENE 50 GUIONES PRINT COLUMN 1, letras.comp_on PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "------------------------------------------" PRINT COLUMN 76, "Punto", COLUMN 93, "Base De", COLUMN 105, "Dia de" PRINT COLUMN 1, "Nivel", COLUMN 15, "Descripcion", COLUMN 59, "Existencia", COLUMN 76, "Reorden ", COLUMN 93, "Cotizacion", COLUMN 105, "Llegada", COLUMN 120, "Arancel", COLUMN 131, "Bodega" # ESTA LINEA TIENE 50 GUIONES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "------------------------------------------" ON EVERY ROW 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 "&&&", COLUMN 15, x.descrip_esp, COLUMN 46, x.unidad_med, COLUMN 53, x.existencia USING "##,###.##", COLUMN 70, x.pto_reorden USING "##,###.##", COLUMN 88, x.base using "##,###,###.##", COLUMN 105, x.dia_llegada USING "###", COLUMN 116, x.cod_nab clipped, COLUMN 135, x.bodega USING "&&" ON LAST ROW SKIP 1 LINE PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####" PRINT COLUMN letras.comp_off END REPORT