PDA

Ver la Versión Completa : cxGrid, con Segundo Nivel


arrakshe
27-06-2012, 01:30:11
Buenas, mi problema es el siguiente, tengo un cxGrid al cual tengo que agregarles varios sub-niveles pero cuando intento llenar dichos sub-niveles me salen en blanco, la información la tengo almacenada en un objectList<generico> el cual recorro con un for, mi codigo es el siguiente (esto se ejecuta desde un boton):

procedure TForm2.btn_cargaGridViewClick(Sender: TObject);
var
libros : TObjectList<LibroCls>;
I: Integer;
k: Integer;
begin
//Creo una lista de objetos genericos de Tipo LibroCls
libros := TObjectList<LibroCls>.create;
//lleno la lista con el metodo getLibros
libros := libroDataO.GetLibros;

with vistaLibros do
begin
//recorro la lista elemento por elemento
for I := 0 to libros.Count - 1 do
begin
if libros.Count = vistaLibros.DataController.RowCount then
begin
break;
end
else
begin
//agrego una fila(segun yo jeje), vistaLibro es de tipo table(por aquello de las dudas)
// al igual que los subniveles
vistaLibros.DataController.Append;
//agrego los valores de cada columna
vistaLibros.DataController.Values[I,0] := libros[i].codLibro;
vistaLibros.DataController.Values[I,1] := libros[i].titulo;
vistaLibros.DataController.Values[I,2] := libros[i].anno;
vistaLibros.DataController.Values[I,3] := libros[i].enStock;
//este nose para que sirve... pero sin el no funciona
vistaLibros.DataController.Post(True);

//este es el subnivel
//el cual intento de agregarle informacion y no puedo.... me sale en blanco
with vistaAutor do
begin
vistaAutor.DataController.Append;
//aqui deberia agregar algo a la columna cod autor del sub nivel
vistaAutor.DataController.Values[0,0] := libros[i].autor.codAutor;
vistaAutor.DataController.Post(true);

end;

end;

end;
end;

end;

tambien tengo algo similar en el evento del + del grid(el boton que despliega el sub-nivel) y es algo asi:

procedure TForm2.cxGridLevelAutorGetGridView(Sender: TcxGridLevel;
AMasterRecord: TcxCustomGridRecord; var AGridView: TcxCustomGridView);
begin
vistaAutor.BeginUpdate;
with vistaAutor.DataController do
begin
Append;
Values[0,0] := 'prueba de inserción de texto';
Post(True);
end;
vistaAutor.EndUpdate;
end;

He probado de varias formas con cada uno de los métodos que están aquí y lo que siempre obtengo como resultado es lo de la imagen, me gustaría saber que puedo hacer para agregarle información al sub-nivel porque aparte de ese tengo otros sub-niveles que también tengo que hacerles algo similar. De antemano les agradezco cualquier ayuda que me puedan brindar.