Files
MBS/PROYECTO/vedir/PUNTOVENTAS/veprfu001.4gl
T

118 lines
3.6 KiB
Plaintext

FUNCTION busca_empleado()
DEFINE criterio,selec1 VARCHAR(1000),
buscar_emp DYNAMIC ARRAY OF RECORD
num_emp INT,
departamento SMALLINT,
nivel_emp SMALLINT,
cod_puesto SMALLINT,
nom1_emp VARCHAR(30),
nom2_emp VARCHAR(30),
apell1_emp VARCHAR(30),
apell2_emp VARCHAR(30)
END RECORD,
idx SMALLINT
OPEN WINDOW busqueda AT 7,10 WITH FORM "adfmwd004"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2, comment line last)
CONSTRUCT criterio ON adtb00003.nom1_emp,adtb00003.nom2_emp,
adtb00003.apell1_emp,adtb00003.apell2_emp
FROM nom1_emp,nom2_emp,apell1_emp,apell2_emp
LET selec1 = "SELECT num_emp,departamento,nivel_emp,cod_puesto, ",
"nom1_emp,nom2_emp,apell1_emp,apell2_emp FROM adtb00003 ",
" WHERE ",
" status_t is null AND ",
criterio clipped,
"ORDER BY nom1_emp "
PREPARE busca1 FROM selec1
DECLARE local1 CURSOR FOR busca1
LET idx = 1
FOREACH local1 INTO buscar_emp[idx].*
IF status = NOTFOUND THEN
CALL fgl_winmessage("ERROR","NO EXISTEN REGISTROS","INFO")
EXIT FOREACH
END IF
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
DISPLAY ARRAY buscar_emp TO s_empleado.*
AFTER DISPLAY
LET idx = arr_curr()
EXIT DISPLAY
END DISPLAY
CLOSE WINDOW busqueda
RETURN buscar_emp[idx].num_emp,buscar_emp[idx].nom1_emp,
buscar_emp[idx].nom2_emp,
buscar_emp[idx].apell1_emp,
buscar_emp[idx].apell2_emp
END FUNCTION
FUNCTION busca_articulos(parametro,criterio)
DEFINE criterio,selec1 VARCHAR(500),
parametro CHAR(1),
items DYNAMIC ARRAY OF RECORD
codigo_prod VARCHAR(25),
descripcion VARCHAR(80),
itbis DEC(8,2)
END RECORD,
idx SMALLINT
OPEN WINDOW fx1 AT 7,10 WITH FORM "vefmwd001"
IF parametro = "N" THEN
CONSTRUCT BY NAME criterio ON a.descripcion
LET selec1 =
"SELECT a.* FROM puntoventas.dbo.iptb00002 a WHERE %",criterio CLIPPED, "% and ",
" a.status_t is null "
ELSE
LET selec1=
" SELECT a.descripcion,a.itbis ",
"FROM puntoventas.dbo.iptb00002 a ",
"WHERE CAST(a.id_producto AS VARCHAR(6))+RTRIM(a.descripcion) like %",criterio CLIPPED,"%"
END IF
PREPARE comando FROM selec1
DECLARE busca2 CURSOR FOR comando
LET idx = 1
FOREACH busca2 INTO items[idx].*
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
DISPLAY ARRAY items TO s_tems.*
AFTER DISPLAY
IF INT_FLAG THEN
CALL fgl_winmessage("INFO","OPERACION CANCELADA","INFO")
EXIT DISPLAY
END IF
EXIT DISPLAY
END DISPLAY
IF INT_FLAG THEN
LET INT_FLAG = FALSE
LET items[idx].codigo_prod=NULL
LET items[idx].descripcion=NULL
END IF
RETURN items[idx].codigo_prod,items[idx].descripcion,items[idx].itbis
CLOSE WINDOW fx1
END FUNCTION
FUNCTION err_mensajes(num_msg)
DEFINE num_msg INT,
descripcion CHAR(60)
SELECT a.desc_msg INTO descripcion
FROM msgtable a
WHERE a.cod_msg = num_msg
IF STATUS = NOTFOUND THEN
LET descripcion = num_msg USING "--###","MENSAJE NO EXISTE"
CALL fgl_winmessage("ERROR",descripcion,"INFO")
RETURN
ELSE
CALL fgl_winmessage("ERROR",descripcion,"INFO")
RETURN
END IF
END FUNCTION