sexta-feira, 4 de novembro de 2011

Exemplo de campo calculado no Delphi!

Crie um banco de dados no Access – salve-o numa pasta a sua escolha.
Crie a tabela como a imagem abaixo:


Salve a tabela com o nome produtos.
Vamos inserir dados na tabela como na imagem abaixo:


Salve tudo e feche o Access.

Abra o Delphi escolha – nova aplicação e mude as propriedades do form:

Caption = Campo Calculado do Delphi
Name = frm_calc
Position = poscreencenter

Salve a unit = u_campo_calculado
Salve o projeto = Campo_calculado

Adicione um datamodule e mude a propriedade name = DM
Adicione ao DM os componentes de acesso ao Banco/tabela.

Faça as ligações com o banco e a tabela como visto nas aulas.

Depois de tudo ligado de um duplo clique no objeto Adotable(ou Adoquery) e adicione os campos, veja a imagem:

Para adicionar um campo calculado vamos fazer o seguinte, clique com o botão direito do mouse na caixa e escolha new Field veja a figura:


Na caixa que abre mude as propriedades como na imagem abaixo:


Clique em ok.
Desse modo temos um campo criado aqui no Delphi.
Vá até o form e coloque  um dbgrid ligando o datasource do DBgrid. 
Agora no DM selecione o ADOtable(ou ADOQuery) e vá no evento OnCalFields e coloque o código:

dm.ADOtable1total.Value:= dm.ADOtableqtde.Value  * dm.ADOtablepreco.Value;

Estamos multiplicando os valores para o total receber.
Veja como fica no DBgrid:


Veja que o total mostra os valores multiplicados.

2 comentários:

  1. Gostei muito do seu exemplo, porém, gostaria de ver um exemplo de campo calculado com o caso do "sexo". É que tenho uma tabela que tem um campo char que grava F ou M para os sexos feminino e masculino respectivamente e eu gostaria que no meu relatório fosse grafado FEMININO ao invés de F e MASCULINO ao invés de M. OBS.: o meu relatório está ligado à uma Table e não a uma Quary.

    ResponderExcluir
  2. este comando dm.ADOtable1total.Value:= dm.ADOtableqtde.Value * dm.ADOtablepreco.Value; tambm funciona com banco de dados Mysql?

    ResponderExcluir