Se vc estiver usando DBX e ClientDataSet, basta colocar esta linha de código no 
evento OnTitleClick.

(Column.Field.DataSet as TClientDataset).IndexFieldNames := Column.FieldName;

 
Luis Alberto
Belo Horizonte - MG


----- Mensagem original ----
De: Juliana Duque <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Domingo, 21 de Janeiro de 2007 21:34:02
Assunto: [delphi-br] Evento OnTitleClick do DBgrid

Olá pessoal,
   
  Tenho uma dúvida sobre o dbgrid.
  Preciso ordenar as colunas que trazem no dbgrid. Tenho um botão onde está a 
consulta trazendo vários campos, funcionando corretamente, alguns campos que 
trago na consulta tem aliases, outros não. Ex: ('select campo1 as camp, campo 2 
from tabela')
No dbgrid, no evento OnTitleClick eu utilizo exatamente a mesma consulta para 
fazer a ordenação de cada título da coluna que for clicada.
Acontece que os campos que tem alias não funcionam a ordenação, só funciona a 
ordenação dos campos que não estou dando um alias para eles.
Dá erro de Coluna desconhecida.
Tem alguma restrição quanto a isso? Não posso utilizar na consulta para cada 
campo um alias porque é regra do dbgrid neste evento OnTitleClick? Porque 
quando a consulta é feita sem nenhum alias ele funciona!! Ou estou fazendo algo 
errado?
  
procedure TBusca.DBGrid1TitleClick(Column: TColumn);
  var coluna_campo:string;
begin
    coluna_campo:=column.fieldname;
    application.processmessages;
    datamod.SQLx.sql.clear; 
    datamod.SQLx.add('select campo1 as camp, campo2 from tabela);
    datamod.SQLx.add('order by '+coluna_campo);
    if not datamod.SQLx.Prepared then
      datamod.SQLx.Prepare;
      datamod.SQLx.Open;
      DBGrid1.Columns[0].Width:=200;
      DBGrid1.Columns[1].Width:=350;
End;
   
  
Obrigada
   
  Juliana

 __________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Links do Yahoo! Grupos

 






__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]

Responder a