Formulario para implementar búsquedas en catálogos
Biblioteca desarrollada en VB.NET,
con ejemplos de uso en VB.NET y C#

Fecha: 01/Mar/2005 (01 de Marzo de 2005)
Autor: Alma Yolanda Díaz Valdez

 


Cuando diseñamos formularios para captura de información, un control que utilizamos comúnmente es el ComboBox; el cual es utilizado para que el usuario pueda seleccionar un elemento de un catálogo.

El uso de este método puede provocar que los formularios sean un poco lentos al mostrarse, claro esto sucede si manejas varios ComboBoxes que se alimentan de diferentes catálogos del sistema.

Este artículo tiene como objetivo proporcionarte otra alternativa para implementar búsquedas a catálogos, en una captura, mediante la integración de un formulario estándar. El cual te proporciona dos alternativas de búsqueda la normal y por filtro.

Si te preguntas ¿Cómo?, bueno vamos a empezar...

Esta biblioteca te permitirá integrar a tus aplicaciones, windows, búsquedas a catálogos de una manera muy simple.

Características:

  • Soporta acceso a bases de datos de Microsoft SQL Server y base de datos que usen el proveedor de datos OLEDB.
  • Proporciona un tipo de búsqueda normal, donde muestra todos los elementos recuperados donde podrá realizar la búsqueda.
  • Proporciona un tipo de búsqueda con filtro, donde el usuario debe proporcionar el dato que debe cumplir con el criterio ('?').
  • Al seleccionar un elemento regresa la clave del elemento y la columna de búsqueda.
  • Indica si el usuario seleccionó o no algún elemento.
  • Indica si el usuario desea registrar un nuevo elemento.
  • El usuario sólo tendrá que agregar la Referencia a la Biblioteca_VydA.dll, debe presionar el botón Examinar para buscar la dll, una vez localizada la dll deberá seleccionarla y aparecerá como se muestra en la siguiente imagen.



    Y te dirás ahhh, que chiste, y el código... Pues ese también forma parte del contenido de este artículo.

    Una vez que agregas la referencia, debes ir al formulario donde desees integrar esta característica y declarar el siguiente espacio de nombre:



    A continuación se mostrarán ejemplos de código utilizado para mostrar los dos tipos de ayudas que proporciona la biblioteca.

    Ejemplos de uso de la búsqueda normal:

    Este tipo de búsqueda muestra todos los registros recuperados por la clausula SELECT; la cual es usada por el método Mostrar_Ayuda, por ejemplo:

    ls_SQL = "SELECT Estado, cve_estado as Clave FROM cat_estados ORDER BY estado"

    En este tipo de búsqueda, al mandar llamar el método Mostrar_Ayuda, muestra todos los registros de la tabla cat_estados que cumplan con la sentencia SELECT proporcionada.

    Es importante aclarar que la primer columna que regresa la instrucción SELECT, o sea "Estado" en este caso, será utilizada para la búsqueda en la lista de elementos

    IMPORTANTE:Para el buen funcionamiento de este tipo de ayuda, en el SELECT, debes indicar una claúsula ORDER BY en la cual proporciones el nombre de la primer columna del SELECT. El objetivo es que los datos estén ordenados al momento de realizar la búsqueda.

    Una vez que se despliega la ventana de búsqueda se muestra una lista con los elementos recuperados, y al proporcionar partes del dato que desees localizar en la lista de elementos se irá seleccionando automáticamente el elemento que más concuerde con el dato proporcionado.
    Al encontrar el elemento deseado debes presionar el botón Seleccionar el cual se activa al seleccionar un elemento en la lista.




    Código que muestra como usar la ventana de búsqueda normal



    Ejemplos de uso de la búsqueda con filtro:

    Este tipo de búsqueda muestra los registros que cumplan con el criterio LIKE proporcionado en la clausula SELECT; la cual es usada por el formulario al momento de presionar el botón Buscar, por ejemplo:



    Además de proporcionar un SELECT con criterio debes indicarle a la clase que vas a utilizar la búsqueda con filtro, para eso deberás proporcionar a la propiedad Utiliza_Filtro un valor de true. Ejemplo:



    A diferencia de la búsqueda normal, la búsqueda con filtro no muestra información al desplegarse, la información se muestra una vez que el usuario proporciona el Criterio de búsqueda y presiona el botón de Buscar. Ejemplos de criterios proporcionados por el usuario:

    Criterio de búsqueda
    proporcionado
    Descripción SQL utilizado
    para la búsqueda
    table

    %table%
    Una vez proporcionado el criterio, en el formulario, se presiona el botón de Buscar, en ese momento el formulario toma el SELECT y remplaza el caracter '?' por el criterio proporcionado por el usuario, ejemplo '%table%', y busca todos los registros en donde la columna contenga la palabra table en cual cualquier posición de la cadena. Original:
    SELECT name AS Nombre, ID FROM sysobjects
    WHERE name LIKE '?'


    Utiliza para búsqueda:
    SELECT name AS Nombre, ID FROM sysobjects
    WHERE name LIKE '%table%'
    %table Una vez proporcionado el criterio, en el formulario, se presiona el botón de Buscar, en ese momento el formulario toma el SELECT y remplaza el caracter '?' por el criterio proporcionado por el usuario, ejemplo '%table', y busca todos los registros en donde la última palabra de la columna sea table. Original:
    SELECT name AS Nombre, ID FROM sysobjects
    WHERE name LIKE '?'


    Utiliza para búsqueda:
    SELECT name AS Nombre, ID FROM sysobjects
    WHERE name LIKE '%table'
    table% Una vez proporcionado el criterio, en el formulario, se presiona el botón de Buscar, en ese momento el formulario toma el SELECT y remplaza el caracter '?' por el criterio proporcionado por el usuario, ejemplo 'table%', y busca todos los registros en donde la primera palabra de la columna sea table. Original:
    SELECT name AS Nombre, ID FROM sysobjects
    WHERE name LIKE '?'


    Utiliza para búsqueda:
    SELECT name AS Nombre, ID FROM sysobjects
    WHERE name LIKE 'table%'

    IMPORTANTE:Para el buen funcionamiento de este tipo de ayuda, en el SELECT, debes indicar una claúsula ORDER BY en la cual proporciones el nombre de la primer columna del SELECT. El objetivo es que los datos estén ordenados al momento de desplegar los elementos.

    Al encontrar el elemento deseado debes presionar el botón Seleccionar el cual se activa al seleccionar un elemento en la lista.




    Código que muestra como usar la ventana de búsqueda con filtro



    Explicación de las propiedades de la clase:

    Propiedades Operación
    E/S
    Descripción Ejemplo
    Titulo E Texto que aparecerá en la barra de títulos del formulario lo_Catalogos.Titulo = "Catálogo de estados"
    NombreColumna_Clave E Indica, al formulario de ayuda, el nombre de la columna que regresará al seleccionar un elemento del catálogo lo_Catalogos.NombreColumna_Clave = "Clave"
    NombreColumna_Busqueda E Indica, al formulario de ayuda, el nombre de la columna de descripción que regresará al seleccionar un elemento del catálogo lo_Catalogos.NombreColumna_Busqueda = "Estado"
    Muestra_Boton_Nuevo E/S Muestra en el formulario de ayuda el botón , en caso de que el usuario seleccione el botón nuevo en la ventana de ayuda, en esta misma propiedad se puede determinar si el usuario presionó o no el botón. Esta propiedad debe verificarse al momento de que el método Mostrar_Ayuda regresa un falso esto indica que el usuario no seleccionó ningún elemento lo_Catalogos.Muestra_Boton_Nuevo = True
    Clave_Seleccionada S Regresa el contenido de la columna indicada en la propiedad NombreColumna_Clave cuando el usuario selecciona un elemento en el formulario de búsqueda txtCve_Estado.Text = lo_Catalogos.Clave_Seleccionada
    Descripcion_Seleccionada S Regresa el contenido de la columna indicada en la propiedad NombreColumna_Clave cuando el usuario selecciona un elemento en el formulario de búsqueda txtEstado.Text = lo_Catalogos.Descripcion_Seleccionada
    Utiliza_Filtro E Muestra el formulario de ayuda con filtro, pero esta propiedad es el complemento de la sentencia SQL, en la opción WHERE el usuario debe indicar la columna que definirá el criterio de búsqueda, ejemplo: lo_Catalogos.Utiliza_Filtro = True

    Explicación de los métodos de la clase:

    Métodos Descripción
    Mostrar_Ayuda Método que muesta el formulario de búsqueda. Recibe tres parámetros y retorna verdadero cuando el usuario selecciona un elemento o falso en caso de que el usuario seleccione el botón de Nuevo o cierre el formulario
  • El proveedor de datos a usar: OLEDB o SQLClient
  • La cadena de conexión a la base de datos
  • La instrucción SELECT utilizada para extraer los datos de la base de datos.
    En el caso de utilizar la ayuda normal, la primera columna, del SELECT, será utilizada para realizar la búsqueda.
  • Recuperar_DataTable Método que recupera el contenido de una consulta SELECT en un DataTable.
    Recibe cinco parámetros y retorna verdadero en caso de que recupere información y falso en caso de que se presente un error o no recupere información
  • El proveedor de datos a usar: OLEDB o SQLClient
  • La cadena de conexión a la base de datos
  • La instrucción SELECT utilizada para extraer los datos de la base de datos
  • El DataTable donde dejará el resultado de la claúsula SELECT
  • En caso de que se presente un error en este parametro regresa la descripción del error

  • Espero que este artículo les sea de utilidad; por favor colabora conmigo votando por este artículo.

    Gracias... ;)


    Fichero con código de ejemplo VB.NET : AYDV_BuscarEnCatalogos_CodigoEjemploVB.zip - Tamaño 76

    Fichero con código de ejemplo C# : AYDV_BuscarEnCatalogos_CodigoEjemploCSharp.zip - Tamaño 77

    Fichero con el código de la biblioteca: AYDV_BuscarEnCatalogos_Biblioteca.zip - Tamaño 13KB


    ir al índice