none
Marcar datos repetidos contiguos en un datagridview. VB.Net

    Pregunta

  • Buen día.

    Llevo varios días tratando de resolver un problema que tengo, por favor ayuda.

    En un datagridview tengo varios registros repetidos, no quiero eliminarlos solo quiero marcarlos de alguna forma, por ejemplo añadirles un símbolo, numero o letra y solo a los contiguos. Esta es una solución que se me ha ocurrido al problema que tengo, pero si me pudiesen dar otra les agradecería. Les explico.

    Estoy desarrollando un programita que manda pulsaciones de teclas a otro y que este haga las acciones pertinentes, en el caso del datagridview copia lo que hay en una columna y lo pega en el otro programa, el problema es que si los registros son repetidos y contiguos se pierde mucho tiempo mandando las pulsaciones ya que si pudiera decirle al programa que el registro que ya paso es igual al siguiente se ahorraría tiempo al no mandar tantas pulsaciones, por que tengo que pasar una por una si o si. Y que el código se ejecute completo por lo menos una vez en el primer registro repetido de todos los que haya contiguos.

    Gracias, Saludos.

    lunes, 20 de marzo de 2017 19:02

Respuestas

  • Muchas gracias por su tiempo, ya lo eh solucinado, solo tenia que anidar varios if pero mi imaginacion no daba para mas.

    Dejo como los anide por si hay una solucion mas corta.

                    If cuenta = DGV_Cheques(12, secuencia + 1).Value Then
                        repetidas += 1
                        If repetidas = 1 Then
                            'CODIGO  SI NORMAL
                            secuencia += 1
                        Else
                            'CODIGO SI REPETIDA
                            secuencia += 1
                        End If
                    Else
                        repetidas = 0
                        If secuencia <> 0 Then
                            If cuenta = DGV_Cheques(12, secuencia - 1).Value Then
                                'CODIGO SI REPETIDA
                                secuencia += 1
                            Else
                                'CODIGO SI NORMAL
                                secuencia += 1
                            End If
                        Else
                            'CODIGO SI NORMAL
                            secuencia += 1
                        End If
                    End If

    Muchas gracias por la ayuda.


    martes, 21 de marzo de 2017 19:43

Todas las respuestas

  • Hola:

    Puedes añadir una columna del tipo DataGridViewCheckBoxCell al DGV, y los que tienen la columna que copias repetida, llenar dicha columna con el valor True
    Luego cuando recorres las filas, si el valor de esa columna es True, la ignoras

    Un saludo desde Bilbo
    Carlos

    lunes, 20 de marzo de 2017 20:20
  • Hola Javier Baruch,

    ¿Puedes mostrar un ejemplo de tus datos ingresados en el DataGridView para una mayor abstracción?

    Al momento de pasar los datos puedes usar Linq y mediante GroupBy(...) agrupas los valores semejantes para no enviar repetidos.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 21 de marzo de 2017 2:23
  • Muchas gracias por su tiempo, ya lo eh solucinado, solo tenia que anidar varios if pero mi imaginacion no daba para mas.

    Dejo como los anide por si hay una solucion mas corta.

                    If cuenta = DGV_Cheques(12, secuencia + 1).Value Then
                        repetidas += 1
                        If repetidas = 1 Then
                            'CODIGO  SI NORMAL
                            secuencia += 1
                        Else
                            'CODIGO SI REPETIDA
                            secuencia += 1
                        End If
                    Else
                        repetidas = 0
                        If secuencia <> 0 Then
                            If cuenta = DGV_Cheques(12, secuencia - 1).Value Then
                                'CODIGO SI REPETIDA
                                secuencia += 1
                            Else
                                'CODIGO SI NORMAL
                                secuencia += 1
                            End If
                        Else
                            'CODIGO SI NORMAL
                            secuencia += 1
                        End If
                    End If

    Muchas gracias por la ayuda.


    martes, 21 de marzo de 2017 19:43