soma em DBText
Tenho 4 DBText. Nos tres primeiros consegui montar querys para trazer o total pra cada item. Exemplo abaixo:
DBText1 = query para retornar total para item1;
DBText2 = query para retornar total para item2;
DBText3 = query para retornar total para item3;
O problema esta no DBText4 onde quero que apareça a soma de tudo seguindo a seguinte formula:
DBText4 = ((DBText1 + DBText2) - DBText3);
Se possivel, como faço para limpar a memoria dos dados que digitei em um form de cadastro mas desisti no meio do caminho?
alguem me de uma luz, por favor.
Carlos Magno
Respostas
Joel Rodrigues
25/07/2012
var total:double; begin total := StrToFloat(DBText1.Text) + StrToFloat(DBText2.Text) + StrToFloat(DBText3.Text); DBText4.Text := FormatFloat(´#,##0.00´, total);
Isso após definir o texto dos três primeiros componentes.
Boa sorte.
Carlos Magno
25/07/2012
Quando dou um Append para iniciar um novo cadastro, noto que no dbgrid o cursor indica um novo cadastro. Só que se eu fechar o form de cadastro sem clicar em salvar, os dados digitados ficam la no dbgrid e se eu abrir novamente o form para cadastrar os dados digitados ainda estarão lá. Como fazer para limpa-los.
Colega, criei um outro tópico antes desse e ainda não consegui resolve-lo. Se puder me dar uma ajuda la. o Link segue abaixo:
[url]https://www.devmedia.com.br/forum/aparecer-sinais-+-e-em-numeros/420359[/url]
Valeu pela ajuda que me prestar.
Bruno Leandro
25/07/2012
Joel Rodrigues
25/07/2012
if query.State in [dsEdit, dsInsert] then query.Cancel;
Abraço.
Carlos Magno
25/07/2012
Joel Rodrigues
25/07/2012
Carlos Magno
25/07/2012
Eu coloquei o código desta forma:
if dm01.tbl_servico.State in [dsInsert, dsEdit] then dm01.tbl_servico.Cancel;
Esta dando erro Undeclared indentifier. dsInsert
William
25/07/2012
Carlos Magno
25/07/2012
William
25/07/2012
Joel Rodrigues
25/07/2012
Carlos Magno
25/07/2012
[url]https://www.devmedia.com.br/forum/aparecer-sinais-+-e-em-numeros/420359[/url]
Carlos Magno
25/07/2012
Olá, não entendi a segunda pergunta, mas a questão da soma pode ser resolvida da convertendo o texto dos demais DBTexts. Por exemplo:
#Código
var
total:double;
begin
total := StrToFloat(DBText1.Text) + StrToFloat(DBText2.Text) + StrToFloat(DBText3.Text);
DBText4.Text := FormatFloat(´#,##0.00´, total);
Isso após definir o texto dos três primeiros componentes.
Boa sorte.
Não sei se esqueci de falar, mas os valor são em moeda e os DBText1, DBText2 e DBText3 possuem querys próprias para retorna a soma...
DBText1 = query para retornar total para item1;
DBText2 = query para retornar total para item2;
DBText3 = query para retornar total para item3;
DBText4 = ((DBText1 + DBText2) - DBText3);
seria mais ou menos assim...
DBText1 = R$ 100,00
DBText2 = R$ 350,00
DBText3 = R$ 84,50
DBText4 = (R$ 100,00 + R$ 350,00) - R$84,50)
DBText4 = R$ 365,50
Joel Rodrigues
25/07/2012
Carlos Magno
25/07/2012
William
25/07/2012
Quanto à captura dos valors vc pode usar:
DBText1.Text
ou
DBText1.Field.AsString
Carlos Magno
25/07/2012
William
25/07/2012
Carlos Magno
25/07/2012
É uma tabela para controle de caixa, e são três tipos de entradas. Tenho 4 DBTexts e três deles me retornam a soma do total para cada tipo:
DBText1 me retornar a soma dos valores para entradas do tipo 1 através de um TQuery;
DBText2 me retornar a soma dos valores para entradas do tipo 2 através de um TQuery;
DBText3 me retornar a soma dos valores para entradas do tipo 3 através de um TQuery;
No DBText4 quero que me mostre o valor resultante total seguindo a formula abaixo:
DBText4 = ((DBText1 + DBText2) - DBText3);
Carlos Magno
25/07/2012
É uma tabela para controle de caixa, e são três tipos de entradas. Tenho 4 DBTexts e três deles me retornam a soma do total para cada tipo:
DBText1 me retornar a soma dos valores para entradas do tipo 1 através de um TQuery;
DBText2 me retornar a soma dos valores para entradas do tipo 2 através de um TQuery;
DBText3 me retornar a soma dos valores para entradas do tipo 3 através de um TQuery;
No DBText4 quero que me mostre o valor resultante total seguindo a formula abaixo:
DBText4 = ((DBText1 + DBText2) - DBText3);
William
25/07/2012
Bom vamos lá, tentei reproduzir seu cenário e fiz algumas modificações:
1 - Mude para false a propriedade currency de todos os campos monetários, não vai mais aparecer R$.
2 - Na propriedade DisplayFormat dos campos monetários atribua esse valor ##0.00, estamos inserindo uma máscara básica para seu valores.
3 - Estou supondo que essa soma ocorra durante uma inserção no banco de dados, então usei esse código para somar e salvar.
var
total : Double;
begin
if cds1.State in [dsInsert, dsEdit] then
begin
total := 0;
total := ((StrToFloat(dbedtVALOR.Text) + StrToFloat(dbedtVALOR_CUSTO.Text)) - StrToFloat(dbedtVALOR_VENDA.Text));
dbedtVALOR_TOTAL.Text := FloatToStr(total);
cds1.Post;
end;
end;
Funcionou perfeitamente, testa aí qualquer coisa poste novamente, mas nunca desista!
Carlos Magno
25/07/2012
Tipo 1 = Doações (entrada em caixa);
Tipo 2 = Recebimentos (entrada em caixa);
Tipo 3 = Pagamentos (saída);
o DBText4 é para saber o total que tenho em caixa;
DBText4 = ((DBText1 + DBText2) - DBText3)
Total em caixa = ((entrada tipo1 + entrada tipo2) - saidas;
William
25/07/2012
Para trabalhar com DBEdit vc precisa inserir ou editar campos, se for só para apresentar valor da soma e não gravar a soma no banco pode usar edit mesmo.
Carlos Magno
25/07/2012
William
25/07/2012
William
25/07/2012
var total : Double; begin if cds1.State in [dsInsert, dsEdit] then begin total := 0; total := ((StrToFloat(dbedtVALOR.Text) + StrToFloat(dbedtVALOR_CUSTO.Text)) - StrToFloat(dbedtVALOR_VENDA.Text)); Label.caption := Formatfloat(##0.00, total); cds1.Post; end; end;
William
25/07/2012
var total : Double; begin total := 0; total := ((StrToFloat(dbedtVALOR.Text) + StrToFloat(dbedtVALOR_CUSTO.Text)) - StrToFloat(dbedtVALOR_VENDA.Text)); Label.caption := Formatfloat(##0.00, total); end;
Carlos Magno
25/07/2012
Carlos Magno
25/07/2012
William
25/07/2012
Eu testo e copio o código para fórum, ou acessar sua máquina via teenview..
Carlos Magno
25/07/2012
caso queira ver o form ta o link da imagem do form logo abaixo:
[url]http://oticasaofco.com.br/images/caixa.jpg[/url]
Carlos Magno
25/07/2012
William
25/07/2012
Seu código deve estar faltando apenas detalhes, inclusive baseado nessa última mensagem de erro que tem relação com o uso do Label.caption.
Cauê Nishijima
25/07/2012
Ou eu não estou entendendo qual o real problema!
Se quiser eu dou uma explicada melhor de como fazer usando campos calculados.
Att.
Cauê Nishijima
Carlos Magno
25/07/2012
Deivison Melo
25/07/2012
Carlos Magno
25/07/2012
Deivison Melo
25/07/2012
Carlos Magno
25/07/2012
Carlos Magno
25/07/2012