Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Como mostrar con DevExpress la grilla como quedo en la última consulta? (https://www.clubdelphi.com/foros/showthread.php?t=41502)

Alexander 16-03-2007 22:03:38

Como mostrar con DevExpress la grilla como quedo en la última consulta?
 
Hola a todos.

Utilizo DevExpress para visualizar los datos de mis consultas a la base de datos. Yo puedo crear diferentes filtros y consultas en la propia grilla.

Alguien sabe como puedo hacer, para que siempre me quede el ultimo filtro hecho en la grilla?, que la próxima vez que abra, me abra como la deje la última vez?.

Gracais

Alexander

Héctor Randolph 16-03-2007 23:38:39

Hola Alexander

Las vistas que muestras en un cxGrid dan la opción de guardar los filtros que usa el usuario dentro de un archivo, si lo que quieres es abrir el grid con el filtro más reciente puedes hacer uso de estos métodos para guardarlos y recuperarlos.

Por otra parte, también puedes almacenar la configuración de una vista, es decir, la posición y tamaño de las columnas y el orden de los datos, etc.

De esta forma si el usuario personaliza una vista en la cual agrupa y ordena datos o bien oculta algunas columnas o las mueve o redimensiona con estos métodos puedes almacenar su configuración.

Ahora mismo no recuerdo el nombre de los métodos pero creo que es algo como SaveToRegister, SavetoStream y RestoreFromRegister, en cuanto llegue a mi casa podré decirte con exactitud el nombre de los métodos y como llamarlos, por ahora no tengo DevExpress a la mano.


Saludos

CrazySoft 17-03-2007 05:01:48

Prueba con esto

Código Delphi [-]
 
procedure TForm1.SaveColPos(Const DbGrid:TDBgrid);
var 
  Registro :TRegistry;
  F        :Byte;
begin 
  Registro:=TRegistry.Create;
  Registro.OpenKey('\Software\NombreDelPrograma\Grids',True);
  for F:=0 to DbGrid.Columns.Count-1 do 
    Registro.WriteInteger(DbGrid.Name+'['+IntToStr(F)+']',DbGrid.Columns[F].Width);
  Registro.Free;
end; 
 
procedure TForm1.LoadColPos(Var DbGrid:TDBgrid);
var 
  Registro :TRegistry;
  F        :Byte;
begin 
  Registro:=TRegistry.Create;
  Registro.OpenKey('\Software\NombreDelPrograma\Grids',False);
  if Registro.ValueExists(DbGrid.Name+'[0]') then 
    for F:=0 to DbGrid.Columns.Count-1 do 
      DbGrid.Columns[F].Width:=Registro.ReadInteger(DbGrid.Name+'['+IntToStr(F)+']');
  Registro.Free;
end; 
//**********
-Y ahora, utiliza el evento OnCreate de la form para cargar el ancho de las columnas:

 procedure TForm1.FormCreate(Sender: TObject);
begin 
  LoadColPos(DBGrid1);
end; 
 
 
 
-Y para grabar las columnas antes de salir de tu aplicacion, usa el evento OnDestroy de la Form:
 
 
 
procedure TForm1.FormDestroy(Sender: TObject);
begin 
  SaveColPos(DBGrid1);
end;

Alexander 27-03-2007 22:37:03

Perefecto
 
Realmente es lo que necesitaba, Muchachos muchas gracias.

Alexander


La franja horaria es GMT +2. Ahora son las 13:02:59.

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