Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-12-2007
elorza elorza is offline
Miembro
 
Registrado: nov 2007
Posts: 41
Poder: 0
elorza Va por buen camino
Question Recorrer un cxGrid

Hola, estoy utilizando un cxGrid pero ahora necesito sacar varias cosas:

1.- Necesito conocer el nombre de las columnas de esa cxGrid. ¿Qué código utilizo?
for i:=1 to cxGrid.numero_de_columnas do
valor:=cxGrid.col(i).nombre;
......
end;

2.- Necesito RECORRER esa cxGrid y conseguir los valores. ¿Pero, qué código utilizo para acceder a cada registro?
(a si me explico)

for i:=1 to cxGrid.numero_de_registros do
for j:=1 to cxGrid.numero_de_columnas do
valor:=cxGrid.cell[i,j];
...
end;

¿Alguien me puede decir qué código utilizar?
Responder Con Cita
  #2  
Antiguo 27-12-2007
Tal Tal is offline
Miembro
 
Registrado: dic 2007
Posts: 52
Poder: 17
Tal Va por buen camino
Yo no he trabajado nunca con cxgrid pero me imagino que heredará de la glase Tcustomgrid y este tiene la propiedad colcount y rowcount.
La primera es el número de columnas y la otra el número de filas(registros).

Eso te sirve?
Un saludo.
Responder Con Cita
  #3  
Antiguo 29-12-2007
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Recorrer un cxGrid

Hola, yo tambien uso los cxGrid y son mis favoritos por todas las facilidades que dan haciendo a tu aplicacion muy poderosa.

Para recorrer los valores de un cxGrid, en realidad debes recorrer los valores del cxGridDbTableView, aqui esta un pequeño codigo que hace lo que pides:

var i,j : Integer;
begin
for j:= 0 to cxGrid1DBTableView1.dataController.rowcount - 1 do
for i:= 0 to cxGrid1DBTableView1.ColumnCount - 1 do
begin
Variable := cxGrid1DBTableView1.DataController.Values[j,i];
end;

espero que te sea de ayuda, si necesitas algo mas solo pide.

Saludos

jcarteagaf

Última edición por jcarteagaf fecha: 29-12-2007 a las 11:10:53.
Responder Con Cita
  #4  
Antiguo 07-01-2008
elorza elorza is offline
Miembro
 
Registrado: nov 2007
Posts: 41
Poder: 0
elorza Va por buen camino
Thumbs up

Gracias, gracias! ¡Haber si lo consigo!

elorza
Responder Con Cita
  #5  
Antiguo 08-01-2008
elorza elorza is offline
Miembro
 
Registrado: nov 2007
Posts: 41
Poder: 0
elorza Va por buen camino
Question

Hola de nuevo,
¿es indispensable recorrer los valores del cxGridDbTableView? es que yo solo necesito los datos del Grid, es decir, el Grid da opcion de realizar un filtrado una vez visualizado los datos, y yo solamente necesito esos datos. ¿Sabes si es posible?
Responder Con Cita
  #6  
Antiguo 08-01-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
El problema es que los Grids de las Quantum, se parecen poco en su estructura a los Grids normales o estandard de Delphi.
En realidad el cxGrid como tal no es nada. Los Grids de las Quantum se basan en "Vistas" de forma que un mismo Grid puede tener diferentes "Vistas" que no se parecen nada entre sí, por lo que realmente lo que más se parece al Grid de Delphi es una de esas Vistas, en lugar de el cxGrid en si.

En las Vistas se definen las columnas, se enlazan los conectores,...

Desde las vistas (DBTableView) puedes acceder a ColumnCount, Columns, VisibleColumnCount y VisibleColumns. Tambén tienes el método GetColumnByFieldName para accedr a una columna a partir del campo.

Para temas como el recorrido de datos filtrados dondemás información puedes encontrar es el la web de DevExpress. POseen mucha información de ejemplo y "Preguntas y respuestas".
Por ejemplo, estos dos: 1 y 2.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 09-01-2008
elorza elorza is offline
Miembro
 
Registrado: nov 2007
Posts: 41
Poder: 0
elorza Va por buen camino
Thumbs up

Muchas gracias Neftali, ¡lo intentaré!
Responder Con Cita
  #8  
Antiguo 18-01-2008
elorza elorza is offline
Miembro
 
Registrado: nov 2007
Posts: 41
Poder: 0
elorza Va por buen camino
Thumbs up

Hola, he conseguido poder trabajar solamente con los datos filtrados de un cxGrid. Simplemente añadiendo estas 2 líneas rojas y la última roja, funciona perfectamente. Por si le sirve a alguien!

FGEST_C_Consultas.qrConsulta.filtered:=
( FGEST_C_Consultas.tvMaestro.DataController.Filter.FilterText <> '');
FGEST_C_Consultas.qrConsulta.filter:=

FGEST_C_Consultas.tvMaestro.DataController.Filter.FilterText;

//Recorremos el DataSet
FGEST_C_Consultas.tvMaestro.DataController.DataSet;
FGEST_C_Consultas.tvMaestro.DataController.DataSet.First;
while not FGEST_C_Consultas.tvMaestro.DataController.DataSet.Eof do
being

...
FGEST_C_Consultas.tvMaestro.DataController.DataSet.Next;
end;


FGEST_C_Consultas.qrConsulta.filtered:=false; //Para que se llene otra vez el dataset!

Responder Con Cita
  #9  
Antiguo 05-03-2008
elorza elorza is offline
Miembro
 
Registrado: nov 2007
Posts: 41
Poder: 0
elorza Va por buen camino
Question ¿cómo puedo saber qué registro del Grid tengo seleccionado?

Hola,
¿alguien sabe cómo puedo saber qué registro del Grid tengo seleccionado?
Es decir, el Grid me visualiza 10 registros y uno de ellos está seleccionado.

¿Cómo lo puedo saber?

Gracias
Responder Con Cita
  #10  
Antiguo 05-03-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si estás trabajando con el Grid sde las Quantum puedes usar algo así:

Código Delphi [-]
  for i := 0 to (DBTableView.Controller.SelectedRecordCount - 1) do begin
    RecID := DBTableView.Controller.SelectedRecords[i].RecordIndex;
    // Item del Código
    TableItem := DBTableView.DataController.GetItemByFieldName('Codigo');
    CodID := TableItem.Index;   // Id del campo código
    // Accedemos al valor
    CodStr := DBTableView.Controller.SelectedRecords[i].Values[CodID];

    ....

Se puede "compactar" un poco, pero creo que así lo verás más claro.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hacer HotTrack a CxGrid calogero Varios 2 25-05-2007 20:10:13
InplaceEditor de cxGrid calogero Varios 2 13-04-2007 01:14:41
CxGrid Filtro Marcos Varios 2 24-01-2007 18:56:11
exportar cxGrid a Excel sakuragi Servers 2 18-08-2005 17:18:31
Duda con CxGrid El_Perrito Varios 0 12-05-2005 19:08:53


La franja horaria es GMT +2. Ahora son las 15:33:31.


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
Copyright 1996-2007 Club Delphi