118 lines
3.6 KiB
Plaintext
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 |