Foros Club Delphi

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

pzala 13-12-2003 04:29:11

Problema con DBGrid
 
hola, tengo un problema, con el DBgrid.


como le puedo asignar al DBgrid los datos de una tabla,
pero no quiero colocar todos los ampos, solo algunos,estuve analizando algo asi, pero esta malo.


DBgrid.fields[0]:='nombre del campo en la tabla
......[1]:=
....[2]:=


pero esto no me funciona, habra otra formita.

gracias si me pueden responder.

Osorio 13-12-2003 04:40:23

1. Colocas un componente TDataSource
2. Enlazas la propiedad DataSet de este con la tabla
3. Enlazar la propiedad DataSource con el componente TDataSource
4. Haces doble click sobre el dbgrid
5. En la ventana del editor de campos agregas todos los campos y despues quitas los que no te gusten ( o no necesites).


y si lo necesitas hacer por codigo

seria con la propiedad columns[] en vez de fields[]


suerte...

pzala 13-12-2003 05:16:59

Si, necesito hacerlo por codigo no por propiedades, asi que probe.


DBgrid.columns[].fieldname:='todo lo demas'


y eos me cambia en nombre del titulo de la columna, pero no me hace los registros, osea no llena los campos,
probe con varias otras, pero nada de lo que probe me sirvio, si alguien sabe algo mas, porfa....

__cadetill 13-12-2003 13:24:44

Cuando haces
Cita:

pzala comentó:
DBgrid.columns[].fieldname:='todo lo demas'
supongo que entre los corchetes pondrás el número de columna pertinente (1,2,3,....,n), no?

pzala 13-12-2003 17:17:36

exacto eso es lo que hago, pero no me resulta de esa forma, osea no veo nada.

__cadetill 13-12-2003 17:27:30

Por que no pones el código que usas para ver dónde puede estar el error?

Ruben_Cu 14-12-2003 02:15:44

Hola a todos, pzala parece que no estás adicionando las columnas, para rellenar el DBGrid, en tiempo de ejecución es necesario tener esto en cuenta te propongo que adecues a tu necesidad este código:
Código:

procedure TForm1.Button1Click(Sender: TObject);
begin
        with DBGrid1 do begin
                Columns.Clear;
                Columns.Add;
                with Columns[0] do
                        begin
                        FieldName := 'material';
                        Title.Alignment := taCenter;
                        Title.Caption := 'Descripción';
                        Width:= 300;
                        end;
                Columns.Add;
                with Columns[1] do
                        begin
                        FieldName := 'usuario';
                        Title.Alignment := taCenter;
                        Title.Caption := 'Comprador';
                        Width:= 60;
                        end;
                end;
end;

Aquí he adicionado dos columnas con las propiedades que yo necesito puedes usar mas o menos en función tus requerimientos. Obviamente repitiendo los bloques adicionas mas columnas.
El método clear es por si creastes columnas en tiempo de diseño de no ser así te sobra.
Espero esto te sea útil.
Saludos

pzala 14-12-2003 02:23:54

pero donde mando los datos de la tabla?????

donde pones eso???? me, puedes explicar mas esas asignaciones porfavor.

FieldName := 'material';
Title.Alignment := taCenter;
Title.Caption := 'Descripción';
Width:= 300;

Ruben_Cu 14-12-2003 02:56:28

Cita:

pero donde mando los datos de la tabla?????
Se supone que tienes un dataset que ataca a la tabla de la base de datos de la que auieres ver los resultados y además un DataSource conectado al dataset y el DBGrid conectado al DataSource. O sea que ya hicistes lo que te recomendo Osorio en cuanto a conexiones entre tu control y la fuente de datos.
Si no lo has hecho esto es lo primero que debes hacer en tiempo de diseño.
Cita:

donde pones eso???? me, puedes explicar mas esas asignaciones porfavor.

FieldName := 'material';
Title.Alignment := taCenter;
Title.Caption := 'Descripción';
Width:= 300;
Al adicionar una nueva columna en el DBGrid debes darle valores a sus propiedades básicas, eso es lo que hago. El ejemplo que te mande es un pedazo de código de un programa mío y en este caso 'material' es el nombre de mi campo y 'Descripición' el texto que quiero aparezca en el titulo de la columna. Como suele escribir d.a.c te recomiendo te leas la ayuda con relación al DBGrid y al TColumns.
Saludos

pzala 14-12-2003 18:06:07

Sabes que ya incorpore el codigo y me funciono lo de los titulos en el Dbgrid, pero aun no se como colocarles los registros, no se como ponerle el fielname correctamente, en realidad no le he hecho ninguna conexion al DBgrid, es que tengo mas Dbgrid conectados a distintas tablas, pero no quiero cometer un error y conectar ese y que no me conecte a la que yo desea.


me puedes dar mas instrucciones, que soy media lerda parece,...

jejej

pzala 14-12-2003 18:48:07

Muy bien , ahora si me resulta correctamente , gracias por tu ayuda......




bastaba con hacer la conexion que me faltaba, jeje


La franja horaria es GMT +2. Ahora son las 08:51:41.

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