{ ------------------------------------------------------------------ PROGRAMA : INPRRP0039 OBJETIVO : Imprimir listado para saber cuantas veces se han contado : los Items por Categoria PROGRAMADOR : Maria Gomez MODIFICADO : FECHA REALIZACION : Agosto 20, 1996. ------------------------------------------------------------------ } globals "inprgb000.4gl" FUNCTION inprrp039() DEFINE p_conteo RECORD cod_n LIKE intb00015.cod_n, cod_grupo LIKE intb00015.cod_grupo, cod_tipo LIKE intb00015.cod_tipo, cod_sec LIKE intb00015.cod_sec, # semana_del LIKE intb00015.semana_del, categoria LIKE intb00014.categoria, descrip_esp LIKE intb00001.descrip_esp, cant SMALLINT END RECORD, i,c,dia,cant1,cant INTEGER DEFINE tipo_papel, numero_msg SMALLINT DEFINE fecha_ini,fecha_fin DATE OPTIONS FORM LINE 9 OPEN FORM infmrp039 FROM "infmrp039" CLEAR SCREEN CALL pantalla() DISPLAY "inprrp039" at 4,3 attribute(yellow) DISPLAY "Conteo por Categoria de Fisico Perpetuo" at 6,18 DISPLAY form infmrp039 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha_ini, fecha_fin AFTER FIELD fecha_ini IF fecha_ini IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_ini END IF BEFORE FIELD fecha_fin LET fecha_fin = today DISPLAY BY NAME fecha_fin AFTER FIELD fecha_fin IF fecha_fin IS NULL THEN LET fecha_fin = today END IF DISPLAY BY NAME fecha_fin IF fecha_ini > fecha_fin THEN LET numero_msg = 51 CALL msg(numero_msg) NEXT FIELD fecha_ini END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF DECLARE curs1 SCROLL CURSOR FOR SELECT a.cod_n,a.cod_tipo,a.cod_grupo,a.cod_sec,b.categoria,f.descrip_esp, COUNT(*) cant FROM intb00015 a, intb00014 b, intb00001 f 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 = f.cod_n AND a.cod_grupo = f.cod_grupo AND a.cod_n = f.cod_n AND a.cod_grupo = f.cod_grupo AND b.cod_tipo = f.cod_tipo AND b.cod_sec = f.cod_sec AND b.cod_tipo = f.cod_tipo AND b.cod_sec = f.cod_sec AND (a.semana_del BETWEEN fecha_ini AND fecha_fin) AND a.status_t IS NULL GROUP BY 1,2,3,4,5,6 ORDER BY 5 DISPLAY "BuscANDo Informacion ... Espere por favor" AT 19,14 ATtribute(reverse,bold) IF STATUS < 0 THEN CALL integridad() IF bANDera = 1 THEN LET bANDera = 0 RETURN END IF END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF START REPORT conteo_f TO "C:\\archivo" DISPLAY " " AT 19,14 DISPLAY "Reporte Generandose ... Por Favor Espere" AT 19,14 ATTRIBUTE(REVERSE) FOREACH curs1 INTO p_conteo.* OUTPUT to REPORT conteo_f(p_conteo.*,fecha_ini,fecha_fin) END FOREACH FINISH REPORT conteo_f RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT conteo_f(x,fecha3,fecha4) DEFINE x RECORD cod_n LIKE intb00015.cod_n, cod_grupo LIKE intb00015.cod_grupo, cod_tipo LIKE intb00015.cod_tipo, cod_sec LIKE intb00015.cod_sec, # semana_del LIKE intb00015.semana_del, categoria LIKE intb00014.categoria, descrip_esp LIKE intb00001.descrip_esp, cant SMALLINT END RECORD DEFINE fecha3, fecha4 date DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(3) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE hora CHAR(5) DEFINE l SMALLINT DEFINE varia CHAR(10) DEFINE imprime CHAR(1) ORDER BY x.categoria,x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec 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 doce = ASCII 27, ASCII 77 LET hora = time LET hora = time LET lj = (78 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, negrillas_on PRINT COLUMN 1, "inprrp039", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 71, "Pag. ",pageno USING "###" PRINT COLUMN 17, "Confirmacion Conteo Fisico Inventario Perpetuo", COLUMN 71, today USING "dd/mm/yyyy" PRINT COLUMN 25, "Del ",fecha3 USING "dd/mm/yyyy", " al ",fecha4 USING "dd/mm/yyyy", COLUMN 74, hora SKIP 1 LINE PRINT COLUMN 1, "__________________________________________________", "____________________________" PRINT COLUMN 2, "Codigo", COLUMN 15, "Descripcion", COLUMN 58, "CANTIDAD" PRINT COLUMN 1, "__________________________________________________", "____________________________" PRINT COLUMN 1, negrillas_off SKIP 1 LINE BEFORE GROUP OF x.categoria SKIP 1 LINE PRINT COLUMN 2,negrillas_on,"Categoria...",x.categoria,negrillas_off SKIP 1 LINE ON EVERY ROW PRINT COLUMN 2,x.cod_n USING "&","-",x.cod_grupo USING "&","-", x.cod_tipo USING "&&","-",x.cod_sec USING "&&&", COLUMN 15, x.descrip_esp, COLUMN 58, x.cant SKIP 1 LINE AFTER GROUP OF x.categoria SKIP 1 LINE PRINT COLUMN 2,negrillas_on,"Total en categoria ", COLUMN 30, GROUP COUNT(*) USING "#####" ON LAST ROW SKIP 1 LINE PRINT COLUMN 2,negrillas_on,"Total registro en general " , COUNT(*) USING "######" , negrillas_off END REPORT #----------------------------------------------------------------------- { FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) LET fecha = today USING "dd/mm/yyyy" LET hora = time DISPLAY p_companias.nombre AT 4,lj ATTRIBUTE (REVERSE,YELLOW) DISPLAY fecha AT 4,70 ATTRIBUTE (YELLOW) DISPLAY "Sistema Inventario de Materia Prima" AT 5,22 DISPLAY hora AT 6,73 ATTRIBUTE(YELLOW) CALL fgl_drawbox(5,79,3,1) CALL fgl_drawbox(1,79,22,1) RUN "type C:\\archivo > %USPRINT%" END FUNCTION } { FUNCTION integridad() IF sqlca.sqlcode < 0 THEN LET numero_msg = sqlca.sqlcode CALL msg(numero_msg) DISPLAY numero_msg AT 23,70 LET bandera = 1 SLEEP 2 RETURN END IF RUN "type C:\\archivo > %USPRINT%" END FUNCTION}