none
Cómo puedo crear un Popup de un Listview para seleccionar dato que necesito.

    Pregunta

  • Hola a todos.

    Bueno explicaré mi problema: Tengo un DGV y bueno quisiera saber cómo puedo hacer para que me aprezca un Popup de un listview con sólo los datos filtrados de la que hay en la columna alterna y en la columna descripción. y que al momneto de seleccionar un item del ListView me lo cargue con todos los demás datos que necesito en el DGV.

    Por ejemplo Sí en mi columna de Descripición de mi DGV tengo la palabra "TUBO" bueno sí doy Enter me aparece un ListView con todo lo que en mi tabla PRODUCTOS contenga la palabra "TUBO"

    ListView

    TUBO DE PLASTICO
    TUBO DE COBRE
    TUBO DE FIERRO
    TUBO DE PVC
    TUBO REFORZADO

    Al momento de hacer click sobre uno de los items de la lista del listView cargo los datos que se refieran a ese Fila en mi DGV.

    Por ejemplo si elijo el "Tubo Fierro" en mi DGV se cargan los siguientes Datos

    Clave        Alterna             Descripción                   Precio      

    PL0035       TUDFI               TUBO DE FIERRO              $125.63

    Y así algo parecido con la clave Alterna.

    Estoy trabajando en Visual Studio 2005 y Sql Server.

    Saludos.
    martes, 08 de diciembre de 2009 0:19

Respuestas

  • Hola que tal,

      No creo que sea necesario tanto implemento, con que con tu DGV y el textbox aplicando el filtro dentro de la rutina Txt_bucarpr_KeyPress(etc,etc)


        If txt_buscarpr.Text <> "" Then
                Dim filter As String = "CVE_PRO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR CVE_ALT LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR DESC_PROD LIKE '*" & txt_buscarpr.Text.Trim & "*'" & _
                "OR MARCA LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR DEPTO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR MODELO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR COD_PROV LIKE '%" & txt_buscarpr.Text.Trim & "%'"
                Me.PRODUCTOSBindingSource.filter=filter
            Else
                Me.PRODUCTOSBindingSource.RemoveFilter()
    End If
    End ub

    Lalo002
    • Marcado como respuesta DarkStar622 viernes, 11 de diciembre de 2009 1:51
    jueves, 10 de diciembre de 2009 17:46

Todas las respuestas

  • hola

    bueno debo decirte que no sera muy simple ya que requieres varios paso para poder hacerlo

    - en primer lugar necesitas conocer como comunicar los formularios
    para eso estos link te ayudaran


    si se que la explicación se basa en c#, pero al final tiene los ejemplos en vb.net

    despues necesitaras controlar las teclas del datagridview, se que hubo un post anterior sobre el tema, has podido implementar el enter en las celdas
    allí es donde deberás realizar la apertura del formulario



    si hay ejemplos que estan en c# podrías convertirlo usando estas tools

    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 08 de diciembre de 2009 0:52
  • Hola

    Leandro ya lo pense un poco mejor y tengo otra idea parecida, te la comento espero me puedas ayudar. Bueno en mi DGV pueden cargar productos apartir de su clave que es la primer columna. Sí no se quiere buscar por clave al momento de cambiarse a la siguiente Grilla que me abra el otro formulario que contiene el DGV2 y una vez ahí tendre cargados todos los productos y podré filtrar con un TextBox y un Boton, y que al momento de seleccionar uno de los productos y dar click a la tecla "ENTER" me ponga el producto con sus respectivos campos en mi DGV1.

    Y bueno si el usuario sí escribe la clave del producto que no me habrá el otro DGV2.

    Bueno Esa es la idea que tengo espero me puedas ayudar, y lamento las molestias en serio.

    Saludos.
    miércoles, 09 de diciembre de 2009 0:11
  • hola

    o sea la idea es que el usuario se posicione sobre una celda del datagridview y que con una tabla se muestre un dialogo en donde se muestre la lista de productos, en este se seleccione uno y al cerrar el cuadro se cargue ese podructo en la grilla que invoco el dialogo

    esa seria la idea ?

    pregunta en lugar de editar la celda, no servidir un boton en la fila para desplegar el dialogo
    algo como esto

    DataGridView Image Button Cell



    DataGridView with Detail Edit Form - VS 2005

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 09 de diciembre de 2009 2:53
  • Hola

    Leandro he puesto un TextBox y un Boton fuera de mi DGV1 y para buscar productos en el DGV2 le he puesto el código de filtrar:

    Dim sql As String = String.Format("SELECT * FROM PRODUCTOS")
            Dim cnn As SqlClient.SqlConnection
            cnn = PRODUCTOSTableAdapter.Connection
            Dim da As New SqlClient.SqlDataAdapter(sql, cnn)
            Dim dt As New DataTable("PRODUCTOS")
            Dim ds As New VENCEDORADataSet
            da.Fill(dt)

            Dim temp As New BindingSource
            temp.DataSource = dt
            popup.dgv_lstpro.DataSource = temp

            If txt_buscarpr.Text <> "" Then
                Dim filter As String = "CVE_PRO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR CVE_ALT LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR DESC_PROD LIKE '*" & txt_buscarpr.Text.Trim & "*'" & _
                "OR MARCA LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR DEPTO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR MODELO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR COD_PROV LIKE '%" & txt_buscarpr.Text.Trim & "%'"

                temp.Filter = filter

            Else
                Me.PRODUCTOSBindingSource.Filter = ""
                Me.PRODUCTOSTableAdapter.Fill(Me.VENCEDORADataSet.PRODUCTOS)
            End If
            popup.Show()

    Pero ahora no sé el código para que al seleccionar con la tecla "ENTER" me cargue en el DGV1 el producto seleccionado. NOTA: Las columnas de los datos que voy a cargar en el DGV1 son sólo la CLAVE, ALTERNA, DESCRIPCIÓN Y PRECIO. Ya que en DGV2 tiene más columnas.

    Saludos
    jueves, 10 de diciembre de 2009 16:14
  • hola

    pero estas usando los mismo datos tanto para cargar la grilla como para la busqueda, eso es correcto, o sea los datos de busqueda no deberian ser otros.

    o sea no logro llegar a comrpender la logica que aplcia el filtro, o sea es este codigo se ejecuta cuando presionas un boton ?

    segun veo son dos grillas, pero el objeto BindingSource que usas es el mismo.


    si has podido analziar el codigo de este link
    DataGridView – KeyPress detectar ENTER y busqueda

    veras que alli si bien uso linq para realizar el filtro de los datos, luego en la row que se esta trabajando o sea dodne se presiono enter es que se escribe la seleccion

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 10 de diciembre de 2009 17:19
  • Hola

    Leandro me he equivocado en decirte que el filtro lo puse en el DGV2 esta en el boton de buscar de mi formulario en donde tengo el DGV1 y bueno al escribir en el TextBox una Clave o alterna o Parte de una descripción que se quiere localizar, despues se da click sobre el boton de Buscar y me muestra en el DGV2 el resultado del filtro.

    Voy a revisar el Link que me envias. En este tema encuentro cómo cargar los datos de mi DGV2 al DGV1????

    Saludos.
    jueves, 10 de diciembre de 2009 17:30
  • Hola que tal,

      No creo que sea necesario tanto implemento, con que con tu DGV y el textbox aplicando el filtro dentro de la rutina Txt_bucarpr_KeyPress(etc,etc)


        If txt_buscarpr.Text <> "" Then
                Dim filter As String = "CVE_PRO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR CVE_ALT LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR DESC_PROD LIKE '*" & txt_buscarpr.Text.Trim & "*'" & _
                "OR MARCA LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR DEPTO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR MODELO LIKE '%" & txt_buscarpr.Text.Trim & "%'" & _
                "OR COD_PROV LIKE '%" & txt_buscarpr.Text.Trim & "%'"
                Me.PRODUCTOSBindingSource.filter=filter
            Else
                Me.PRODUCTOSBindingSource.RemoveFilter()
    End If
    End ub

    Lalo002
    • Marcado como respuesta DarkStar622 viernes, 11 de diciembre de 2009 1:51
    jueves, 10 de diciembre de 2009 17:46