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]
 
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

 


Responder a