Búsquedas rápidas


Las búsquedas rápidas van a servir para buscar ( raro no ?? ) datos y mostrarlos en 1 o más controles de la vista activa.

Todavia no lo tengo terminado, pero va a constar de 3 partes:

1. Un botón de búsqueda.

SearchButton

2. Un popup, que se visualizará al hacer el click en el botón de búsqueda.

GenericSearchView

3. Configuraciones para las búsquedas que permitirán personalizarlas un poco.

Por el momento sólo tengo implementadas búsquedas por 2 campos, pero  acabaré extendiéndolo para que soporte más de 2 lógicamente.

Un par de ejemplos de como se ven:

image

image

La configuración para está búsqeda se definiría así ( por el momento irán el app.config de la aplicación, aunque posiblemente sea mejor tenerlas en archivos XML a parte ):

   1: <search
   2:     name="Divisas"
   3:     type="Generic"
   4:     mode="WCF"
   5:     description="Búsqueda de divisas"
   6:     handler="VisualPyme.Communications.MessagingGateway, VisualPyme.Communications"
   7:     entityType="VisualPyme.Data.Model.DataTransferObjects.Divisa, VisualPyme.Data.Model.DataTransferObjects">
   8:     <parameters>
   9:         <parameter
  10:             name="IdDivisa"
  11:             title="Divisa"
  12:             type="string"
  13:             length="10"
  14:         />
  15:         <parameter
  16:             name="NombreUnidadMonetariaPlural"
  17:             title="Nombre"
  18:             type="string"
  19:             length="30"
  20:         />
  21:     </parameters>
  22:     <columns>
  23:         <column
  24:             selection="Id"
  25:             name="IdDivisa"
  26:             header="Divisa"
  27:             length="10"
  28:         />
  29:         <column
  30:             selection="Description"
  31:             name="NombreUnidadMonetariaPlural"
  32:             header="Nombre"
  33:             length="30"
  34:         />
  35:     </columns>
  36: </search>
  • name, nombre de la búsqueda ( ejerce de identificador de la misma )
  • type, servirá para saber que popup mostrar al hacer click en el bóton, por el momento sólo hay uno, y posiblemente no haya más, con lo que posiblemente acabe por desaparecer.
  • description, descripción de la búsqueda.
  • handler, es el nombre de la clase que nos permitirá realizar la búsqueda a través de WCF.
  • entityType, el nombre de la clase que representa el tipo de datos devuelto por la búsqueda.
  • parameters, los datos de los campos por lo que se permite realizar la búsqueda.
  • columns, los datos de las columnas que se deben mostrar en el grid en el que se muestran los resultados.

SearchConfiguration

Ejemplo de como se usaría el botón en XAML:

   1: <WrapPanel Grid.Column="1" Grid.Row="1" >
   2:     <TextBox Width="150"
   3:              Text="{Binding IdDivisa, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
   4:              HorizontalAlignment="Left" x:Name="txtDivisa" CharacterCasing="Upper" AcceptsReturn="False"
   5:              Margin="5"/>
   6:
   7:     <customControls:SearchButton
   8:         x:Name="Searcher"
   9:         SearchName="Divisas"
  10:         SelectionIdTextBox="{Binding ElementName=txtDivisa}"
  11:         ImageSource="/VisualPyme.Shell.Resources;Component/Images/Icons/magnifier.png" Focusable="False" />
  12: </WrapPanel>

Todavía me faltan algunas cosillas por ver y por cambiar que no me convencen del todo de como lo tengo implementado, pero cada vez tiene mejor pinta🙂


  1. Señor, habrá más posts -artículos en su blog sobre este tema ? Parece muy interesante, si hubiera ejemplos con código mucho mejor !!!

    En apariencia es una aplicación espectacular…

    saludos y gracias


Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s