Files
MBS/PROYECTOS/ipdir - 21102021/msgrp000.4gl
T

462 lines
8.8 KiB
Plaintext

{
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 "<Esc> Ejecuta impresion <Delete> 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