Máscara em tempo de execução

Caros

Tenho um caso específico envolvendo duas filiais que utilizam uma codificação bem diferente para os códigos de itens, uma mistura em que usam até centro de custo na máscara !

Mas vou apresentar o problema citando dois exemplos bem mais fáceis de explicar, e acho que com os dois exemplos dá para adaptar o entendimento para resolver o meu problema…

Existem diversas situações em que a máscara de um campo precisa ser alterada por conta de uma condição específica que ocorre no próprio formulário:

=====

  1. Inscrição Estadual:
  • se usuário seleciona SP … então máscara do campo IE é 999.999.999.999
  • se usuário seleciona MT … então máscara do campo IE é 99.999.999-5
    etc …

=====
2) Plano de Contas … se você deseja que teu sistema seja totalmente flexível em relação ao numero de níveis e a quantidade de dígitos em cada nível, deverá ter uma tabela contendo esta configuração
Nivel 1 = xx digitos
Nivel 2 = xx digitos
Nivel 3 = xx digitos
etc

Assim, podemos ter possibilidades infinitas para mascaras, tais como
9.9.99
99.99.99
9.99.9
99.9.99
etc

Eu teria que ler a tabela da configuração (Parametros, por exemplo) para então formatar a máscara do formulário e/ou consulta. Óbvio que neste exemplo outras validações seriam necessárias (não deixar zerado um nível menor, etc)

=====
Nestes dois exemplos, como alterar a máscara do campo “IE” ou “Expandido” em tempo de execução ?

Estes campos seriam formatados no Formulário e na Consulta …

Abraços

Manuel

Criar biblioteca que coloca a mascara para exibição e outra que retira na gravação.

Desenvolva em php sua função para fazer isso.

Haroldo - Grato pela resposta

Hoje cedo eu estava pensando na ideia de ter um campo com a mascara. Usando os exemplos acima…

UF Mascara
== ==============
SP 999.999.999.999
MT 99.999.999-9

Nivel1 Nivel2 Nivel3 Mascara
==== ==== ===== =======
2… 1 …2 99.9.99

E usando o evento OnChange do campo UF ou na carga do Form, alterar a mascara de entrada do campo IE ou Expandido, por exemplo.

Será que o pessoal do Scriptcase nao consegue fazer esta implementação?

De toda forma, quem tiver outra ideia e puder postas exemplos destes codigos, ajudara a mim e a muitos outros amigos.

Abracos

Manuel

1 Curtida

Na configuração dos campos, você tem a opção Mascara de Exibição. E você pode separar cada mascara com ;

Exemplo:

999.999.999.999;99.999.999-9

Acredito que dê certo. Veja aí

Thyago

Sim, entendo a opcao Mascara de Exibicao. Mas estou em tempo de execucao mesmo …
do jeito que voce fez, nao importa a UF selecionada, sempre vai tentar fazer uma das mascaras guardadas (e no exemplo da IE, teriamos 27 mascaras neste campo ? correria o risco de colocar SP e informar na mascara de IE do MT)

ex 1) Mudou o UF (um outro campo do formulario), automaticamente adota uma outra mascara no campo IE (que pode estar guardada numa tabela, faz o select na tabela UF e pega a(s) mascara(s) daquele estado e ALTERA a mascara de edicao/exibicao)

ex 2) Ao carregar o formulario/consulta, faz a pesquisa no Parametros e carrega a mascara de edicao da Expandida (que vai ser pedida ou exibida) de acordo com o que tiver la …

voce pode mudar o valor de um label, ou sua cor, em tempo de exibicao ? mesmo conceito, so que no Mascara de Exibicao

Grande Abraco

1 Curtida

Prezado.

Voce conseguiu evoluir nessa matéria?
Tenho um problema semelhante e estou apanhando bastante sem uma solução.