Unidad 53. DataGrid (VII)





53.9. Recorrido.

Podemos hacerlo de forma numérica, con un contador, o recorrer los objetos de tipo fila que componen el objeto DataGrid, o bien las celdas que componen cada objeto fila

Recorrer el DataGrid por lo tanto podría ser:

 

 Dim X As Integer

 Dim Fila As DataGridViewRow

 For X = 0 To DataGrid.Rows.Count – 1

   Fila = DataGrid.Rows(X)

 Next

 

Y si deseamos recorrer las columnas de una fila.

Digamos que de la forma más clásica sería como el ejemplo que sigue:

 

 Dim X As Integer

 Dim Y As Integer

 Dim Fila As DataGridViewRow

 

 Fila = DataGrid.Rows(X)

 

 For Y = 0 To Fila.Cells.Count – 1

 

 Next

 

Y utilizando el bucle del tipo para cada objeto en la Fila, como vemos a continuación:

 

 Dim X As Integer

 Dim Fila As DataGridViewRow

 Dim Celda As DataGridViewCell

 

 Fila = DataGrid.Rows(X)

 

 For Each Celda In Fila.Cells

 

 Next

 

Ahora solo queda llenar el bucle.

53.10. Intercambio de filas.

En realidad el intercambio de filas no es posible, así tal cual.

Lo que pasa es que podemos crear objetos fila que sean iguales y no visualizarlos completos en un DataGrid, o en un ListBox, y a partir de ahí apoyándonos en un objeto DataTable, usando el método ImportRow trasvasar objetos fila de una tabla a otra.

 

Private Sub Anyadir()

  Dim Campos(3) As Object

  Dim Fila As DataRow

  Dim Fecha As String

 

  Fila = Tabla.Rows.Find(Lista02.SelectedValue)

  TablaGrid.ImportRow(Fila)

 

  Campos(0) = Fila.Item("Numero").ToString

  Campos(1) = Fila.Item("Vencimiento").ToString

  Campos(2) = Fila.Item("NomSocio").ToString

  Campos(3) = Fila.Item("Importe").ToString

 

  DataGrid.Rows.Add(Campos)

  Tabla.Rows.Remove(Fila)

End Sub

Y el complemento sería el paso inverso que sería:

 

Private Sub Quitar()

  Dim Fila As DataRow

  Try

    Fila = TablaGrid.Rows.Find(DataGrid.Item(0, DataGrid.CurrentCellAddress.Y).Value.ToString)

    Tabla.ImportRow(Fila)       ' Traspasamos del grid a la tabla de listbox

    DataGrid.Rows.Remove(DataGrid.CurrentRow)

    TablaGrid.Rows.Remove(Fila)

  Catch ex As NullReferenceException

 

  End Try

End Sub

 

El sistema se basa en la existencia de un objeto DataTable, para cada objeto, y lo que hacemos es compatibilizarlos, por decirlo de alguna manera.

Si añadimos en la TablaGrid, quitamos de la Tabla del ListBox.

 

TablaGrid.ImportRow(Fila)

Tabla.Rows.Remove(Fila)

 

Y al revés, si añadimos a la tabla del ListBox, quitamos de la tabla del DataGrid.

 

  Tabla.ImportRow(Fila)       ' Traspasamos del grid a la tabla de listbox

  TablaGrid.Rows.Remove(Fila)

 

Las tablas se pueden igualar a partir de una de ellas

 

 CargaLista(Lista, Adaptador, Tabla)

 TablaGrid = Tabla.Clone

 

De forma que creamos una estructura idéntica en las dos.

En el procedimiento ya existe todo el código necesario para cargar la tabla y los datos en el ListBox.

Octubre-2010
Pág. 53.7

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies