nbaum precisa cria o clientdataset no evento, basta passar o clientdataset
ligado ao dbgrid, e o proprio dbgrid e a propria coluna do evento como
parametro

e claro..

o clientdataset tem q estar aberto para ordenação acontecer e sempre q vc
for abrir de novo ou dar um refrsh nele deve passar a propriedade indexname
para DEFAULT_ORDER afim de naum dar erros...

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 1:42 PM
Subject: RES: [delphi-br] Mudar ordenação dasz colunas clicando no título do
dbgrid


Bruno, fiz as ligações assim:

Liguei o datasetProvider a tabela;
O ClientDataSEt ao DataSetProvider (Na propriedade providername)
E o dataset ao clientDataSet

O dbgrid esta ligado ao dataset.....


A função chamei assim:

procedure TfrmSIAE0101.gridSIAE0101TitleClick(Column: TColumn);
var
   CDS: TClientDataSet;
begin
   CDS := TClientDataSet.Create(self);
   CDS := dmSIAEAP01.cdsSIAE0101;
   OrdenaDataSetGrid(CDS, Column, gridSIAE0101);
end;

Mas não está funcionando,. o que eu to fazendo de errado ?


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

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