Vamos a empezar a utilizar nuestra agenda: buscar los datos que nos interesen...
Para ello vamos a utilizar el TextBoxBuscar donde introducimos las palabras (hasta 3) (completas o no) , separadas por comas. Ejemplo: “Sev,954,43”, buscara todas los registros que contengan la parte de la palabra “Sev”, como “
sevilla”,”951
954 953” y “942 485
43”, sin importar el orden como aparezcan.
PUBLIC SUB TextBoxBuscar_KeyPress()
IF Key.
code = Key.
enter OR Key.
code = Key.
Return THEN
y el boton ButtonBuscar, que es el que contendra la llamada al procedimiento de busqueda en el modulo
Filtrar.
PUBLIC SUB ButtonBuscar_Click()
DIM patrones
AS NEW String[] DIM numero_patrones
AS Integer patrones
= Split(Upper$(TextBoxBuscar.
text), ",") numero_patrones
= patrones.
COUNT IF numero_patrones
= 0 THEN IF numero_patrones
= 1 THEN
IF numero_patrones
= 2 THEN IF numero_patrones >
3 THEN Message.
Info(
"solo se admiten 3 patrones de busqueda como maximo")
resultado
= filtrar.
ConceptoFiltro(patrones[
0], patrones[
1], patrones[
2])
gridViewDatos.
Background = Color.
cyan GridViewDatos.
Background = Color.
WhiteComo veis cada vez que se devuelva el RESULTADO=1, el gridviewDatos cambiara a color cyan, para dem
ostrar que solo vemos los datos que contienen el filtro. Para anular este filtro crearemos un boton que haga borrar el filtro y vuelva el color blanco al gridviewDatos.
PUBLIC SUB ToolButtonCancelarFiltro_Click()
Tambien podemos utilizar la propiedad “ToolTip” para indicar al usuario que hace dicho boton (cuando pasamos por encima del boton salda un mensaje en amarillo)
En el IDE de Gambas, buscamos la propiedad ToolTip del boton ToolbuttonCancelarFiltro y escribios ”Cancelar Filtro”
Por otro lado en el módulo
filtro crearemos dos subrutinas, las verdaderas responsables de hallar los parecidos y rellenar el gridViewDatos
PUBLIC FUNCTION ConceptoFiltro(patron
AS String,
OPTIONAL patron1
AS String, OPTIONAL patron2
AS String) AS Integer fmain.
GridViewDatos.
Rows.
COUNT = 0 numero
= 0 'contador de filas validas (sin estar borradas) IF patron
= "*" OR patron
= "" THEN IF patron1
= "" THEN patron1
= " " IF patron2
= "" THEN patron2
= " " FOR a
= 0 TO var.
id.
COUNT - 1 lineas
&= var.
apellidos[a]
lineas
&= var.
telf_empresa[a]
lineas
&= var.
telf_parti[a]
lineas
&= var.
movil_empresa[a]
lineas
&= var.
movil_parti[a]
lineas
&= var.
direccion[a]
lineas
&= var.
observaciones[a]
lineas
&= var.
fecha_datos[a]
validar
= dentro(lineas, patron)
AND dentro(lineas, patron1
) AND dentro(lineas, patron2
) FMain.
GridViewDatos.
Rows.
COUNT = numero
.
GridViewDatos[numero
- 1,
0].
Picture = Picture[var.
foto[a]]
.
GridViewDatos[numero
- 1,
1].
text = var.
nombre[a]
.
GridViewDatos[numero
- 1,
2].
text = var.
apellidos[a]
.
GridViewDatos[numero
- 1,
3].
text = var.
dni[a]
.
GridViewDatos[numero
- 1,
4].
text = var.
empresa[a]
.
GridViewDatos[numero
- 1,
5].
text = var.
puesto[a]
.
GridViewDatos[numero
- 1,
6].
text = var.
telf_empresa[a]
.
GridViewDatos[numero
- 1,
7].
text = var.
movil_empresa[a]
.
GridViewDatos[numero
- 1,
8].
text = var.
telf_parti[a]
.
GridViewDatos[numero
- 1,
9].
text = var.
movil_parti[a]
.
GridViewDatos[numero
- 1,
10].
text = var.
fax[a]
.
GridViewDatos[numero
- 1,
11].
text = var.
correo[a]
.
GridViewDatos[numero
- 1,
12].
text = var.
pag[a]
.
GridViewDatos[numero
- 1,
13].
text = var.
direccion[a]
.
GridViewDatos[numero
- 1,
14].
text = var.
observaciones[a]
.
GridViewDatos[numero
- 1,
15].
text = var.
fecha_datos[a]
.
GridViewDatos[numero
- 1,
16].
text = var.
id[a]
'SE HA ENCONTRADO PARECIDOS '----------------------------------------------------- '----------------------------------------------------- SUB dentro(frase
AS String, patron
AS String) AS Boolean RETURN InStr(frase, patron
) La funcion dentro() con la InStrucción
InSr devuelve si la frase contiene el patron (true o false)
No hay comentarios:
Publicar un comentario