Fórum Alternando entre Letras e Números #215509

19/02/2004

0

Olá pessoal,

Estou fazendo um banco de dados onde preciso fazer o seguinte:

Tenho 2 campos [b:106ff93d0a]CodigoDaDisciplina[/b:106ff93d0a] e [b:106ff93d0a]CodigoLiteral[/b:106ff93d0a]
O CodigoDaDisciplina é um contador automático (está OK)
O CodigoLiteral será igual a [b:106ff93d0a]CodigoLiteral + CodigoDaDisciplina[/b:106ff93d0a] (Eis a questão)

O problema é q, eu quero q ao incluir um novo este campo aceite apenas letras, mas ao salvar ele aceite letras e números, já q este será igual a [b:106ff93d0a]CodigoLiteral + CodigoDaDisciplina[/b:106ff93d0a].

Tem como fazer isso?

Grato,

Ilano. [/b]


Ilanocf

Ilanocf

Responder

Posts

19/02/2004

Aavanco

Ilano,

Você terá que tratar isso por codigo, ou seja, no seu banco de dados deixe o campo CodigoDaDisciplina como está e o CodigoLiteral deixe como Varchar (Dependendo do seu banco de dados).

No campo que so pode aceitar letras, trate a digitação como segue:

[i:8a9326918e]procedure TForm1.DBEditCodigoLiteralKeyPress(Sender: TObject; var Key: Char);
begin
if ( Key In [´0´..´9´,#8,13] ) then
Abort;

// ou if not ( Key In [´a´..´z´, ´A´..´Z´]) depende do que vc quer filtrar.

end;[/i:8a9326918e]

Depois trate a inserção no banco com o evento BeforePost:

[i:8a9326918e]procedure TForm1.IBDataSet1BeforePost(DataSet: TDataSet);
begin
IBDataset1.FieldByName(´CodigoLiteral´).Value:= IBDataset1.FieldByName(´CodigoDaDisciplina´).[b:8a9326918e]AsString [/b:8a9326918e]+ IBDataset1.FieldByName(´CodigoLiteral´).Value;
end;[/i:8a9326918e]


Abraço,


Responder

Gostei + 0

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

Aceitar