Fórum ClientDataSet alguém me ajude #409974

29/11/2011

0

Olá!

Montei uma tela para aplicar descontos e promoções nos produtos;

Estou utilizando os seguintes componentes: ZQuery, DataSetProvider, ClientDataSet, DataSource e o DBGrid.

Estou utilizando o DataSetProvider apenas para caregar os dados no ClientDataSet mais rápido, pois além de gravar os dados dos campos promoção e Descontos (Min. e Máx.), preciso gravar támbem os dados da promoção em duas tabelas (PromocaoCab e PromocaoItens), por isso não utilizo o ClientDataSet para gravar no BD, utilizo ele apenas para armazenar temporáriamente os registros que enviarei para o BD tudo de uma vez.

Na nessa tela tenho um botão para simular os descontos e as promoções antes de aplicar, pois nem todos os produtos obterão um valor padronizado, por tanto estou habilitando a possibilidade de o usuário poder alterar, também, registro a registro a gosto dele.

Gostaria de saber se há algum comando para que eu aplique a simulaçao no ClientDataSet de forma mais rápida e simplificada, pois estou utilizando o seguinte comando para simular os preços:

CDS.FIRST;
CDS.EDIT;
while not CDS.EOF do
begin
CDS.FIELDBYNAME(PRCPROMOCAO).ASFLOAT := CDSPRCPROMOCAO.ASFLOAT - (CDSPRCPROMOCAO.ASFLOAT * ALIQPROMO.VALUE / 100);
CDS.NEXT;
end;
CDS.POST;

Existe alguma forma mais simples para aplicar esse cálculo em todos os registros listados no ClientDataSet de uma vez, como um UPDATE, por exemplo?

Agradeço desde já qualquer ajuda.
Vagner Almeida

Vagner Almeida

Responder

Posts

29/11/2011

Carlos Júnior

Amigo,

Para gravar no banco as informações do ClientDataSet basta você executar o comando Cds.ApplyUpdates(0);

at++

Responder

Gostei + 0

29/11/2011

Vagner Almeida

O conteúdo do ClientDataSet são de duas tabelas, para gravar no BD, não é o problema. Gostaria de saber se há algum código que eu possa utilizar para atualizar (FAZER AS SIMULAÇÕES) dentro do CDS, como um update de um sql, por exemplo, que substitua o comando que eu exemplifiquei.
Responder

Gostei + 0

01/12/2011

Wilson Junior

Se for atualizar os dados de dentro de um ClientDataSet, deve ser feito somente através de LOOP.

Espero ter colaborado.
Responder

Gostei + 0

01/12/2011

Vagner Almeida

vlw.
Responder

Gostei + 0

15/12/2011

Wilson Junior

Não esqueça de finalizar o tópico.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar