Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Trabajo con DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=50333)

DenisDiaz 14-11-2007 22:15:28

Trabajo con DBGrid
 
Amigos, estoy usando en componente DBGrid. He rebisado la ayuda y encontré un ejemplo que después de haber seleccionado uno o varios registros, obtiene sus campos y los manda a un ListBox. Lo que necesito es eso presisamente pero sin necesidad de seleccionar los registros. Es decir, teniendo el DBGrid ya con los valores poder obtener cualquiera de sus campos. Algunos de ustedes conoce la forma?
Muchas gracias por su tiempo.

Caral 14-11-2007 22:38:15

Hola
No entiendo.
El nombre del Campo?
o
El contenido?
Saludos

DenisDiaz 14-11-2007 23:06:28

Lo necesito todo, pero principalmente los valores de los campos.

jhonny 14-11-2007 23:19:03

Cita:

Empezado por DenisDiaz (Mensaje 246234)
Lo necesito todo, pero principalmente los valores de los campos.

Sinceramnete no entendí, sería interesante si nos explicas de nuevo el asunto, pero un poco mejor ¿Que te parece?

DenisDiaz 15-11-2007 00:05:19

Muy bien, después de conectarme a una tabla .dbf utilizando un DataSet, logro mostrar en un DBGrid su contenido. Hasta ahi todo está bien. Ahora necesito acceder (o sacar) el contenido de toda la tabla para poder hacer otras operaciones con esos valores, etc. Por ejemplo, si el componente fuera un StringGrid no tendría problemas, porque este último tiene la propiedad Cell(i,j) con la que puedo obtener los valores de las celdas que desee. Esto no lo he logrado completamente con el DBGrid.
Digo que no completamente porque pude pasar los datos del DBGrid para un StringGrid utilizando el siguiente código:
Código Delphi [-]
if DBGrid1.SelectedRows.Count>0 then
    with DBGrid1.DataSource.DataSet do
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        StringGrid1.RowCount:= StringGrid1.RowCount+1;
        GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
        for j := 0 to FieldCount-1 do
        begin
              StringGrid1.Cells[j,i]:=Fields[j].AsString;
        end;
     end;
end;

Como pueden apreciar se realiza cuando una o varias filas están seleccionadas, pero necesito hacer esta operación sin necesidad de seleccionarlas. Si necesitan mas explicación haganlo saber. Gracias

jhonny 15-11-2007 00:14:51

Bueno, ¿Esto es lo que necesitas?, espero que si :).

Código Delphi [-]
var
  I :Integer;
begin
  I := 0;
  with DBGrid1.DataSource.DataSet do
  begin
    First;
    while not EOF do
    begin
      for j := 0 to FieldCount-1 do
      begin
        StringGrid1.Cells[j,i]:=Fields[j].AsString;
      end;
    Inc(I);
    Next;
    end;
  end;
end;

DenisDiaz 15-11-2007 15:14:42

Perfecto!! Muchas gracias! Después de ver la solución da pena haber preguntado eso.

jhonny 15-11-2007 16:20:13

Cita:

Empezado por DenisDiaz (Mensaje 246363)
Perfecto!! Muchas gracias! Después de ver la solución da pena haber preguntado eso.

Bueno, preguntando tambien se aprende, cuando yo estoy en algun tipo de clase aprendiendo cualquier cosa, siento que pregunto un monton de cosas sencillas, pero estoy seguro que con esas preguntas, muchos compañeros que tenian esas mismas dudas y que no se atrevian a preguntar (Sinceramente no se a que le tienen miedo) tambien lograron entender el asunto :).


La franja horaria es GMT +2. Ahora son las 10:14:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi