usa assim: No evente de clique no titulo da coluna coloque: André Luis da Silveira Laticínios Morrinhos Ind Com Ltda Desenvolvedor ----- Original Message ----- From: Eduardo Silva ® To: delphi-br@yahoogrupos.com.br Sent: Monday, May 09, 2005 10:02 AM Subject: RES: [delphi-br] Mudar ordenação dasz colunas clicando no título do dbgrid
Bruno, esqueci de mencionar, eu to usando o delphi 5.... Nele não tem o ClientDataSet.... Pela última vez eu pergunto (rs rs rs). Há outra alternativa ? -----Mensagem original----- De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Bruno Lichot - Micrologos Enviada em: segunda-feira, 9 de maio de 2005 09:58 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Mudar ordenação dasz colunas clicando no título do dbgrid Sim e possivel, basta vc colocar um datasetprovider ligado a table e e uma clientdataset a este provider e o resto e td igual. Abaixo vai uma procedure q ordena baseado no titleclick, vc deve colocar a chamada dela no titleclick do dbgrid e passar a coluna, o dbgrid e o clientdataset por prametro. procedure TForm.OrdenaDataSetGrid( var CDS: TClientDataSet; Column: TColumn; var dbgPrin: TDBGrid); const idxDefault = 'DEFAULT_ORDER'; var strColumn : string; i : integer; bolUsed : boolean; idOptions : TIndexOptions; begin strColumn := idxDefault; if Column.Field.FieldKind in [fkCalculated, fkLookup, fkAggregate, fkInternalCalc] then Exit; if Column.Field.DataType in [ftBlob, ftMemo] then Exit; for i := 0 to dbgPrin.Columns.Count -1 do dbgPrin.Columns[i].Title.Font.Style := []; bolUsed := (Column.Field.FieldName = CDS.IndexName); with CDS do begin IndexDefs.Update; for i := 0 to IndexDefs.Count - 1 do begin if IndexDefs.Items[i].Name = Column.Field.FieldName then begin strColumn := Column.Field.FieldName; case (IndexDefs.Items[i].Options = [ixDescending]) of true : idOptions := []; false : idOptions := [ixDescending]; end; end; end; if (strColumn = idxDefault) or (bolUsed) then begin if bolUsed then DeleteIndex(Column.Field.FieldName); try AddIndex(Column.Field.FieldName, Column.Field.FieldName, idOptions, '', '', 0); strColumn := Column.Field.FieldName; except if bolUsed then strColumn := idxDefault; end; end; try IndexName := strColumn; Column.Title.Font.Style := [fsbold]; except IndexName := idxDefault; end; end; end; as ordens []´s Bruno Lichot Gerente de Novas Tecnologias - Micrologos Equipe ClubeDelphi DevMedia [EMAIL PROTECTED] [EMAIL PROTECTED] www.micrologos.com.br - www.clubedelphi.net - www.delphirio.assespro-rj.org.br ----- Original Message ----- From: "Eduardo Silva ®" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Monday, May 09, 2005 9:43 AM Subject: RES: [delphi-br] Mudar ordenação dasz colunas clicando no título do dbgrid O problema é que eu uso paradox, com table, existe alguma outra solução ? É possível adaptar o componente table + paradox para trabalhar com o clientdataset ? -----Mensagem original----- De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Ricardo Vicente Enviada em: sexta-feira, 6 de maio de 2005 11:14 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Mudar ordenação dasz colunas clicando no título do dbgrid Olá ! Você pode usar o DBGrid mesmo, usando ClientDataSet. No Evento OnTitleClick coloque : DATAMODULE.TabelaDoClientDataSet.IndexFieldNames:=Column.FieldName; LabelDaBusca.Caption:='&Busca por '+Column.Title.Caption; Ricardo Celso Redes <[EMAIL PROTECTED]> escreveu: Utilize o grid Jvdbgrid e no evento On title click Procedure TForm1.JvDBGrid1TitleClick(Column: TColumn); begin CASE Column.Index OF 0: SimpleDataSet1.IndexFieldNames:= 'CODIGO'; 1: SimpleDataSet1.IndexFieldNames:= 'NOME'; 2: SimpleDataSet1.IndexFieldNames:= 'ENDERECO'; 3: SimpleDataSet1.IndexFieldNames:= 'BAIRRO'; end; end; obs. Setar para TRUE a opção TitleButtons. Celso Redes ----- Original Message ----- From: Eduardo Silva ® To: Grupo Delphi-br Sent: Friday, May 06, 2005 10:27 AM Subject: [delphi-br] Mudar ordenação dasz colunas clicando no título do dbgrid Galera tenho o código abaixo que serve para mudar a ordenação do dbgrid conforme eu clico na coluna. Só que no dbgrid, para exibir os dados eu uso um datamodule com tabelas. Eu gostaria de saber se existe algum outro meio de estar ordenado estas colunas, pois do jeito que está baixo, eu tenho que associar o dbgrid a outro datasource, mudar os displaylabel e quando for fazer alguma operação na tabela (incluir, alterar, etc) eu tenho que voltar ao dataset anterior (tabela). Resumindo: é muita linha de programação que eu terei que fazer, não teria um jeito mais fácil e mais seguro de resolver isso ? var campo: string; begin campo:= column.fieldname; // CAMPO RECEBE O NOME DA COLUNA CLICADA application.processmessages; // CONSIDERAR ALGO QUE ACONTEÇA NO DBGRID DURANTE A ENTRADA NESTA PROCEDURE query.sql.clear; // LIMPA A QUERY query.sql.add('SELECT * FROM TABELA ORDER BY ' + campo); // ESCREVE O SELECT COM O ORDER BY if not query.Prepared then begin query.Prepare; query.Open; // ABRE A QUERY COM A ORDEM ESCOLHIDA. DBGrid.DataSource := DataSource1; end; end; ~\\|//~ -(o o)- o--------------oOOOo--(_)--oOOOo-------------o | | | Eduardo de Almeida Silva | | Kobra Sistemas | | [EMAIL PROTECTED] - (14)3263-0326 | | | | .oooO Oooo. | o----------------( )---( )---------------o \ ( ) / \_) (_/ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: São Paulo Rio de Janeiro Curitiba Porto Alegre Belo Horizonte Brasília ------------------------------------------------------------------------ -- ---- Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por:PUBLICIDADE --------------------------------- Links do Yahoo! Grupos Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. --------------------------------- Yahoo! Mail: agora com 1GB de espaço grátis. Abra sua conta! [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: São Paulo Rio de Janeiro Curitiba Porto Alegre Belo Horizonte Brasília -------------------------------------------------------------------------- -- -- Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: São Paulo Rio de Janeiro Curitiba Porto Alegre Belo Horizonte Brasília ---------------------------------------------------------------------------- -- Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: São Paulo Rio de Janeiro Curitiba Porto Alegre Belo Horizonte Brasília ------------------------------------------------------------------------------ Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html