{ Esta funcion se utiliza para desplegar mensajes de los reportes de los sistemas de Ray-O-Vac Dominicana. Realizada por JUAN SOTO FECHA : 13/7/2009 } SCHEMA smarmotech 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 END FUNCTION FUNCTION busca_printer(usuarios,clave) DEFINE pcurr,impresor,idx SMALLINT, negrillas_on, negrillas_off, doble_on, doble_off, doce, comp_on, comp_off, normal CHAR(6), archivo CHAR(80), lpprog CHAR(30), lpnum INTEGER, lppipe CHAR(1), imprime CHAR(80) DEFINE dspprt ARRAY[40] OF RECORD nombre CHAR(30), codigo SMALLINT, puerto LIKE prttb00001.puerto, lpprog LIKE prttb00001.lpprog, lppipe LIKE prttb00001.lppipe, prtcodigo LIKE prttb00001.prtcodigo END RECORD, prt RECORD LIKE prttb00001.*, prtcodigo LIKE prttb00001.prtcodigo, usuarios,clave CHAR(8) OPEN WINDOW impresoras AT 10,5 WITH FORM "msgfmrp" ATTRIBUTE (BORDER,FORM LINE FIRST + 1) CONNECT TO "smarmotech" USER usuarios USING clave # BUSCA EL NUMERO DE IMPRESION A SEGUIR SELECT MAX(ult_imp) INTO lpnum FROM prttb00002 IF lpnum IS NULL THEN LET lpnum = 1 END IF DECLARE busca CURSOR FOR SELECT * FROM prttb00001 ORDER BY 1 LET idx = 1 FOREACH busca INTO prt.* LET dspprt[idx].nombre = prt.nombre LET dspprt[idx].codigo = prt.codigo LET dspprt[idx].puerto = prt.puerto LET dspprt[idx].prtcodigo = prt.prtcodigo LET dspprt[idx].lpprog = prt.lpprog LET dspprt[idx].lppipe = prt.lppipe LET idx = idx + 1 END FOREACH CALL set_count(idx-1) DISPLAY ARRAY dspprt TO s_prt.* LET pcurr = arr_curr() LET impresor = dspprt[pcurr].codigo LET prtcodigo = dspprt[pcurr].prtcodigo LET prt.puerto = dspprt[pcurr].puerto LET lpprog = dspprt[pcurr].lpprog LET lppipe = dspprt[pcurr].lppipe CASE WHEN prtcodigo = 1 LET doble_on = ASCII 14 LET doble_off = ASCII 18 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 EXIT CASE WHEN prtcodigo = 2 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 029 EXIT CASE END CASE LET archivo = FGL_GETENV("FGLSPOOL"),"\\",lpnum USING "<<<<<<<<<<" LET imprime = lpprog CLIPPED," ",archivo CLIPPED," ", lppipe," ",prt.puerto {UPDATE prttb00002 set ult_imp = lpnum +1, usuario = suser_sname()} LET lpnum = lpnum + 1 INSERT INTO prttb00002 VALUES (lpnum,SUSER_SNAME(),GETDATE()) CLOSE WINDOW impresoras RETURN imprime,negrillas_on,negrillas_off,doble_on,doble_off,comp_on,comp_off,doce,normal,archivo END FUNCTION FUNCTION defecto(usuarios,clave,impresor) DEFINE impresor,idx SMALLINT, negrillas_on, negrillas_off, doble_on, doble_off, doce, comp_on, comp_off, normal CHAR(6), archivo CHAR(80), lpnum INTEGER, imprime CHAR(150), prt RECORD LIKE prttb00001.*, usuarios,clave CHAR(80),copia CHAR(100) CONNECT TO "smarmotech" USER usuarios USING clave SELECT * INTO prt.* FROM prttb00001 a WHERE codigo = impresor CASE WHEN prt.prtcodigo = 1 LET doble_on = ASCII 14 LET doble_off = ASCII 18 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 EXIT CASE WHEN prt.prtcodigo = 2 {Printer Central. Contabilidad} 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 029 EXIT CASE WHEN impresor = 3 LET doble_on = ASCII 14 LET doble_off = ASCII 18 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 EXIT CASE END CASE # BUSCA EL NUMERO DE IMPRESION A SEGUIR SELECT MAX(ult_imp) INTO lpnum FROM prttb00002 IF lpnum IS NULL THEN LET lpnum = 1 END IF LET lpnum = lpnum + 1 LET archivo = FGL_GETENV("FGLSPOOL"),"\\",lpnum USING "<<<<<<<<<<" LET imprime = prt.lpprog CLIPPED," ",archivo CLIPPED," ", prt.lppipe," ",prt.puerto LET copia = prt.lppipe," ",prt.puerto { UPDATE prttb00002 set ult_imp = lpnum + 1, usuario = suser_sname()} INSERT INTO prttb00002 VALUES (lpnum,suser_sname(),getdate()) RETURN imprime,negrillas_on,negrillas_off,doble_on,doble_off, comp_on,comp_off,doce,normal,archivo,copia END FUNCTION FUNCTION ElijeImpresion(parametro) DEFINE parametro CHAR(2), orden,destino CHAR(1) DEFINE letras RECORD negrillas_on CHAR(6), negrillas_off CHAR(6), doble_on CHAR(6), doble_off CHAR(6), comp_on CHAR(6), comp_off CHAR(6), doce CHAR(6), normal CHAR(6) END RECORD OPEN WINDOW wopcion AT 10,5 WITH FORM "msgfmwd001" ATTRIBUTE (BORDER,FORM LINE FIRST + 1) CASE WHEN parametro = "OD" INPUT BY NAME orden,destino EXIT CASE WHEN parametro = "D" INPUT BY NAME destino EXIT CASE END CASE IF destino = "P" THEN INITIALIZE letras.* TO NULL END IF CLOSE WINDOW wopcion RETURN orden,destino,letras.* END FUNCTION FUNCTION fdestino(p_destino,p_archivo,p_imprime) DEFINE p_destino CHAR(1), p_imprime,ejecuta CHAR(80), p_archivo CHAR(80) CASE WHEN p_destino = "I" DISPLAY P_IMPRIME AT 18,2 RUN p_imprime EXIT CASE WHEN p_destino = "P" LET ejecuta = FGL_GETENV("EDITOR")," ",p_archivo CLIPPED RUN ejecuta EXIT CASE END CASE END FUNCTION