Calculo de valores
Boa noite a todos.
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
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
Curtidas 0
Respostas
Marco Salles
11/07/2008
a principio seria criar um campo calculado
Mas depende tb de qual os componentes de acesso você esta utilizando
se for DbExpress com ClientDataSet fica melhor ainda com o Internacall
Mas depende tb de qual os componentes de acesso você esta utilizando
se for DbExpress com ClientDataSet fica melhor ainda com o Internacall
GOSTEI 0
Uelinton_reis
11/07/2008
[quote:3607503168=´Marco Salles´]a principio seria criar um campo calculado
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.
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.
GOSTEI 0
Marco Salles
11/07/2008
Acho que voce deve ir no Editor de fields do IbDataSet (De Duploclick No componente )
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
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
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
GOSTEI 0
Uelinton_reis
11/07/2008
[quote:ca4b74e14e=´Marco Salles´]Acho que voce deve ir no Editor de fields do IbDataSet (De Duploclick No componente )
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
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....?
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....?
GOSTEI 0
Brunodsr
11/07/2008
usa o evento before post do teu dataset.
exemplo:
Espero ter ajudado
exemplo:
Dataset.fieldbyname(´SeuCampo´).Value := Dataset.FieldByName(´CampoCalculado´).Value;
Espero ter ajudado
GOSTEI 0
Marco Salles
11/07/2008
A sua dica deu certo....
mas agora preciso guardar esta informação no banco de dados.
como faço isto agora....?
a principio pode fazer como o amigo sugeriu
usa o evento before post do teu dataset.
exemplo:
Código:
Dataset.fieldbyname(´SeuCampo´).Value := Dataset.FieldByName(´CampoCalculado´).Value;
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
GOSTEI 0
Uelinton_reis
11/07/2008
Bom dia a todos....
Agradeço a todos que me ajudaram nesta duvida...
Com ajuda de vcs consegui resolver.
Obrigado.
Uelinton
Agradeço a todos que me ajudaram nesta duvida...
Com ajuda de vcs consegui resolver.
Obrigado.
Uelinton
GOSTEI 0