Fórum Esta arredondando o Valor total #216189

24/02/2004

0

Olá Pessoal, alguem pode me ajudar com esse codigo, uso ele para uma soma de valores so que ele esta arredondado tipo: 153,64 ele sai 154,00 e eu não quero assim eu quero que ele me mostre os valores exatos 153,64 :D


var
Soma:Integer;
begin
Query3.Close;
Query3.SQL.Clear;
query3.SQL.Add(´Select Sum(valor) totaldesp From balancete´);
Query3.Prepare;
query3.open;
query3.Refresh;
Soma:=Query3.FieldByName(´totaldesp´).AsInteger;
dbEdit10.Text:=IntToStr(soma);
end;

Obrigado


Wagner

Wagner

Responder

Posts

24/02/2004

Wagner

Valeu colega :D :D :D

So mais uma coisa :lol: porque que o esse codigo não esta somando na hora! eu tenho que da um tab novamente em cima do campo para que ele assuma a soma

Obs: Eu coloquei ele no evento onenter

tipo:

dbedit1 = 80,00
dbedit2 = 0,00

dai eu dou um tab novamente do dbedit1 para o dbedit2 ai sim ele soma

dbedit1 = 80,00
dbedit2 = 80,00


Responder

Gostei + 0

24/02/2004

Aroldo Zanela

Colega,

OnEnter -> AoEntrar

Uma solução seria adicionar um DataSource e ´apontar´ para sua query e nas propriedades DataSource e DataField do dbEdit, preencher de acordo com os objetos instanciados.

DataSource1 -> DataSet = Query3
dbEdit10 -> DataSource = DataSource1, DataField = TotalDesp

Esta instrução não é mais necessária:
dbEdit10.Field.AsFloat := Query3.FieldByName(´totaldesp´).AsFloat;


Responder

Gostei + 0

24/02/2004

Wagner

Da um erro falando que a query não esta em modo de incersão


Responder

Gostei + 0

24/02/2004

Marco Salles

Aroldo Zanela Disse:
Esta instrução não é mais necessária: 
dbEdit10.Field.AsFloat := Query3.FieldByName(´totaldesp´).AsFloat;


Wagner, Será Que Voce Não Esqueceu De Titar Esta Instrução Do Seu Código Sql :?:

var 
Soma:Integer; 
begin 
Query3.Close; 
Query3.SQL.Clear; 
query3.SQL.Add(´Select Sum(valor) totaldesp From balancete´); 
Query3.Prepare; 
query3.open; 
query3.Refresh; 
Soma:=Query3.FieldByName(´totaldesp´).AsInteger; 
dbEdit10.Text:=IntToStr(soma); ***Tirar Instrução ***
end; 



Responder

Gostei + 0

24/02/2004

Wagner

bom... em primeiro lugar vc começou definindo errado sua variável. se vc quer valores decimais, porque vc definiu a variável como inteiro? o correto seria: begin     Query3.Close;     query3.SQL.Text := ´Select Sum(valor) totaldesp From balancete´;     query3.Open;     dbEdit10.Field.AsFloat := Query3.FieldByName(´totaldesp´).AsFloat; end; note que a variável [b:aae63c5aa0]soma[/b:aae63c5aa0] não é necessária.



Agora fiquei confuso :lol:

1 Coloquei dessa forma e realmente resolveu o problema incial de arrendodamento

2 ´Codigo Sql´ da propriedade SQL ? coloquei ´Select Sum(valor) totaldesp From balancete´


Responder

Gostei + 0

24/02/2004

Marco Salles

Não Wagner, Não É Para Ficar Confuso...A Variável Soma Não é Realmente Necessário...Voce Resolveu o Problema De Arredondamento
e Para Resolver a Segunda Questão Apresentada Usando O Datasource Como o Zanela Apresentou e Para Não Dar O Erro Que Voce Mencionou Tente Tirar a Ultima Instrução Do Código Sql

o correto seria: 
begin 
    Query3.Close; 
    query3.SQL.Text := ´Select Sum(valor) totaldesp From balancete´; 
    query3.Open; 
    dbEdit10.Field.AsFloat := Query3.FieldByName(´totaldesp´).AsFloat; 
//Tente Tirar Esta Ultima Instrução, Usando a Dica Do Aroldo Zanela
end; 



Responder

Gostei + 0

24/02/2004

Wagner

O erro agora é conversão do tipo variante invalido :cry:


Responder

Gostei + 0

24/02/2004

Marco Salles

Voce Fez o Que o Haroldo Determinou :?:

Uma solução seria adicionar um DataSource e ´apontar´ para sua query e nas propriedades DataSource e DataField do dbEdit, preencher de acordo com os objetos instanciados. DataSource1 -> DataSet = Query3 dbEdit10 -> DataSource = DataSource1, DataField = TotalDesp Esta instrução não é mais necessária: dbEdit10.Field.AsFloat := Query3.FieldByName(´totaldesp´).AsFloat;


E Outra Coisa...Para Esta Solução Apresentada Voce Deve Criar o Campo
´Totaldep´ Na Sua Query Em Tempo De Projeto, Usando o FieldsEditor..Voce Fez Isto e Ou Sabe Como Faze-lo


Responder

Gostei + 0

24/02/2004

Wagner

Fiz da mesma forma como foi explicado

Inclusive o campo já estava criado na query no field editor (Totaldesp)

Recapitulando:

[color=red:21ebe7ccbf]O Codigo[/color:21ebe7ccbf]

procedure TF_balancete.DBEdit10Enter(Sender: TObject);
begin
Query3.Close;
query3.SQL.Text := ´Select Sum(valor) totaldesp From balancete´;
query3.Open;
[color=blue:21ebe7ccbf]//dbEdit10.Field.AsFloat := Query3.FieldByName(´totaldesp´).AsFloat;[/color:21ebe7ccbf][/color]end; Conforme foi dito

Incluindo o DataSource - dataset = query3

dbedit10 = DataSource que foi incluido e o datafield = totaldesp
Estou esquecendo alguma coisa :cry:


Responder

Gostei + 0

24/02/2004

Marco Salles

[quote=MarcoSalles]E Outra Coisa...Para Esta Solução Apresentada Voce Deve Criar o Campo
´Totaldep´ Na Sua Query Em Tempo De Projeto, Usando o FieldsEditor..Voce Fez Isto e Ou Sabe Como Faze-lo


Não Wagner, Eu Disse Errado...É Suficiente Que o Codigo Sql Da Query Em Tempo De Execuçao Esteja Corretamente Preenchida:

Código Sql Da Query3 Em Tempo De Projeto... :?: [color=red:ef3ef98a75]Voce Fez Isto[/color:ef3ef98a75] :?: :?:

Select Sum(valor) totaldesp 
From 
balancete


[color=red:ef3ef98a75]Pergunta: Voce Por Acaso Criou o Campo totaldesp Usando O Fileds Editor Usando New Fileds :?: [/color:ef3ef98a75]...Depois Que o Código Sql Da Query3 Em Tempo De Projeto Tiver Devidamente Assinalada Voce Deve Usar o Comando [color=red:ef3ef98a75]´Add Fields´ [/color:ef3ef98a75], Que o Campo é Automaticamente Inserido...Mas Como Eu Disse Na Citação, Isto é Opcional...


Responder

Gostei + 0

24/02/2004

Marco Salles

Wagner, Desculpe O Cansaço e Talvez as Informações Desencontrada, Mas o Que Voce Quer é Relativamente Simples e o Que Ocorre São Informações Desencontradas....Faça o Seguinte

1) Na Propriedade Sql Da Query3 Escreva
   Select Sum(valor) totaldesp 
     From 
       balancete

2) Opcional: Crie O Campo "totaldesp" Usando o Comando Add Field e
    Não  O Comando "New Fields"....Se Voce Não Tiver Certeza De Como
    Gerou o Campo No Fields Editor Apague-o e Insire-o , Imediatamente
    Se For Necessário

3) Ligue o DataSource ao Query3

4) Ligue o DbEdit10 ao DataSource e Ao Campo totaldesp

5) Deixe o Código Como Esta No Evento Do Botão
   procedure TF_balancete.DBEdit10Enter(Sender: TObject); 
     begin 
       Query3.Close; 
       query3.SQL.Text := ´Select Sum(valor) totaldesp From balancete´; 
       query3.Open; 



Responder

Gostei + 0

24/02/2004

Wagner

[quote:7a023ce44f=´Marco Salles´]
E Outra Coisa...Para Esta Solução Apresentada Voce Deve Criar o Campo ´Totaldep´ Na Sua Query Em Tempo De Projeto, Usando o FieldsEditor..Voce Fez Isto e Ou Sabe Como Faze-lo


Não Wagner, Eu Disse Errado...É Suficiente Que o Codigo Sql Da Query Em Tempo De Execuçao Esteja Corretamente Preenchida:

Código Sql Da Query3 Em Tempo De Projeto... :?: [color=red:7a023ce44f]Voce Fez Isto[/color:7a023ce44f] :?: :?:

Select Sum(valor) totaldesp 
From 
balancete


[color=red:7a023ce44f]Pergunta: Voce Por Acaso Criou o Campo totaldesp Usando O Fileds Editor Usando New Fileds :?: [/color:7a023ce44f]...Depois Que o Código Sql Da Query3 Em Tempo De Projeto Tiver Devidamente Assinalada Voce Deve Usar o Comando [color=red:7a023ce44f]´Add Fields´ [/color:7a023ce44f], Que o Campo é Automaticamente Inserido...Mas Como Eu Disse Na Citação, Isto é Opcional...


1º Sim eu coloqueio codigo SQL na Query ´Select sum(valor)totaldesp from balancete

2º Não, eu não criei o campo totaldesp por que no fields editor do query3 esse campo já esta lá


Responder

Gostei + 0

24/02/2004

Wagner

Ops! acho que me atrapalhei na resposta (citação)

1º coloquei certo o codigo SQL na query3 select sum(valor) totaldesp from balancete

2º Não, eu não criei o campo totaldesp no fields edito da query3 porque esse campo já esta lá


Responder

Gostei + 0

24/02/2004

Wagner

Ops! desculpe-me, Postei sem ver a sua ultima postagem


Responder

Gostei + 0

24/02/2004

Marco Salles

2º Não, eu não criei o campo totaldesp no fields edito da query3 porque esse campo já esta lá


Então Apague-o


Responder

Gostei + 0

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

Aceitar