MASCARA MASKEDTEXTBOX PARA CNPJ MENOR 14 DIGITOS

WILMADMAX 16/09/2012 16:03:59
#409771
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?
ONBASS 17/09/2012 23:15:09
#409853
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...
MAYLKON 18/09/2012 11:54:28
#409875

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


WILMADMAX 18/09/2012 14:17:28
#409891
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.
FEDERHEN 18/09/2012 15:40:18
#409906
Resposta escolhida
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.[Ô]
WILMADMAX 18/09/2012 23:40:42
#409938
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.
Tópico encerrado , respostas não são mais permitidas