Fórum Ordenar DBGrid #237036

09/06/2004

0

Fala galera, esse eh meu primeiro post de muitos outros.... hehe... ainda sou novato no Delphi, mas assim q tiver condições espero poder contribuir muito c/ o Forum. Bom, vamos a minha duvida:

Tenho um form q tem 1 DBGrib e um RadioGroup c/ 4 itens, e cada um desse 4 itens são formas de ordenar os dados dentro do dbgrid (em tempo de execução), gostaria de saber qual o procedimento de quando o cara clicar no radio, o dbgrid dar tipo um refresh e ordenar pelo tipo do radio (ordenar por data, produto, preço e etc..)

[]s DB! :twisted:


Mascarade

Mascarade

Responder

Posts

09/06/2004

Otto

ja que vc ta usando um radiogroup eu faria assim:


No OnClick no radiogroup vc faz:

With query1 do Begin
  if active then close;
  case radiogroup.itemindex of
     0: SQL.Text := ´Select * from tabela order by nome´;  
     1: SQL.Text := ´Select * from tabela order by endereco´;  
     2: SQL.Text := ´Select * from tabela order by cidade´;  
     3: SQL.Text := ´Select * from tabela order by telefone´;  
  End;//Case
  Open; // Abrir query
End; // with


no radio gorup, os itens tem que esta assim:

Nome, Endereco, Cidade e telefone. olhando ai vc vai ter a ideia.... :wink:


Responder

Gostei + 0

09/06/2004

Mascarade

Valeu cara, mas na hora q eu clico no radio ele nao atualiza automaticamente....

[]s DB! :twisted:


Responder

Gostei + 0

09/06/2004

Otto

blz, então me faz o seguinte, cola aqui o codigo, os itens que vc tem no radiogroup e os campos que vc tem na tabela... :wink:


Responder

Gostei + 0

09/06/2004

Mascarade

campos da tabela: Data, Produto, Status
campos do RadioGroup: Data, Produto, Pago, Não Pago

sendo q o pago e não pago deveria ser uma consulta c/ ASC e DESC consecutivamente.


[]s DB! :twisted:


Responder

Gostei + 0

09/06/2004

Otto

ok, faça o seguinte teste:

With query1 do Begin 
  if active then close; 
  case radiogroup.itemindex of 
     0: SQL.Text := ´Select * from NomeDaTabela order by data´;  
     1: SQL.Text := ´Select * from NomeDaTabela order by produto´;  
     2: SQL.Text := ´Select * from NomeDaTabela order by status´;  
  End;//Case 
  Open; // Abrir query 
End; // with


verifique se a query ta ligada no componente de conexão com o banco, e se o dbgrid ta ligado ao datasource e o datasource ligado a query.

so coloquei pra organizar por Data, produto e status...

testa e ver no que que dar... :wink:


Responder

Gostei + 0

09/06/2004

Mascarade

Entao cara, eu jah tinha feito dessa meneira qdo vc colocou ai... mas qdo eu clico na opcao, ele nao ordena na hora, ele fica stático, como ele abriu.... :oops:

[]s DB! :twisted:


Responder

Gostei + 0

09/06/2004

Otto

Olha, aqui em casa eu fiz assim, no ontitleclick do dbgrid:


procedure TfmConUsuario.DBGrid1TitleClick(Column: TColumn);
begin
  Screen.Cursor := crHourGlass;
  if zq1.Active then zq1.Active := false;

  Case Column.Index of
     0 : zq1.SQL.Text := ´Select * from tbUsuarios Order by Nome´;
     1 : zq1.SQL.Text := ´Select * from tbUsuarios Order by Login´;
    Else
       MessageBox(0,´Não é permitido organizar por Este campo !´,´ORGANIZAÇÃO´,
                    MB_OK+MB_ICONERROR);
  end; //case

  zq1.Open;
  Screen.Cursor := crDefault;
end;


funciona tudo Ok.... bom, pelo menos valeu a intenção... :wink:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar