Visual Basic.NET - De vuelta y primera consulta (DataGrid)

 
Vista:
sin imagen de perfil

De vuelta y primera consulta (DataGrid)

Publicado por Carlos (3 intervenciones) el 11/02/2023 16:26:19
Saludos a todos!

Después de varios años fuera de este mundo vuelvo a ruedo en la programación, estuve especializado en Vb y desde entonces no había tocado un lenguaje hasta el momento, ahora regreso con VB.net que para mí es totalmente nuevo y espero lograr en este foro aprender nuevamente a programar!

De antemano, gracias a todos quienes elijan apoyar.

Aquí va mi primera consulta:

quisiera capturar el cambio en una celda de un datagrid, es decir, que cada vez que introduzca un dato o borre, capturar el cambio en la celda.

Muchas Gracias!

CR
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

De vuelta y primera consulta (DataGrid)

Publicado por Phil Rob (1554 intervenciones) el 11/02/2023 21:48:51
Hola Carlos,
Tenemos a una celda de DGV con una fórmula que parece como :
DGV.Item(indicioDeColumna, indicioDeLinea).Value
Podré verificar mañana cuando mi PC será disponible.
Pero deberías decir este quieres hacer. Pienso que el DGV es más útil para mostrar datos.
Cuando el DGV es en relación (por DataSource) con un DataTable, cada modificacion en DGV es modificacion en el DataTable también.
Si quieres ejemplo de utilización del DataTable, dice me ...
Buenas noches
Phil
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

De vuelta y primera consulta (DataGrid)

Publicado por Carlos (3 intervenciones) el 11/02/2023 22:13:17
Hola Phil , Gracias por tu respuesta.

Lo que he querido hacer es que cuando vaya modificando el dato en la primera columna del DGV me vaya colocando el siguiente dato similar mientas se autocompleta hasta mostrarse el dato requerido.

para esto mi idea es, introducir un carácter, con este caracter ir a la tabla, consultar el primer dato coincidente y repetir esto hasta dar con el dato requerido.

En si quisiera reproducir el evento change de un texbox.

Por otra parte, si tienes alguna sugerencia la tomare con gusto.

Gracias!

CR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

De vuelta y primera consulta (DataGrid)

Publicado por Phil Rob (1554 intervenciones) el 11/02/2023 22:40:22
¿Sabes que quieres hacer existe casi mismo en el ComboBox ?
Intentaré hacer un ejemplo mañana. Ahora aquí es la 10h30 pm.
Hasta mañana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

De vuelta y primera consulta (DataGrid)

Publicado por Phil Rob (1554 intervenciones) el 12/02/2023 12:13:40
Hola Carlos,

Te envio un proyecto de pruebas con la utilización de un DataTable en relación con DGV, ComboBox, ListBox y TextBox.

He empezado este proyecto con otro proyecto que tenía en francés. He lo traduce y adaptado.

Para no introducir los datos a cada prueba, he creado un fichero csv. De esta manera, puedo cargar datos cuando me gusta et también, registrar las modificaciones et re-cargar para verificar que los datos están bien.

Por lo tanto, también veras (si necesario) como leer y escribir un fichero csv con tu código.
El fichero csv inicial hace sido echo con XLS (soy muy perezoso).
Mira cómo hacer:
https://www.dropbox.com/s/e6d3kyuqx5vcdh9/Carlos_CSV.mp4?dl=0

Si he comprendido bien tu pregunta, quieres hacer un sistema de AutoCompletion de la codificación de texto en una celda del DGV. No tengo solución…

Pienso que para lo hacer en un DGV, debes crear una columna de TexBox o de ComboBox.pero este parece me difícil cuando el DataSource del DGV es en relación con un DataTable.
Es siempre posible de escribir un algoritmo que mira todos campos del DataTable para buscar el texto que te gusta, pero este puede ser muy lento cuando existen muchos datos.

Te propondría de utilizar un ComboBox puesta cerca el DGV. El mi proyecto de pruebas, miraras que la AutoCompletion con el ComboBox es fácil et que la selección en este ComboBox seleccione el mismo registro en todas zonas de mostrada.

Adjunto mi proyecto de pruebas :DGVCarlos.

Este el video de su utilización:
https://www.dropbox.com/s/9n9mlqk9bqse04t/Carlos_Pruebas.mp4?dl=0

Espero que este te ayudará…
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

De vuelta y primera consulta (DataGrid)

Publicado por Carlos (3 intervenciones) el 16/02/2023 00:34:03
Hola Phil, Gracias por tu respuesta!
he visto tu prueba y es muy interesante, sin embargo para mi interfase no es funcional, se trata de un módulo de facturación y lo que busco es que en DGV pueda ir colocando los codigos de las referencias, que a su vez me autocomplete en la medida que vaya encontrando un match en la trabla, y finalmente que al econtrar la referencia me complete el resto de fatos en el DGV (descripción, Formato, preci, etc.. Y luego colocar manualmente las cantidades. ey

No he encontrado por el momento la forma que requiero pero voy a desistir de esa idea para poder avanzar..

Muchas Gracias por el tiempo que dedicaste a responder.

Saludos,

Carlos Rey.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

De vuelta y primera consulta (DataGrid)

Publicado por Phil Rob (1554 intervenciones) el 16/02/2023 09:34:19
Hola Carlos,

Veo que no se compile bien el proyecto que he te enviado, no comprendo ...
He lo corregido y lo adjunto a este mensaje. Esto contiene códigos agregados.

Si mejor comprendo tu problema, no es necesario de buscar la información a cada letra tecleada, es bastante de buscar cuando el texto de la celda es completamente escrito.

En mi proyecto de pruebas, he agregado el código siguiente. Quizá te dará ideas .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub DGVLista_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DGVLista.CellEndEdit
        If e.ColumnIndex = 0 And e.RowIndex = 0 Then  ' somos en la primera celda
            Dim CadenaBuscada As String = DGVLista.Item(e.ColumnIndex, e.RowIndex).Value
 
            '' Si buscas en todas columnas  *********************************
            'For R As Integer = 1 To DGVLista.Rows.Count - 2   ' escribir -1 si no existe linea vacia a la fin del DGV (AllowUersToAddRow = False)
            '    For C = 0 To DGVLista.Columns.Count - 1
            '        If DGVLista.Item(C, R).Value = CadenaBuscada  Then
            '            ' Tratar aqui el descubrimiento de una celda que contiene mismo texto que la celda 0,0
            '            Exit Sub ' si no necesario de mirar el resto del DGV
            '        End If
            '    Next
            'Next
 
            ' Si buscas solamente en columna 0  *********************************
            For R As Integer = 1 To DGVLista.Rows.Count - 2   ' escribir -1 si no existe linea vacia a la fin del DGV (AllowUersToAddRow = False)
                ' Si buscas en todas columnas
                If DGVLista.Item(0, R).Value = CadenaBuscada Then
                    ' Tratar aqui el descubrimiento de una linea que empeza con el mismo valor en columna 0
                    ' Por mi prueba :
                    MessageBox.Show("Encontrar")
                    Exit Sub ' si no necesario de mirar el resto del DGV
                End If
            Next
        End If
    End Sub

Adjunto el proyecto y un video que muestra el resultado.

Que tenga un buen dia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar