MASCARA MASKEDTEXTBOX PARA CNPJ MENOR 14 DIGITOS
boa tarde pessoal
estou tentando utilizar o maskedtextbox para mascara de cnpj, meu problema esta quando o cnpj possui menos de 14 digitos,
no banco de dados o campo esta como numero
a mascara da masked esta como
If .CFGTipCam = [Ô]cnpj[Ô] Then
.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals
.Mask = [Ô]99,999,999/9999-99[Ô]
End If
no validating da maskedtext box colo minha função para validadar, ate ai tudo bem, mas quando o cnpj tem menos de 14 digitos ela fica conforme figuara anexada,isso nao atrapalha meu codigo mas fica feio, poderia ter algo no evento leave para arrumar, mas quero que no momento de carregar os dados ela ja apareca corretamente, alguem ja passou por isto?
estou tentando utilizar o maskedtextbox para mascara de cnpj, meu problema esta quando o cnpj possui menos de 14 digitos,
no banco de dados o campo esta como numero
a mascara da masked esta como
If .CFGTipCam = [Ô]cnpj[Ô] Then
.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals
.Mask = [Ô]99,999,999/9999-99[Ô]
End If
no validating da maskedtext box colo minha função para validadar, ate ai tudo bem, mas quando o cnpj tem menos de 14 digitos ela fica conforme figuara anexada,isso nao atrapalha meu codigo mas fica feio, poderia ter algo no evento leave para arrumar, mas quero que no momento de carregar os dados ela ja apareca corretamente, alguem ja passou por isto?
Olá, creio que você precisa avaliar o tamanho do campo antes da máscara. Algo como:
SELECT CASE Trim(Len(seuCampo))
CASE <=11
Formato p/ 11 digitos...
CASE >11
Formato maior q 11 digitos..
CASE tal...
END SELECT
por ai vai...
SELECT CASE Trim(Len(seuCampo))
CASE <=11
Formato p/ 11 digitos...
CASE >11
Formato maior q 11 digitos..
CASE tal...
END SELECT
por ai vai...
Private Sub txtCnpj_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtCnpj.TextChanged
If Len(txtCnpj.Text) >= 18 Then
OutroCampo.Focus
End If
End Sub
Usando o Mask vc pode fazer assim para quando o usuario digitar 14 caracteres ele sai do Mask
nao existe CNPJ com quantidade diferente de 14
vc pode colocar ai tambem
If Len(txtCnpj.Text) <> 18 Then
Faça alguma coisa Ex:
MessageBox.Show([Ô]Campo (CNPJ) esta errado[Ô])
End If
boa tarde a todos,
quanto ao cnpj realmente não existe menor de 14 digitos, entretanto o que existe é zeros da esquerda para direita(se é que posso dizer isto), como no meu exemplo o cnpj inserido é 00.360.305/0001-04, mas como no banco esta definido como numero então ele vai constar como sendo 360305000104
pensei que o maskedtextbox colocasse automaticamente os zeros que faltam a esquerda de acordo com a mascara definida, assim ao carregar os dados da tabela, ele automaticamente exibiria os zeros.
ENtão a pergunta é, o maskedtextbox consegue colocar os zeros automaticamente a esquerda?veja que
a pergunta é ao carregar os dados ou durante a navegação de dados, mas não quando o usuario acessa o campo.
quanto ao cnpj realmente não existe menor de 14 digitos, entretanto o que existe é zeros da esquerda para direita(se é que posso dizer isto), como no meu exemplo o cnpj inserido é 00.360.305/0001-04, mas como no banco esta definido como numero então ele vai constar como sendo 360305000104
pensei que o maskedtextbox colocasse automaticamente os zeros que faltam a esquerda de acordo com a mascara definida, assim ao carregar os dados da tabela, ele automaticamente exibiria os zeros.
ENtão a pergunta é, o maskedtextbox consegue colocar os zeros automaticamente a esquerda?veja que
a pergunta é ao carregar os dados ou durante a navegação de dados, mas não quando o usuario acessa o campo.
Regra para definição de tipo de campo na tabela de db:
[Ô]O tipo de campo deverá ser numérico somente quando a informação for usada para fazer cálculos.[Ô]
[Ô]O tipo de campo deverá ser numérico somente quando a informação for usada para fazer cálculos.[Ô]
realmente federhen, estava com a mentalidade de que o numero é mais rapido e que ocupa menos espaço no banco, mas isso depende, e no caso do cnpj o campo texto com tamanho devidamente definido dá conta do recado, alem de diminuir a quantidade de código no front end,
grato.
grato.
Tópico encerrado , respostas não são mais permitidas