Formata máscara para exibir em um DBGrid?
11/01/2006
0
_______________________
1 | CPF | 000\.000\.000\-00;1;_
2 | CGC | 00\.000\.000\-0000\-00;1;_
3 | TELEFONE | !\(99\) 9000-0000;1;_
4 | EMAIL |
e criei uma tabela (tbContato com os campos: CodContato, CodMascara, Contato) onde de acordo com o CodMascara selecionado ele vai formata o compo ´Contato´ para serem exibidos em um DBGrid. Alguém poderia me dar alguma dica de como resolver esse problema?
Grato pela atenção!
Joule
Posts
11/01/2006
Aerreira
[b:43a0f4cd9f]tbContatoContato.editmask := tbMascaraMascara.value;[/b:43a0f4cd9f]
Acredito que funcionará bem para seu caso.
13/01/2006
Joule
13/01/2006
Dart
Va na propriedade do field e em editmask e coloca a mascara la.
Entendeu?
13/01/2006
Aerreira
13/01/2006
Joule
tbMask.Open;
tbcontato.close;
tbcontato.Open;
tbcontato.First;
while not tbcontato.Eof do
begin
tbContato.Edit;
tbmask.Locate(´codmask´,tbContatoCodMask.Value,[lopartialkey,locaseinsensitive]);
if tbMaskCodMask.value=2 then
begin
tbContatoContato.EditMask := tbMaskMask.Value;
tbContatoContato.Value := tbcontatocontato.Value;
showmessage(tbcontatocontato.Value);
(tbmaskmask.Value,tbContatoContato.Value);
end
else
tbContatoContato.Value := FormatMaskText(tbMaskMask.Value,tbContatoContato.Value);
tbContato.post;
tbcontato.Next;
13/01/2006
Aerreira
Além do mais, você terá que rodar esse seu loop de vez em quando para manter os campos com a formatação... está muito estranho isso.
Minha sugestão continua a mesma, inclusive você usou ela no seu código:
Só que do meu modo, o conteúdo do campo contato continuará limpo, apenas aparecerá a mascara nos grids e nos edits, pois a cada registro que você navegar a rotina AfterScroll rodará ajustando o EditMask do campo Contato. Mas para isso as tabelas precisam estar relacionadas entre si, ou seja, em cada registro da tabela tbContato haverá um CodMascara que estará relacionado à tabela tbMascara por sua chave CodMascara.
Usando IBX, seu select para o IBDataSet para a tabela tbContato deverá ser algo mais ou menos assim:
select * from Contatos where CodMascara = :CodMascara
ligando a propriedade DataSource desse dataset a um DataSource ligado ao DataSet da tabela Mascara. Xiii, meio enrolado... claro, não sei nem qual o seu banco de dados!!!
13/01/2006
Aerreira
Exemplos:
AMB / consulta / 00.01.001-4
CBHPM / consulta / 1.01.01.01-4
SUS / insuf.cardíaca / 77.500.11-3
Os códigos acima são armazenados assim:
00010014 - consulta
10101014 - consulta
77500113 - insuf.cardíaca
Em cada tabela as máscaras são armazenadas no campo MascCod assim:
99.99.999-9
9.99.99.99-9
99.999.99-9
Conforme o usuário consulta uma tabela diferente a máscara do campo Tabela do dataset ValCod é alterada usando o código abaixo no AfterScroll do dataset de tbTab:
tbValCodTabela.editmask := trim(tbTabMascCod.value)+´;0;_´;
Acho que essas informações podem lhe ajudar a encontrar um meio de ajustar seu problema.
Clique aqui para fazer login e interagir na Comunidade :)