Ir para conteúdo
  • Cadastre-se

dev botao

Aggregates em tempo de execução


  • Este tópico foi criado há 2714 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá pessoal

Eu renovando meu sistema, e desenvolvendo de forma a me isentar dos componentes de arrasto, tentando cria-los em tempo de execução.

Até o momento já consegui criar 

Query
Dsprovider
CdDataset

Já consegui inclusive criar os campos calculated e com isso percebi que 
tive de adicionar os campos provenientes da Query, de outra forma ele
reclama isso.
Fiz inclusive a função OnCalcFields para que ele possa alimentar os
calculated.

O que está me faltando são os Aggregates.

Já tentei de várias formas, venho tentando a meses fazer isso e até agora
nada.

Será que alguem poderia me dar alguma dica do está faltando.
Já consegui fazer de forma que ele não erro, no entanto não mostra o valor somado.
ai liguei AggregatesActive:=True e nada.

Espero que uma boa alma possa me dar uma dica valiosa.

Muito Obrigado
 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Veja esse artigo: http://edn.embarcadero.com/article/29001

Tem um programa exemplo no final com o código.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Moderadores
Pfunction TCdsTemp.AGregarCampos(const CdSet: TClientDataSet; eNumCampo,
  EnuDisplays: array of const): TClientDataSet;
Var
  xpara : Integer;
begin
  Result := CdSet;
  with Result do
  begin
    AggregatesActive := False;
    For xpara := low( eNumCampo ) to High( eNumCampo ) do
    begin
      if Aggregates.Find(Format( '%s',  EnuDisplays[xpara]) ) = nil
      then
        with Aggregates.Add do
        begin
          Expression    := Format( 'Sum(%s)', eNumCampo[xpara] );
          AggregateName := Format( '%s',  EnuDisplays[xpara]);
          Active        := True;
        end;
    end;
    AggregatesActive := true;
  end;
end;

        AGregarCampos( CdSet, [ 'DTotal'   ,'Adt' , 'Receber','Simples' ,'IssVAlor','Comissao','Compra_1','lbruto','compras','areceber' ],
                   [ 'DDTotal'  ,'DAdt','DReceber','DSimples','dIssVAlor','dComissao','dCompra_1','dlbruto','dcompras','dareceber' ] );
 

 

 

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

Nossa, que dahora, agradeço mesmo, meu sistema administrativo está ficando muito xik. Se eu tivesse que adiquirir um sistema desses eu pagaria uma fortuna de tão bom que está ficando kkk.

Embora, eu, de tanto insistir desde terça feira passada, acabei conseguindo fazer funcionar, mas estou vendo que o tratamento que voces usam em relação a criar variáveis em memoria é muito melhor do que eu fiz, vou adaptar esses codigo para o meu sistema.  Muito obrigado

 

abraço a todos

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2714 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...