Calculo de valores
11/07/2008
0
Estou trabalhando no desenvolvimento de um aplicativo e estou utilizando o delphi 7 juntamento com o firebird 2.0.
Tenho 5 dbEdit.
Exemplo:
Valor1
Valor2
Valor3
Valor4
Total
Como faço para conforme vou digitando os valores nos primeiros campos e já ir mostrando o resultado no campo total.
obrigado.
Uelinton
Uelinton_reis
Posts
11/07/2008
Marco Salles
Mas depende tb de qual os componentes de acesso você esta utilizando
se for DbExpress com ClientDataSet fica melhor ainda com o Internacall
14/07/2008
Uelinton_reis
Mas depende tb de qual os componentes de acesso você esta utilizando
se for DbExpress com ClientDataSet fica melhor ainda com o Internacall[/quote:3607503168]
-------------------------------------------------------------------------------------
Bom dia Marcos....
Cara estou utilizando os componentes (IBDataSet e IBDataBase) da guia Interbase.
Como devo fazer?
Obrigado.
14/07/2008
Marco Salles
Click com o Botçao direito e escolha a Opção New Fields
De Um Nome : Total
Escolha o Tipo : Currency
e em Field Type selecione a opção Calculed
De Ok
Pronto o campo calculado esta criado
Agora no Objeto Inspectos do IbDataSet na Guia de Eventos selecione
o Evento onCalcFields e digite o codigo abaixo
procedure TForm1.IBDataSet1CalcFields(DataSet: TDataSet); begin dataset.FieldByName(´total´).AsCurrency:= dataset.fieldbyName(´valor1´).AsCurrency+ dataset.fieldbyName(´valor2´).AsCurrency+ dataset.fieldbyName(´valor3´).AsCurrency+ dataset.fieldbyName(´valor4´).AsCurrency; end;
e ppor fim no objecto inspector do IbDataSet coloque a propriedade
AutoCalcFileds em True ... (esta é a configuração padrão)
p:s esta propriedade pode ser habilitada e desabilidade conforme necessidade < para ganhar performa e evitar calculos desnecessários com o processador em determinadas situações
Espero ter entendido a sua duvida .. Não trabalho com o os componentes da paleta Interbase e nen estou com o delphi aqui para testar estas dicas
mas acredito que deva funcionar
14/07/2008
Uelinton_reis
Click com o Botçao direito e escolha a Opção New Fields
De Um Nome : Total
Escolha o Tipo : Currency
e em Field Type selecione a opção Calculed
De Ok
Pronto o campo calculado esta criado
Agora no Objeto Inspectos do IbDataSet na Guia de Eventos selecione
o Evento onCalcFields e digite o codigo abaixo
procedure TForm1.IBDataSet1CalcFields(DataSet: TDataSet); begin dataset.FieldByName(´total´).AsCurrency:= dataset.fieldbyName(´valor1´).AsCurrency+ dataset.fieldbyName(´valor2´).AsCurrency+ dataset.fieldbyName(´valor3´).AsCurrency+ dataset.fieldbyName(´valor4´).AsCurrency; end;
e ppor fim no objecto inspector do IbDataSet coloque a propriedade
AutoCalcFileds em True ... (esta é a configuração padrão)
p:s esta propriedade pode ser habilitada e desabilidade conforme necessidade < para ganhar performa e evitar calculos desnecessários com o processador em determinadas situações
Espero ter entendido a sua duvida .. Não trabalho com o os componentes da paleta Interbase e nen estou com o delphi aqui para testar estas dicas
mas acredito que deva funcionar[/quote:ca4b74e14e]
-------------------------------------------------------------------------------------
A sua dica deu certo....
mas agora preciso guardar esta informação no banco de dados.
como faço isto agora....?
14/07/2008
Brunodsr
exemplo:
Dataset.fieldbyname(´SeuCampo´).Value := Dataset.FieldByName(´CampoCalculado´).Value;
Espero ter ajudado
14/07/2008
Marco Salles
a principio pode fazer como o amigo sugeriu
usa o evento before post do teu dataset.
apesar de se estar na contramão do campo calculado ...
que é um valor que pode ser obtido a qualquer momento sem ter que
ficar ocupando espaço fisico na Base de Dados , portando desnecessário
15/07/2008
Uelinton_reis
Agradeço a todos que me ajudaram nesta duvida...
Com ajuda de vcs consegui resolver.
Obrigado.
Uelinton
Clique aqui para fazer login e interagir na Comunidade :)