Fórum Calculo total dos produtos #409096
04/11/2011
0
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
Curtir tópico
+ 0Posts
05/11/2011
Ricardo Rodrigues
Att.
Ricardo Rodrigues
Gostei + 0
06/11/2011
Adrianogserafim
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
07/11/2011
Wanderson Cardoso
Gostei + 0
07/11/2011
Adrianogserafim
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
09/11/2011
Joel Rodrigues
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
10/11/2011
Adrianogserafim
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)