DBGrid

Delphi

04/06/2009

Como faço para quando o usuario alterar a ordem das colunas isso ficar gravado, ou melhor ficar na mesma ordem quando ele entrar novamente na tela ?

Abs


Felipeiw

Felipeiw

Curtidas 0

Respostas

Danielrsanches

Danielrsanches

04/06/2009

olha !!

existem várias formas de se fazer isso ... vc trabalha com SQL ?? está utilizando uma QUERY ou uma TABLE para exibir os dados nesse grid ??

vc quer gravar essas informações apenas em tempo de execução do sistema ou em um arquivo ??

passa maiores informações que a gente te explica certinho o q fazer !!

abraços !!


GOSTEI 0
Felipeiw

Felipeiw

04/06/2009

Trabalho com D7, FB e os componentes DBExpress para acesso aos dados, alguns clientes quando entram em algum relatorio que utilizo o dbgrid, querem eles mesmos alterar a ordem das colunas, mas querem que essa ordem fiquem gravada.

Abs


GOSTEI 0
Danielrsanches

Danielrsanches

04/06/2009

uma de muitas formas, é vc gravar em um arquivo texto ... vc pode criar uma variável timo TMEMO ou TSTRINGLIST e salvá-los em arquivos texto, recuperando-os assim que o form do relatorio for aberto ...


GOSTEI 0
Felipeiw

Felipeiw

04/06/2009

Sao muitos formularios que eu uso o dbgrid, essa maneira daria mt retrabalho, sera q nao existe uma maneira de alterar o indice das colunas, por exemplo ? Assim eu nao iria precisar de arquivos auxiliares, a alteracao seria direto no componente dbgrid.

Abs


GOSTEI 0
Woinch

Woinch

04/06/2009

O DBGrid nativo não tem essa opção de salvar o posicionamento das colunas. Experimente encontrar um DBGrid terceiro que faça isso ou implemente você mesmo essa função. Aqui na empresa nos implementamos uma função para salvar em banco de dados o posicionamento e ordenação do grid para cada usuário que utiliza o sistema. Cabe a você montar sua função para gravar e restaurar essas configurações de acordo com a sua necessidade.

Caso tenha alguma dúvida basta postar que iremos lhe ajudar, mas vale lembrar que não vamos colar o código pronto aqui para você.

Espero ter ajudado.


GOSTEI 0
Pestana_

Pestana_

04/06/2009

você poderia fazer desta maneira:

// carrega as configurações do dbGrid.
procedure Tform1.CarregarConfigGrade;
var
   spath : string;
begin
   spath := ExtractFilePath(Application.ExeName);
   if FileExists(spath+´dbGridXXX.cfg´) then
     DBGrid1.Columns.LoadFromFile(spath+´dbGridXXX.cfg´);
end;

// salva as configurações do dbGrid.
procedure Tform1.SalvarConfigGrade;
var
   spath : string;
begin
   spath := ExtractFilePath(Application.ExeName);
   DBGrid1.Columns.SaveToFile(spath+´dbGridXXX.cfg´);
end;

procedure Tform1.FormShow(Sender: TObject);
begin
   CarregarConfigGrade;  // carrega as configurações do dbGrid.
end;

procedure Tform1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   SalvarConfigGrade;    // salva as configurações do dbGrid.
end;



GOSTEI 0
Felipeiw

Felipeiw

04/06/2009

Pestana, Obrigado, Funcionou perfeitamente.


Abs a Todos


GOSTEI 0
Pestana_

Pestana_

04/06/2009

qui bom! qualquer coisa estamos ai!


Abraços.


GOSTEI 0
POSTAR