Problemas com a Propriedade Mask do QRDBText

Delphi

28/01/2005

Galera estou com dificuldade de utilizar a propriedade [b:9a3efe7c8b][color=blue:9a3efe7c8b]Mask[/color:9a3efe7c8b][/b:9a3efe7c8b] do [b:9a3efe7c8b][color=blue:9a3efe7c8b]QRDBText[/color:9a3efe7c8b][/b:9a3efe7c8b], preciso formatar alguns dados tipo: Telefone, Cep e CNPJ com a seguinte disposição !!!

Fone: (00) 0000-0000
Cep: 00.000-000
CNPJ: 00.000.000/0000-00


Como eu faço isto ???

[color=red:9a3efe7c8b][b:9a3efe7c8b]Estou utilizando o Delphi 5.0, sem atualização alguma.[/b:9a3efe7c8b][/color:9a3efe7c8b]

Ah, os dados da minha tabela a propriedade é String (Paradox, ainda) e consta apenas números. Tipo:
Fone: 5132323232
Cep: 90000000
CNPJ: 921234560001-99


Conto com a colaboração da Galera do Forum !!!

[b:9a3efe7c8b]Obrigado !!![/b:9a3efe7c8b]


Shaos

Shaos

Curtidas 0

Respostas

Macario

Macario

28/01/2005

Ola programador.

Como todas mascaras sao numericas utilize o 9, pois força a digitação numerica so aceitando o ´e´ ou ´E´, pois creio que considera como exponencial ou algo assim

Fone: (99) 9999-9999;0;
Cep: 99999-999;0;
CNPJ: 99.999.999\/9999-99;0;

as mascaras nesse formato nao salvam os literais. para isso use


Fone: (99) 9999-9999;1;
Cep: 99999-999;1;
CNPJ: 99.999.999\/9999-99;1;


So tendo atenção a capacidade dos campos na tabela

Espero ter ajudado.


GOSTEI 0
Shaos

Shaos

28/01/2005

Ocorre o seguinte estou montando um relatório, quero que a saida dos dados sejam formatadas com esta disposição:

CNPJ: 92.123.321/0001-01
Fone: (11) 3232-3232
Cep: 90.010-123

Mas quando executo um preview do relatório no QuickReport ele exibe tudos os campos apenas os números correspondentes sem a formatação desejada. Mesmo em RunTime !!!

As máscaras que estou utilizando são as seguintes:

99\.999\.999\/9999\-99;1:_
\(99\) 9999-9999;1;_
99\.999\-999;1;_


E mesmo assim, não esta sendo exibido corretamente, o que estou fazendo de errado ???


GOSTEI 0
Macario

Macario

28/01/2005

Faça a mascara no DataSet (Tabela,Query,etc), pois o Quick recebera a mesma


GOSTEI 0
Shaos

Shaos

28/01/2005

Tchê, e como eu faço esta máscara ???

Como eu faço ??? Eu nunca fiz isto !!! Ou ao menos não estou entendendo a sua idéia !!!!


GOSTEI 0
Macario

Macario

28/01/2005

Certo tipo vo tenta melhor agora..(ehehehe)


Na sua Tabela (por exemplo) voce tem os campos incluidos certo?

Entao faz assim no fiedsEditor (duplo clique sobre a tabela), seleciona o campo que vc quer formatar a mascara. A maioria tem a propriedade EditMask, é nela que vc poe a mascara, ai usando componentes DataWare, ele recebera a mascara.


GOSTEI 0
Shaos

Shaos

28/01/2005

Entendi a sua linha de raciocínio, tentei mas ai o result sai diretente, em alguns casos sai apenas a mascara, e outros sai parte do número e o final em forma de máscara, sem dados.

O componente ´[color=blue:a5416ac0cd]DataWare[/color:a5416ac0cd]´ não sei que é, pois as tabelas em questão são do [b:a5416ac0cd]Paradox[/b:a5416ac0cd] !!! Estou utilizando do BDE !!!


GOSTEI 0
Shaos

Shaos

28/01/2005

[b:eb3a66041d][color=blue:eb3a66041d]Help-me !!![/color:eb3a66041d][/b:eb3a66041d]


GOSTEI 0
Macario

Macario

28/01/2005

Tentando de uma outra forma:


Para campos do tipo string:


Propriedade EditMask:

Se for Campo Cep:

99999-999;0;

Esta formatação serve se o tamanho do campo na tabela estiver defino para 8 caracteres, pois nao salva o caracter literal ´ [b:8fadf836d9]- [/b:8fadf836d9]´

Pois se o campo for de tamanho 8 e vc usar esta mascara na propriedade EditMask

99999-999;1;

ficara errado pois ele gravara o ´ - ´.

Para campos do tipo Float e Integer sao duas as propriedades:

DisplayFormat e EditFormat que devem ser preenchidas.

Quando setamos a mascara nestas propriedades, os componentes que tem funcionalidade DataWare (DbEdits, DbText,QRDBText,etc) por padrao, seguem a mascara.


Agora caso isso nao esteja ocorrendo ´force´ a mascara novamente antes do preview do relatorio utilizando o seguinte:


      TFloatField( dm.Temp.FieldByName( ´CAMPOVALOR´ ) ).EditFormat    := ´#,0.00´;
      TFloatField( dm.Temp.FieldByName( ´CAMPOVALOR´ ) ).DisplayFormat := ´#,0.00´;
      TStringField( dm.Temp.FieldByName( ´CAMPODATA´ ) ).EditMask       := ´99/99/9999;1;´;
      TStringField( dm.Temp.FieldByName( ´CAMPOCEP´ ) ).EditMask       := ´99999-999;1;´;
      TStringField( dm.Temp.FieldByName( ´CAMPOTEL´ ) ).EditMask       := ´(99)9999-9999;1;´;



GOSTEI 0
Shaos

Shaos

28/01/2005

Perfeito

Agora está tudo funcionando da forma desejad !!!

Muito obrigado pela força e pela paciência !!!


GOSTEI 0
POSTAR