Calculo total dos produtos
Ola meu nome e Adriano,
Estou criando um sistema de vendas, onde tenho uma tabela de vendas, cod_produto, valor_unitario, quantidade, valor_total
exemplo: produto 1 10,00
produto 2 20,00
ou seja a mesma venda e juntar os dois valores(o total da venda ).
peço a gentileza de todos para me ajudarem,
obrigado
Estou criando um sistema de vendas, onde tenho uma tabela de vendas, cod_produto, valor_unitario, quantidade, valor_total
exemplo: produto 1 10,00
produto 2 20,00
ou seja a mesma venda e juntar os dois valores(o total da venda ).
peço a gentileza de todos para me ajudarem,
obrigado
Adrianogserafim
Curtidas 0
Respostas
Ricardo Rodrigues
04/11/2011
Não entendi direito sua dúvida, mais pelo que entendi .... por exemplo, caso vc esteja utilizando clientdataset, vc pode estar utilizando um campo calculado ou um aggregate.
Att.
Ricardo Rodrigues
Att.
Ricardo Rodrigues
GOSTEI 0
Adrianogserafim
04/11/2011
No momento estou utilizando o tibtable,
tenho uma tabela cvenda esse e o cabeçalho da venda onde esta o total da nota de venda val_t_nota
tenho outra tabela dvenda onde esta o detalhe da venda e o campo valor total dos produtos val_tot
ou seja preciso jogar o valor total da venda dos produtos em um dbedit e salvar na tabela cvenda val_t_nota
cod_pro descriçao quanti uni valor total
1 tinta 1 10 10
2 camisa 2 20 40
esses campos sao da tabela dvenda
dai eu calculo o total dos produtos e salvo no campo valor total da venda = 50 que seria o campo cvenda val_t_nota
tenho uma tabela cvenda esse e o cabeçalho da venda onde esta o total da nota de venda val_t_nota
tenho outra tabela dvenda onde esta o detalhe da venda e o campo valor total dos produtos val_tot
ou seja preciso jogar o valor total da venda dos produtos em um dbedit e salvar na tabela cvenda val_t_nota
cod_pro descriçao quanti uni valor total
1 tinta 1 10 10
2 camisa 2 20 40
esses campos sao da tabela dvenda
dai eu calculo o total dos produtos e salvo no campo valor total da venda = 50 que seria o campo cvenda val_t_nota
GOSTEI 0
Wanderson Cardoso
04/11/2011
Já que não está usando ClientDataSet voce pode usar variáveis e Calcular o total sem que vc incluir ou excluir um item da venda.
GOSTEI 0
Adrianogserafim
04/11/2011
Pois bem eu tenho ate duas formas bem legais que vai servir para nossos amigos que estão acompanhando o fourm.
1.usando o evento atraves de um botao
var soma:currency;
begin
soma:=0;
DMORDEMDESERVICO.DVENDA.First; //posiciona no primeiro
while not DMORDEMDESERVICO.DVENDA.Eof do
begin
soma:= soma + DMORDEMDESERVICO.DVENDAVAL_TOT.value;
DMORDEMDESERVICO.DVENDA.Next;
end;
DMORDEMDESERVICO.CVENDA.Edit;
DMORDEMDESERVICO.CVENDAVAL_T_NOTA.Value := soma;
2.usando atraves de uma query
FMSaidaitem.QUESOMA.Close;
FMSaidaitem.QUESOMA.SQL.Clear;
FMSaidaitem.QUESOMA.SQL.Add(Select Sum(VAL_TOT) as TOTAL from DVENDA);
FMSaidaitem.QUESOMA.Open;
FMSaidaitem.Edit1.Text:= FormatFloat(0,FMSaidaitem.QUESOMATOTAL.Value);
o do evento do botao funciona direitinho porem acho que nao fica legal, ja o da query coloquei o codigo no AfterPost da tabela dai ele esta calculando o valor total nao so da venda 1 ou 2 e sim de todas as vendas realizadas.
vc sabe como faço para fazer ele calcular somente a cada venda?
1.usando o evento atraves de um botao
var soma:currency;
begin
soma:=0;
DMORDEMDESERVICO.DVENDA.First; //posiciona no primeiro
while not DMORDEMDESERVICO.DVENDA.Eof do
begin
soma:= soma + DMORDEMDESERVICO.DVENDAVAL_TOT.value;
DMORDEMDESERVICO.DVENDA.Next;
end;
DMORDEMDESERVICO.CVENDA.Edit;
DMORDEMDESERVICO.CVENDAVAL_T_NOTA.Value := soma;
2.usando atraves de uma query
FMSaidaitem.QUESOMA.Close;
FMSaidaitem.QUESOMA.SQL.Clear;
FMSaidaitem.QUESOMA.SQL.Add(Select Sum(VAL_TOT) as TOTAL from DVENDA);
FMSaidaitem.QUESOMA.Open;
FMSaidaitem.Edit1.Text:= FormatFloat(0,FMSaidaitem.QUESOMATOTAL.Value);
o do evento do botao funciona direitinho porem acho que nao fica legal, ja o da query coloquei o codigo no AfterPost da tabela dai ele esta calculando o valor total nao so da venda 1 ou 2 e sim de todas as vendas realizadas.
vc sabe como faço para fazer ele calcular somente a cada venda?
GOSTEI 0
Joel Rodrigues
04/11/2011
adrianogserafim,
o segundo evento está calculando o total de todas as vendas por que você não está filtrando a venda que você quer e ainda está bucando a soma dos totais. Creio que para o seu caso, a consulta deveria ser algo como:
SELECT VAL_TOT AS TOTAL FROM DVENDA WHERE COD_VENDA = 001
Você deve estar usando Firebird/Interbase, certo?
Uma outra opção seria você criar um trigger na tabela dos itens da venda para que sempre que um item fosse inserido/excluído/alterado, o total da venda fosse atualizado. A ideia é fazer um trigger que seja executado em todas as operações (insert, update, delete). Com isso, você não precisaria REcalcular o total no seu código no Delphi, bastaria atualizar a query com os dados da venda para ver o total sempre atualizado. Sem falar que isso proporciona um melhor desempenho para a aplicação.
Espero ter sido claro e ajudado.
o segundo evento está calculando o total de todas as vendas por que você não está filtrando a venda que você quer e ainda está bucando a soma dos totais. Creio que para o seu caso, a consulta deveria ser algo como:
SELECT VAL_TOT AS TOTAL FROM DVENDA WHERE COD_VENDA = 001
Você deve estar usando Firebird/Interbase, certo?
Uma outra opção seria você criar um trigger na tabela dos itens da venda para que sempre que um item fosse inserido/excluído/alterado, o total da venda fosse atualizado. A ideia é fazer um trigger que seja executado em todas as operações (insert, update, delete). Com isso, você não precisaria REcalcular o total no seu código no Delphi, bastaria atualizar a query com os dados da venda para ver o total sempre atualizado. Sem falar que isso proporciona um melhor desempenho para a aplicação.
Espero ter sido claro e ajudado.
GOSTEI 0
Adrianogserafim
04/11/2011
Eu so nao entendi a ultima parte onde cod_dvenda =001 ou seja nao entendi esse numero ja que ele vai calcular somete a venda 001
GOSTEI 0