Mediante el código descrito a continuación es posible recorrer todas las filas de una grid y operar con sus contenidos para, opcionalmente, actualizar la grid con los resultados de nuestra operación.
Habrá que manipular el objeto ArrayDB del grid.
Código VB6:
Set lgrd = gForm.Controls("nombreGrid") ' Nos traemos el array a una variable para operar más fácilmente Set lArr = lgrd.ArrayDb Dim i For i = lArr.Lowerbound (1) To lArr.UpperBound(1) ... Next 'Opcional: actualizamos la grid. Si no lo hacemos, nuestras operaciones habrán sido solo de consulta. Set lgrd.ArrayDb = lArr lgrd.Grid.Rebind Sub marcar (aMarca) Set lgrd = gForm.Controls("Pers_GrdCartera") Set lArr = lgrd.ArrayDb Dim i For i = lArr.Lowerbound (1) To lArr.UpperBound(1) lArr (i,lgrd.colindex("P_Marca")) = aMarca Next Set lgrd.ArrayDb = lArr lgrd.Grid.Rebind End Sub
Código C#:
ICntGridUsuario lGrd = (ICntGridUsuario)gForm.Controls["NombreGrid"]; IXArrayDB lArr = lGrd.ArrayDb; for (int i = lArr.LowerBound(1); i <= lArr.UpperBound(1); i++) { // ... } // Opcional; actualizamos la grid. Si no lo hacemos nuestras operaciones habrán sido únicamente de consulta lGrd.ArrayDb = lArr; lGrd.ReBind(); private void Marcar(bool aMarca) { ICntGridUsuario lGrd = (ICntGridUsuario)gForm.Controls["Pers_GrdCartera"]; IXArrayDB lArr = lGrd.ArrayDb; for (int i = lArr.LowerBound(1); i <= lArr.UpperBound(1); i++) { // ... } lGrd.ArrayDb = lArr; lGrd.ReBind(); }