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