ClientDataSet alguém me ajude
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.
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
Curtidas 0
Respostas
Carlos Júnior
29/11/2011
Amigo,
Para gravar no banco as informações do ClientDataSet basta você executar o comando Cds.ApplyUpdates(0);
at++
Para gravar no banco as informações do ClientDataSet basta você executar o comando Cds.ApplyUpdates(0);
at++
GOSTEI 0
Vagner Almeida
29/11/2011
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.
GOSTEI 0
Wilson Junior
29/11/2011
Se for atualizar os dados de dentro de um ClientDataSet, deve ser feito somente através de LOOP.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Vagner Almeida
29/11/2011
vlw.
GOSTEI 0
Wilson Junior
29/11/2011
Não esqueça de finalizar o tópico.
GOSTEI 0