Fórum Calculo total dos produtos #409096

04/11/2011

0

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

Adrianogserafim

Adrianogserafim

Responder

Posts

05/11/2011

Ricardo Rodrigues

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
Responder

Gostei + 0

06/11/2011

Adrianogserafim

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

Responder

Gostei + 0

07/11/2011

Wanderson Cardoso

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.
Responder

Gostei + 0

07/11/2011

Adrianogserafim

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?
Responder

Gostei + 0

09/11/2011

Joel Rodrigues

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.
Responder

Gostei + 0

10/11/2011

Adrianogserafim

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
Responder

Gostei + 0

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

Aceitar