Clique aqui

quinta-feira, 9 de junho de 2011

Campo Calculated

Delphi - Trabalhando com Campos

Objeto TField - Fiels Editor e Campos Calculados

Quando você ativa um componente Table através da propriedade Active := True, componentes TField são criados para cada campo da tabela. Mas você não pode se referir a eles em seu código, ou mesmo mudar determinadas propriedades. Para isso, é preciso criá-los durante o projeto de seu aplicativo. Isto é feito através do Fields Editor.

Este editor permite que você defina quais os campos de determinada tabela aparecerão no Object Inspector, e poderão ser referenciados no código.

Para acessar o Fields Editor:
• Um duplo clique no componente Table ou Query inserido no formulário. Aparece o Fields Editor.
• Clique com o botão direito do mouse sobre o Fields Editor, e, no menu que aparece selecione Add Fields para abrir uma caixa de dialogo listando os campos da tabela associada ao componente Table.
• Selecione os campos que você quer mostrar, e clique OK, os campos passam para o interior do Fields Editor;
• Caso queira mude a ordem de disposição dos campos, arrastando os mesmos;

A propriedade Name do componente TField é estabelecida automaticamente pelo Delphi, atravéz da associação do nome do componente Table com o nome do campo na tabela.

Mudando Propriedades de componentes TFiels

Após ter criado componentes TFields durante o projeto, através do Fields Editor podemos mudar suas propriedades através do Object Inspector.

Lendo valores de Campos

Criar componentes TFields durante o projeto permite que você possa manipular os mesmos através do seu código. Ou seja, você poderá se referir a eles no código de sua aplicação.

Você lê valores de um campo através da propriedade Value do componente TField.

Por exemplo: Para ler na caixa de edição o valor de um campo Nome do tipo texto faríamos:

Edit1.Text := Table1Nome.Value;

Cada campo escolhido no Fields Editor representa um componente TField diferente.
Veja alguns exemplos:

Tipo Campo
Objeto TField
Conversão
Campo Texto TStringField AsString
Campo Data TDateField AsDateTime
Campo Lógico - Boolean TBlobField AsBoolean
Campo Inteiro TIntegerField AsInteger
Campo Float TFloatField AsFloat
Campo Moeda TCurrencyField AsCurrency
Se você quiser colocar o valor de um campo inteiro em um componente TEdit, usamos a propriedade de conversão AsInteger.

Edit1.Text := Table1Idade.AsInteger;
ou campo data assim
Edit2.Text := Table1DataNascimento.AsDateTime ;

Então:

Do campos para a variável usar

MDescricao := Tbl_ProdutosDescricao.AsString ;

Da variável para o campo usar

Tbl_produtosDescricao.AsString := MDescricao ;



Outro método usado para fazer referencia a campos de suas tabelas é a propriedade FieldByName.
Sintaxe:
MCliente := Table1.FieldByName( 'Nome' ).AsString



Adicionando Registros ( Incluindo )

Table1.Append; // Com o Fields Editor
Table1Nome.AsString := 'João da Silva' ;
Table1Pago.AsBoolean := False;
Table1.Post;

Table1.Append; // Com FieldByName
Table1.FieldByName( 'Nome' ).AsString := 'João da Silva' ;
Table1.FieldByName( 'Pago' ).AsBoolean := False;
Table1.Post;

Editando Registros

Table1.Edit; // Com o Fields Editor
Table1Pago.AsBoolean := True;
Table1.Post;

Table1.Edit;// Com FieldByName
Table1.FieldByName( 'Pago' ).AsBoolean := True;
Table1.Post;

Excluindo ( Apagando )

Table1.Delete;

Definindo um campo calculado - Um campo calculado é aquele que é resultado da intereção entre dois ou mais campos de uma tabela.

Para criar um campo calculado:

Entre no Fields Editor e clique com o botão direito sobre ele, e, no menu que aparece escolha New Field
No quadro Name, entre com o nome do campo calculado;
No quadro Component, o Delphi automaticamente coloca o nome do componente TField criado;
No quadro Type, escolha o tipo de campo calculado (DateTime, Float, Currency, etc);
No quadro Size entre com o tamanho do campo ;
Em Field Type, marque a caixa Calculated para informar que esse é um campo calculado que está sendo criado;
Clique OK quando terminar. O novo campo é inserido no Object Inspector. Agora você poderá se referir a ele no código.
Associando Código ao campo calculado

Para criar um código associado ao campo calculado:

Selecione o componente Table associado;
No Object Inspector, vá para a página Events dê um duplo clique sobre o evento OnCalcFields entrando no Editor de Código;
Escreva as linhas de código necessárias, dentro da procedure relacionada ao evento acima.
Dicas:
A propriedade Active da tabela tem de estar em False.
No evento OnCalcFields, você só pode atribuir valores a campos calculados.

------------ / / ------------------

Vamos praticar:



No projeto da aula Trabalhando com índices (alterado na aula Localizando Registros) vamos incluir:
um campo calculado com nome = juros, Type = Currency e ...
um objeto DBEdit (Paleta Data Controls) com as seguintes propriedades DataSource = Ds_Clientes, Enable = False e DataField = Juros.

No evento OnCalcFields do objeto Table coloque a seguinte procedure:

procedure TForm1.tbl_clientesCalcFields(DataSet: TDataSet);
begin
    tbl_clientesJuros.AsCurrency := tbl_clientesvalor_debito.Value * 1.10 ;
end;

Pronto agora ja temos um campo calculado com 10 % de juros sobre o saldo devedor.

Nenhum comentário:

Postar um comentário