{ ------------------------------------------------------------------------------- PROGRAMA : EDPRRP033 OBJETIVO : Consumo de Repuestos del Tool Room PROGRAMADOR : Juan F. Soto FECHA REALIZACION : Junio 13, 1996. ------------------------------------------------------------------------------- } DATABASE rayovac GLOBALS DEFINE p_ano,cuenta1,p,cuenta,regi,numero_msg,idx_ac,ano,idx_a,idx_c SMALLINT, fecha_2 CHAR(8), detalle CHAR(30), p_fecha,fecha1, fecha2 DATE , entra CHAR(14), entra1 CHAR(5), tipo_papel SMALLINT, opt1,salir,opt,afecta,p_param CHAR(1), descrip_cta CHAR(40), nombre_v CHAR(20), p_cuenta INTEGER, prt_control CHAR(13), criterio CHAR(400) DEFINE movimiento RECORD cta_debito LIKE irtb00005.cuenta_1, cta_credito LIKE irtb00005.cuenta_2, departamento LIKE irtb00005.cuenta_3, cantidad DECIMAL(12,2) END RECORD DEFINE datos_cons RECORD fech_in DATE, fech_fi DATE END RECORD END GLOBALS MAIN DEFER INTERRUPT CALL irprrp009() CALL edprrp033() END MAIN FUNCTION edprrp033() DEFINE selec1 CHAR(1000) DEFINE prt RECORD debito LIKE irtb00005.cuenta_1, credito LIKE irtb00005.cuenta_2, departamento LIKE irtb00005.cuenta_3, valor DECIMAL(12,2) END RECORD OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21, PROMPT LINE 14 ##### Abriendo y desplegando el formulario de captura de datos OPEN FORM edfmrp033 FROM "edfmrp033" DISPLAY FORM edfmrp033 CALL pantalla() DISPLAY "edprrp033" AT 4,3 DISPLAY "Consumo Repuesto del Tool Room " AT 6,22 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ###### Aceptando los valores para el rango de fecha INPUT BY NAME entra,fecha1,fecha2,afecta,detalle WITHOUT DEFAULTS AFTER FIELD entra IF entra IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD entra END IF SELECT unique ref FROM cgtb00004 WHERE ref = entra IF STATUS != NOTFOUND THEN LET numero_msg = 2 CALL msg(numero_msg) #NEXT FIELD entra END IF LET entra1 = entra BEFORE FIELD fecha1 SELECT MAX(fecha) INTO p_fecha FROM cgtb00004 WHERE ref[1,5] = entra1 IF p_fecha is not null THEN LET fecha1 = p_fecha + 1 DISPLAY BY NAME fecha1 END IF AFTER FIELD fecha1 IF fecha1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) # NEXT FIELD fecha1 END IF IF fecha1 <= p_fecha THEN LET numero_msg = 179 CALL msg(numero_msg) # NEXT FIELD fecha1 END IF AFTER FIELD fecha2 IF fecha2 is null THEN LET numero_msg = 16 CALL msg(numero_msg) #NEXT FIELD fecha2 END IF IF fecha1 > fecha2 THEN LET numero_msg = 149 CALL msg(numero_msg) # NEXT FIELD fecha1 END IF ###### Selecionando en rango de fecha de la tabla de periodo para el fecha2 SELECT UNIQUE ref FROM cgtb00004 where ref = entra IF STATUS != NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) # NEXT FIELD fecha2 END IF END INPUT ##### Creando la facilidad para cancelar proceso con DELETE O SUPR IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca la informacion requerida DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) LET p_ano = YEAR(fecha2) LET selec1 = "SELECT d.cuenta_1,d.cuenta_2,d.cuenta_3,SUM(c.cantidad_2*e.costo_st),", "MAX(e.mes_ini) ", "FROM irtb00006 c, irtb00005 d, irtb00013 e ", "WHERE (c.cod_mov = d.cod_mov) AND ", " (d.cuenta_1 IS NOT NULL OR ", " d.cuenta_2 IS NOT NULL OR ", " d.cuenta_3 IS NOT NULL) AND ", " (c.cod_n = e.cod_n AND ", " c.cod_grupo = e.cod_grupo AND ", " c.cod_tipo = e.cod_tipo AND ",criterio clipped, " AND c.cod_sec = e.cod_sec) AND ", " (e.ano = ? AND e.mes_fin = 12) AND ", " c.fecha BETWEEN ? AND ? AND ", " c.status_t IS NULL ", " GROUP BY 1,2,3 " PREPARE comando20 FROM selec1 DECLARE busca CURSOR FOR comando20 OPEN busca USING p_ano,fecha1,fecha2 DISPLAY " " AT 19,14 ##### Envia la Informacion al printer de contabilidad ##### Loop para enviar informacion al reporte START REPORT opera1 TO PIPE prt_control DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) WHILE status != notfound FETCH busca INTO movimiento.* 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 LET prt.valor = movimiento.cantidad LET prt.debito = movimiento.cta_debito LET prt.credito = movimiento.cta_credito LET prt.departamento = movimiento.departamento OUTPUT TO REPORT opera1(prt.*) IF status = notfound THEN LET status = 0 END IF END WHILE FINISH REPORT opera1 RUN "type C:\\archivo > %USPRINT%" END FUNCTION #### Funcion para dar salida ordenada a la informacion requerida de #### una entrada de diario de nominas local { Esta funcion se utiliza para desplegar mensajes de los reportes de los sistemas de Ray-O-Vac Dominicana. Realizada por Lic. Abner Montalvo y Johnny Soto Agosto 21, 1992 } FUNCTION msgrp000(tipo_papel) DEFINE tipo_papel SMALLINT, longitud CHAR(11), linea_papel CHAR(50) CASE WHEN tipo_papel = 1 LET longitud = " 9 1/2 x 11" WHEN tipo_papel = 2 LET longitud = "14 7/8 x 11" END CASE LET linea_papel = "Coloque papel ",longitud," en la impresora." DISPLAY linea_papel AT 15,14 DISPLAY "Asegurese de que la impresora este encendida." AT 16,14 DISPLAY " Ejecuta impresion Cancela impresion" AT 18,14 RUN "type C:\\archivo > %USPRINT%" END FUNCTION FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) LET fecha = today USING "dd/mm/yy" LET hora = time DISPLAY "R A Y . O . V A C D O M I N I C A N A, S. A." AT 4,17 ATTRIBUTE (REVERSE,YELLOW) DISPLAY fecha AT 4,70 ATTRIBUTE (YELLOW) DISPLAY "Sistema de Contabilidad General" AT 5,24 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 REPORT opera1(x) DEFINE x RECORD debito LIKE irtb00005.cuenta_1, credito LIKE irtb00005.cuenta_2, departamento LIKE irtb00005.cuenta_3, valor DECIMAL(12,2) END RECORD DEFINE doble_on CHAR(3), doble_off CHAR(3), negrillas_on CHAR(6), negrillas_off CHAR(6), comp_on CHAR(3), comp_off CHAR(3) , doce CHAR(3), normal CHAR(2) , hora CHAR(5), tvalor DECIMAL(14,3), depto1 LIKE irtb00005.cuenta_3 OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 FORMAT PAGE HEADER IF opt = "2" THEN LET doble_on = ASCII 001 LET doble_off = ASCII 002 LET negrillas_on = ASCII 027, ASCII 098 LET negrillas_off = ASCII 027, ASCII 099 LET comp_on = ASCII 031 LET comp_off = ASCII 029 LET doce = ASCII 030 LET normal = ASCII 27, ASCII 80 ELSE 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 END IF LET hora = time PRINT COLUMN 1, comp_off,"edprrp033", COLUMN 23, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 80, "Pag. ",pageno using "###" PRINT COLUMN 35, "Sistema de Contabilidad", COLUMN 80, today using "dd/mm/yy" PRINT COLUMN 29, "Consumo de Repuesto del Tool Room", COLUMN 83, hora PRINT COLUMN 34, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2 USING "dd/mm/yy" PRINT doce SKIP 1 LINES PRINT COLUMN 01,"Entrada de Diario No.", doble_on,entra,doble_off PRINT COLUMN 1,"Observaciones: _____________________________________" PRINT COLUMN 1," _____________________________________" PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------------", negrillas_on PRINT COLUMN 2, "Cuenta ", COLUMN 11, "Dpto", COLUMN 18, "Concepto", COLUMN 60, "Debe", COLUMN 74, "Haber",negrillas_off PRINT COLUMN 1, "--------------------------------------------------", "----------------------------------------" IF tvalor IS NULL THEN LET tvalor = 0 END IF ON EVERY ROW IF x.valor < 0 THEN LET x.valor = x.valor * -1 END IF LET depto1 = null SELECT a.descripcion INTO descrip_cta FROM cgtb00001 a WHERE a.cuenta_no = x.debito PRINT COLUMN 2, x.debito; SELECT a.depto FROM cgtb00001 a WHERE a.cuenta_no = x.debito and a.depto = "S" IF STATUS != NOTFOUND THEN LET depto1 = x.departamento PRINT COLUMN 10, depto1; LET STATUS = 0 END IF PRINT COLUMN 18, descrip_cta clipped, COLUMN 50, x.valor using "###,###,##&.&&" IF afecta = "S" THEN INSERT INTO cgtb00004 VALUES (fecha2,1,entra,x.debito,depto1,null,null,null,null, detalle,null,x.valor ,0,null,user,current,null,null) END IF LET depto1 = null SELECT a.descripcion INTO descrip_cta FROM cgtb00001 a WHERE a.cuenta_no = x.credito PRINT COLUMN 2, x.credito; SELECT a.depto FROM cgtb00001 a WHERE a.cuenta_no = x.credito and a.depto = "S" IF STATUS != NOTFOUND THEN LET depto1 = x.departamento PRINT COLUMN 10, depto1; LET STATUS = 0 END IF PRINT COLUMN 18, descrip_cta, COLUMN 65, x.valor using "###,###,##&.&&" IF afecta = "S" THEN INSERT INTO cgtb00004 VALUES (fecha2,1,entra,x.credito,depto1,null,null,null, null,detalle,null,0,x.valor,null,user,current, null,null) END IF LET tvalor = tvalor + x.valor PRINT COLUMN 18, "-------------- o ----------------" ON LAST ROW PRINT COLUMN 1,negrillas_on PRINT COLUMN 50,"--------------", COLUMN 65,"--------------" PRINT COLUMN 35,"Totales-->", COLUMN 50,tvalor USING "###,###,##&.&&", COLUMN 65,tvalor USING "###,###,##&.&&",negrillas_off LET tvalor = 0 SKIP 2 LINE PRINT COLUMN 1, detalle PRINT COLUMN 1,comp_off,negrillas_off SKIP 4 LINE END REPORT { Esta funcion se utiliza para desplegar mensajes de errores en todos los sistemas de Ray-O-Vac Dominicana. Esta funcion busca el mensaje deseado en la tabla "msgtable" y lo despliega en la linea de mensajes } FUNCTION msg(numero_msg) DEFINE numero_msg SMALLINT DEFINE descripcion CHAR (60) SELECT desc_msg INTO descripcion FROM msgtable WHERE cod_msg = numero_msg IF status = NOTFOUND THEN LET numero_msg = 22 SELECT desc_msg INTO descripcion FROM msgtable WHERE cod_msg = numero_msg ERROR descripcion ATTRIBUTE(BOLD) ELSE ERROR descripcion ATTRIBUTE(BOLD) LET numero_msg = 0 END IF RUN "type C:\\archivo > %USPRINT%" END FUNCTION { ------------------------------------------------------------------------------- PROGRAMA : IRPRRP009 OBJETIVO : Operacion por Tipo de Movimiento PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Febrero 25, 1993 ------------------------------------------------------------------------------- } FUNCTION irprrp009() DEFINE salir1,salir CHAR(1) DEFINE select_ac,select_ant,select_p CHAR(1000) DEFINE p_mes,idx_ac,ano,idx_a,idx_c SMALLINT DEFINE ano_act,c_ano CHAR(4) DEFINE fecha_2 CHAR(8) DEFINE fecha_ini_per CHAR(8) DEFINE acumulado_a RECORD cod_mov LIKE intb00005.cod_mov, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_Sec SMALLINT, consumo LIKE irtb00006.cantidad_2 END RECORD DEFINE acumulado_ac RECORD cod_mov LIKE intb00005.cod_mov, cod_n SMALLINT, cod_grupo SMALLINT, cod_Tipo SMALLINT, cod_Sec SMALLINT, consumo decimal(12,2), cantidad LIKE vetb00014.cantidad END RECORD DEFINE costos RECORD cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_Sec SMALLINT, mes CHAR(2), gasto_ind DECIMAL(12,2) END RECORD DEFINE acumulado RECORD cod_n LIKE intb00001.cod_n, cod_grupo LIKE intb00001.cod_grupo, cod_tipo LIKE intb00001.cod_tipo, cod_sec LIKE intb00001.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, cod_mov LIKE irtb00006.cod_mov, descrip_mov LIKE intb00005.descrip_mov, consumo DECIMAL(12,2), gasto_ind DECIMAL(12,2) END RECORD OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21, PROMPT LINE 14 OPEN FORM irfmrp009 FROM "irfmrp009" DISPLAY FORM irfmrp009 CALL pantalla() DISPLAY "irprrp009" AT 4,3 DISPLAY "Operacion Por Tipo Movimiento " AT 6,25 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME c_ano,p_mes SELECT @fecha_inicio,@fecha_corte INTO datos_cons.fech_in,datos_cons.fech_fi FROM prdtable WHERE @ano = c_ano and @mes = p_mes IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET fecha1 = datos_cons.fech_in LET fecha2 = datos_cons.fech_fi CONSTRUCT criterio ON c.cod_mov,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec FROM cod_mov,cod_n,cod_grupo,cod_tipo,cod_sec IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LABEL vuelve: PROMPT "(1) Epson LQ-1070 (2) Unisys AP1324 " FOR CHAR opt IF opt != "1" AND opt != "2" THEN LET numero_msg = -1301 CALL msg(numero_msg) GOTO vuelve END IF IF opt = "1" THEN LET prt_control = "lp -dlpt12" ELSE LET prt_control = "lp -dcentral" END IF LET select_ac = "SELECT c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,a.descrip_esp, ", " a.unidad_med,c.cod_mov,b.descrip_mov,SUM(c.cantidad_2) ", "FROM intb00001 a,irtb00005 b,irtb00006 c ", "WHERE (", criterio clipped," and a.cod_n = c.cod_n and ", " a.cod_grupo = c.cod_grupo and a.cod_tipo = c.cod_tipo and ", " a.cod_sec = c.cod_sec) and (b.cod_mov = c.cod_mov) and ", " (c.fecha between ? and ?) and c.status_t is null ", "GROUP BY 1,2,3,4,5,6,7,8 ORDER BY 7,1,2,3,4" LET p_param = "S" DISPLAY "<< Estoy Buscando Acumulado Del Periodo Dado >>" AT 17,14 ATTRIBUTE (REVERSE,BOLD) PREPARE busca_ant FROM select_ac DECLARE actual SCROLL CURSOR FOR busca_ant OPEN actual USING datos_cons.fech_in,datos_cons.fech_fi LET p_cuenta = 0 FOREACH actual INTO acumulado.* LET p_cuenta = p_cuenta + 1 END FOREACH LET regi = p_cuenta + 1 START REPORT opera TO PIPE prt_control FOREACH actual INTO acumulado.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET acumulado.gasto_ind = 0 SELECT a.costo_st INTO acumulado.gasto_ind FROM irtb00013 a WHERE (a.cod_n = acumulado.cod_n and a.cod_grupo = acumulado.cod_grupo and a.cod_tipo = acumulado.cod_tipo and a.cod_sec=acumulado.cod_sec) and (a.mes_ini <= p_mes) and a.mes_fin >= p_mes and a.ano = c_ano and a.status_t is null IF acumulado.gasto_ind IS NULL THEN LET acumulado.gasto_ind = 0 END IF CALL termometro(regi,p_param) LET p_param = "N" OUTPUT TO REPORT opera(acumulado.*) END FOREACH FINISH REPORT opera CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT opera(x) DEFINE x RECORD cod_n LIKE intb00001.cod_n, cod_grupo LIKE intb00001.cod_grupo, cod_tipo LIKE intb00001.cod_tipo, cod_sec LIKE intb00001.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, cod_mov LIKE irtb00006.cod_mov, descrip_mov LIKE intb00005.descrip_mov, consumo DECIMAL(12,2), gasto_ind DECIMAL(12,2) END RECORD DEFINE l SMALLINT DEFINE c_ano1 char(4) DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(6) DEFINE negrillas_off CHAR(6) DEFINE comp_on CHAR(3) DEFINE comp_off CHAR(2) DEFINE doce CHAR(3) DEFINE normal CHAR(2) DEFINE hora CHAR(5) DEFINE total_p,total_m DECIMAL(12,2) DEFINE total_material,total_labor,total_gasto_ind,t_t_total,t_t_t_total, t_total_material,t_total_labor,t_total_gasto_ind,t_cantidad DECIMAL (12,2) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 # ORDER BY x.cod_mov,x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec FORMAT PAGE HEADER IF opt = "2" THEN LET doble_on = ASCII 001 LET doble_off = ASCII 002 LET negrillas_on = ASCII 027, ASCII 098 LET negrillas_off = ASCII 027, ASCII 099 LET comp_on = ASCII 031 LET comp_off = ASCII 029 LET doce = ASCII 031 #LET doce = ASCII 030 LET normal = ASCII 27, ASCII 80 ELSE 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 END IF LET hora = time PRINT COLUMN 1, doce PRINT COLUMN 1, "edprrp033", COLUMN 27, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 93, "Pag. ",pageno using "###" PRINT COLUMN 27, " Sistema de Contabilidad General ", COLUMN 93, today using "dd/mm/yy" PRINT COLUMN 27, " Consumo de Repuesto del Tool Room", COLUMN 96, hora SKIP 1 LINES PRINT COLUMN 1, "Desde ",datos_cons.fech_in using "dd/mm/yy", " Hasta ", datos_cons.fech_fi using "dd/mm/yy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 1, "Articulo", COLUMN 65, "Cantidad", COLUMN 80, "Costo", COLUMN 96, "Total" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" BEFORE GROUP OF x.cod_mov PRINT COLUMN 1, x.cod_mov using "&&"," ",x.descrip_mov SKIP 1 LINE PRINT COLUMN 4, "Productos " ON EVERY ROW IF x.consumo < 0 THEN LET x.consumo = x.consumo * -1 END IF IF x.consumo is null THEN LET x.consumo = 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, COLUMN 53, x.unidad_med CLIPPED, COLUMN 60, x.consumo USING "###,###.##", COLUMN 70, x.gasto_ind using "#,###,###.##", COLUMN 85, x.consumo * x.gasto_ind using "(((,(((,((#.##" AFTER GROUP OF x.cod_mov PRINT negrillas_on PRINT COLUMN 85, "----------------" PRINT COLUMN 3, "Total Mvto. ---->", COLUMN 85,GROUP SUM(x.consumo*x.gasto_ind) USING "###,###,###.##" PRINT COLUMN 85, "================" PRINT negrillas_off SKIP TO TOP OF PAGE ON LAST ROW PRINT negrillas_on PRINT COLUMN 85, "----------------" PRINT COLUMN 3, "Total Gral. ---->", COLUMN 85,SUM(x.consumo*x.gasto_ind) USING "###,###,###.##" PRINT COLUMN 85, "================" PRINT negrillas_off LET total_material = 0 PRINT COLUMN 1, comp_on END REPORT { ============================================================================ PROGRAMA : TERMOMETRO OBJETIVO : DESPLEGAR TERMOMETRO PORCENTUAL PARA LOS REPORTES PROGRAMADOR : JUAN F. SOTO FECHA : MARZO 10, 1995 ============================================================================ } FUNCTION termometro(registros,primera) DEFINE registros INTEGER DEFINE i,veces SMALLINT DEFINE porcentaje,vez DECIMAL(8,2) DEFINE primera CHAR(1) IF primera = "S" THEN LET primera = "N" LET p = 27 CALL fgl_drawbox(3,8,19,18) CALL fgl_drawbox(3,35,19,26) IF registros <= 33 THEN FOR i = 1 TO 33 LET cuenta1 = 1 DISPLAY " " AT 20,p ATTRIBUTE(REVERSE,BOLD) LET p = p + 1 END FOR END IF END IF IF registros > 33 THEN LET vez = registros / 33 LET veces = vez USING "#####" IF cuenta >= veces THEN LET cuenta = 0 IF p <= 58 THEN DISPLAY " " AT 20,p ATTRIBUTE(REVERSE,BOLD) END IF LET p = p + 1 END IF LET porcentaje = (cuenta1/registros) * 100 DISPLAY porcentaje using "###","%" AT 20,19 ATTRIBUTE(BOLD) LET cuenta = cuenta + 1 LET cuenta1 = cuenta1 + 1 END IF RUN "type C:\\archivo > %USPRINT%" END FUNCTION