Foros del Web » Programación para mayores de 30 ;) » .NET »

busqueda por Letra en un ComboBox

Estas en el tema de busqueda por Letra en un ComboBox en el foro de .NET en Foros del Web. Hola , tengo un combo el cual contiene datos de mi BD , he aplicado dos propiedades del combo AutoCompleteMode y AutoCompleteSource para darle una ...
  #1 (permalink)  
Antiguo 04/07/2012, 11:35
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Pregunta busqueda por Letra en un ComboBox

Hola , tengo un combo el cual contiene datos de mi BD , he aplicado dos propiedades del combo AutoCompleteMode y AutoCompleteSource para darle una busqueda mas especifica mientras escribo en este , ahora mi pregunta es : ¿se puede utilizar las primeras letras de cada palabra para obtener el texto completo en el combobox?. ejemplo

en mi combo tengo el item : Donas Rellenas

necesito que al escribir la primera letra D y luego dar un espacio seguido por primera letra de la segunda palabra R ,sin borrarse las opciones que se generan al escribir dichas letras.

mi SP es este:

Código:
create procedure USP_COMBOS
@valor01 varchar(100)=''",
@valor02 varchar(100)=""
as

select IdProducto,(Producto_Nombre +' '+Descripcion) as Productos
		from Producto_Terminado 
where Producto_Nombre like '%' + @valor01  + '%' and  Descripcion like '%' + @valor02  + '%'

order by 1 asc
bueno espero haber sido claro . gracias
  #2 (permalink)  
Antiguo 04/07/2012, 11:36
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

trabajo en Visual Studio 2005 con SQL 2005.
  #3 (permalink)  
Antiguo 04/07/2012, 13:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

Hola Erick21, creo que tu like está mal, ya que tu deseas buscar la primera letra, mas no la ultima como lo has puesto en tu procedure :
Código SQL:
Ver original
  1. CREATE PROCEDURE USP_COMBOS
  2. @valor01 VARCHAR(100)=''",
  3. @valor02 varchar(100)=""
  4. as
  5.  
  6. select IdProducto,(Producto_Nombre +' '+Descripcion) as Productos
  7.         from Producto_Terminado
  8. where Producto_Nombre like  @valor01 + '%' and  Descripcion like @valor02 + '%'
  9. order by 1 asc
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #4 (permalink)  
Antiguo 04/07/2012, 13:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

Perdón por el doble post... un error mío. Corrijo:
Código SQL:
Ver original
  1. CREATE PROCEDURE USP_COMBOS
  2. @valor01 VARCHAR(100),
  3. @valor02 VARCHAR(100)
  4. AS
  5.  
  6. SELECT IdProducto,(Producto_Nombre +' '+Descripcion) AS Productos
  7.         FROM Producto_Terminado
  8. WHERE Producto_Nombre LIKE  @valor01 + '%' AND  Descripcion LIKE @valor02 + '%'
  9. ORDER BY 1 ASC
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 04/07/2012, 14:24
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

Aquaventus , gracias por responder puse mi SP pensando que ese era el problema pero no lo es, al parecer mi problema radica dentro del visual , como mencione la busqueda esta funcionando correctamente lo que necesito es que funcione con las letras. ejemplo

los datos que me arroja el combo es : DONAS RELLENAS, DONAS FRESA , ETC
como se ve la primera palabra DONAS es la mas comun, entonces en el combo tengo que escribir la primera palabra que es "DONAS" y para poder continuar con la consulta tengo que poner la primera letra de la segunda palabra R o F para ser mas especifico, esto es precisamente lo que no quiero.

solo quiero que al poner la primera letra de la palabra DONAS que es D y luego espacio, la primera letra de la segunda palabra R o F , me arroje todo el texto que estoy buscando por ejemplo: Donas Rellenas

espero haber sido un poco mas claro . gracias
  #6 (permalink)  
Antiguo 04/07/2012, 14:36
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

Cita:
necesito que al escribir la primera letra D y luego dar un espacio seguido por primera letra de la segunda palabra R ,sin borrarse las opciones que se generan al escribir dichas letras.
Como escribiste en el primer post LA PRIMERA LETRA, entonces trata de ser un poco mas detallado con lo que quieres, Pero si tu dices que el problema radica dentro del visual, muestranos el código para poder ver el error, porque hasta donde estamos no veo nada. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 04/07/2012, 15:00
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

Hola , gracias otra vez por responder

este es mi funcion:

Código:
    Public Function getCombos(ByVal Opcion As String, ByVal Valor01 As String, ByVal Valor02 As String) As DataTable
        Try
            Dim con As New SqlConnection(conex)
            Dim dap As New SqlDataAdapter("USP_COMBOS", con)
            Dim dst As New DataSet
            With dap.SelectCommand
                .CommandType = CommandType.StoredProcedure
                .Parameters.Add(New SqlParameter("@Opcion", SqlDbType.VarChar, 2)).Value = Opcion
                .Parameters.Add(New SqlParameter("@valor01", SqlDbType.VarChar)).Value = Valor01
                .Parameters.Add(New SqlParameter("@valor02", SqlDbType.VarChar)).Value = Valor02
            End With
            dap.Fill(dst, "tCOMBOS")
            Return dst.Tables("tCOMBOS")
        Catch ex As Exception

        End Try
    End Function

en el Visual lo lleno de la siguiente manera:
Código:
Private objx As New ClsVentas
Private Sub llenarCombos()
            With cboproducto
                .DataSource = objx.getCombos(9, "", "")
                .DisplayMember = "Productos"
                .ValueMember = "IdProducto"
            End With
end sub
Código:
 Private Sub frmNuevaVenta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        llenarCombos()

    End Sub
en el SelectedIndexChanged del combo no tengo nada , pero creo que aqui deberia ir la condicion o algo como esto.

Código:
 Private Sub cboproducto_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboproducto.SelectedIndexChanged
   cboproducto.DataSource = objx.getCombos(9, cboproducto.SelectedText, cboproducto.SelectedText)

    End Sub
y las dos propiedades AutoCompleteMode y AutoCompleteSource las tengo como propiedades del combo.
  #8 (permalink)  
Antiguo 04/07/2012, 15:14
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

Prueba colocándolo en el evento KeyPress, ya que al ir escribiendo iras haciendo la búsqueda y no al seleccionar un item(SelectedIndexChanged). Saludos!.
PDT: Y porque pasas 3 parametros por visual, si en el procedure veo 2?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #9 (permalink)  
Antiguo 04/07/2012, 16:08
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

HOLA ,bueno si no me equivoco tengo que crear un funcion para extraer la primera letra del texto en mi combo y con esas letras hacer la consulta respectiva en el keypress del combo?
si es asi me podrias dar un ejemplo por favor gracias.

pd: el primer parametro lo utilizo como opcion, por que en ese SP tengo varias Etiquetas y esa consulta es una de ellas, es por eso que defino los parametros vacios por que hay algunas consultas que no requieren filtros.
  #10 (permalink)  
Antiguo 04/07/2012, 16:20
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

Hola Erick21, Si te coloco en ejemplo para que veas :
En Lógica :
Cita:
Texto insertado : D R
Texo Dividido :
palabras(0) = "D"
palabras(1) = "R"
getCombos(9,"D","R")
En Código:
Código vb:
Ver original
  1. 'Primero extraes el texto que ingresas en tu combo
  2. 'y la pasas a una variable
  3. Dim texto As String = TUCOMBO.Text.Trim()
  4. 'Como sabes que vas a insertar 1 espacio para saber
  5. 'que tienes 2 palabras a buscar, haces un split a
  6. 'la cadena para formar un array de 2 palabras
  7. Dim palabras() As String = texto.Split(' ')
  8. 'Pasas los 2 valores a tus parametros
  9. .DataSource = objx.getCombos(9, palabras(0).ToString,Palabras(1).ToString)
Se entendió ? Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #11 (permalink)  
Antiguo 04/07/2012, 22:19
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

Gracias , Aquaventus , cuando aplico los indices como parametros y me dice que no estan definidos en la matriz

Private Sub cboproducto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cboproducto.KeyPress


Dim texto As String = cboproducto.Text.Trim()
Dim palabras() As String = texto.Split(" ")

cboproducto.DataSource = objx.getCombos(9, palabras(0).ToString,Palabras(1).ToString)


End Sub

seguire intentando, gracias.
  #12 (permalink)  
Antiguo 05/07/2012, 07:17
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

En que linea te bota el error. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #13 (permalink)  
Antiguo 05/07/2012, 08:55
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

hola , Aquaventus , es en la linea donde coloco los parametros

cboproducto.DataSource = objx.getCombos(9, palabras(0).ToString,Palabras(1).ToString)
  #14 (permalink)  
Antiguo 05/07/2012, 08:59
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

Muestrame como tienes tu codigo por favor
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #15 (permalink)  
Antiguo 05/07/2012, 09:15
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

Código:
  Private objx As New ClsVentas
    Private Sub llenarCombos()
        With cboProducto
        .DataSource = objx.getCombos(9, "", "")
        .DisplayMember = "Productos"
        .ValueMember = "IdProducto"
        End With
End Sub

Código:
    Private Sub frmNuevaVenta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        llenarCombos()

    End Sub

Código:
Private Sub cboproducto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cboproducto.KeyPress
 

Dim texto As String = cboproducto.Text.Trim()
 Dim palabras() As String = texto.Split(" ")
 
cboproducto.DataSource = objx.getCombos(9, palabras(0).ToString,Palabras(1).ToString)
 

End Sub

eso es todo.
  #16 (permalink)  
Antiguo 05/07/2012, 09:28
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

Colócalo en el evento KeyUp lo que está en KeyPress(Elimina este evento) :
Código vb:
Ver original
  1. If palabras.Length >= 2 Then
  2. cboproducto.DataSource = objx.getCombos(9, palabras(0).ToString,Palabras(1).ToString)
  3. End If
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #17 (permalink)  
Antiguo 05/07/2012, 09:39
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

gracias Aquaventus,

No bota Error , pero no ejecuta la consulta cuando coloco el espacio y la segunda letra.
  #18 (permalink)  
Antiguo 05/07/2012, 09:46
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

usa breakpoints y verifica el porqué. Probablemente este haciendo mal el método Autocomplete, te dejo este tema de Leando Tuttini(un Grande!) :
Autocomplete con Combobox y TextBox.
Con ejemplo en VB.NET y C#. Obviamente aplicando lo que te dije para tu caso.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Última edición por Aquaventus; 05/07/2012 a las 09:52
  #19 (permalink)  
Antiguo 05/07/2012, 10:38
 
Fecha de Ingreso: abril-2010
Ubicación: Lima-Peru
Mensajes: 96
Antigüedad: 14 años
Puntos: 2
Respuesta: busqueda por Letra en un ComboBox

Gracias Aquaventus , he estado chekeando el tema y los comentarios , he colocaco mi duda tambien espero que me respondan , no pude habrir el proyecto al parecer esta hecho en una version superior al VB 2005 y no lo tengo instalado a qui en el trabajo tendre que esperar ha llegar a casa.

igual muchas gracias por aclarar varias dudas , volvere a consultar si tengo otra .
  #20 (permalink)  
Antiguo 05/07/2012, 11:02
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: busqueda por Letra en un ComboBox

Hola Erick21, pero puedes ejecutar el exe que está en su bin y ver el código con el notepad o wordpad nada mas, no es necesario que tengas el 2008. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: combobox, letra, busquedas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:55.