Mudar Pict CNPJ CPF

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Marsenne Negreiros
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 10 Jan 2007 11:04
Localização: Brasília
Contato:

Mudar Pict CNPJ CPF

Mensagem por Marsenne Negreiros »

Tenho a seguinte necessidade:

wTpInsfe="CPF "
wInsFede=SPACE(14)
@ 10,10 SAY "Inscrição Federal (CNPJ/CPF)" GET wTpInsFe PICT "!!!!"
@ 12,10 SAY "Número" GET wInsFede PICT "@R 999.999.999-99"
READ

Como faço para mudar a máscar de CPF (999.999.999-99) para CNPJ (99.999.999/9999-99) sempre que o usuário mudar o tipo de inscrição?
É possível utilizar alguma função no mesmo READ?

Obrigado.
Marsenne Negreiros
Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Mensagem por momente »

Amigo Marsenne Negreiros,

Eu faço assim, identifico se é pessoa física ou jurídica ( J/F ) ae abro uma variável e o usuário entra com os números sem pontos/barras, faço a validação do mesmo usando uma função para isto e retorno usando a função TRANSFORM(variavel, picture), Ex:

Se for jurídica ( J )
mNroDoc:=TRANSFORM(gCNPJ, "99.999.999/9999-99")
Se for física ( F )
mNroDoc:=TRANSFORM(gCPF, "999.999.999-99")

Valeu! :)Pos
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Parceiro... eu normalmente uso 2 campos: um que eu chamo de cpf_cnpj (N-14,0) e um outro tipo_pess (C-1)

Antes eu pergunto o Tipo de Pessoa (Física ou Juridica).
Dependendo da resposta eu peço CPF/CNPJ alterando a máscara de acordo. Ex:

Código: Selecionar todos

wCpf_Cnpj = space(18)
wTpPess   = space(1)

@ 09,10 SAY "Tipo de Pessoa (F)ísica ou (J)urídica:" GET wTpPess PICT "!" valid wTpPess $ "FJ"
read

If  wTpPess="F"
   @ 10,10 SAY "Inscrição Federal (CPF):" GET wCpf_Cnpj PICT "@R 99.999.999/9999-99" valid  empty(wCpf_Cnpj)=.f.
else 
   @ 10,10 SAY "Inscrição Federal (CNPJ):" GET wCpf_Cnpj PICT "@R 999.999.999-99" valid empty(wCpf_Cnpj)=.f.
endif
READ
Espero ter ajudado....
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Do NG:

Picture (Assignable)

Contains a character value defining the PICTURE string that controls
formatting and editing for the Get object. See the @...GET entry in
this chapter for more information on PICTURE strings.

oGet:Picture := "@R (999)999-9999"

Boa sorte.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Marsenne, vai ai um exemplo do que você pode fazer:

Código: Selecionar todos

LOCAL GetList := {}
cls
wTpInsfe="CPF "
wInsFede=SPACE(14)
v_pic="999.999.999-99"
@ 10,10 SAY "Inscricao Federal (CNPJ/CPF)" GET wTpInsFe PICT "!!!!"
@ 12,10 SAY "Numero" GET wInsFede PICT (v_pic) WHEN { |oGet| TROCA_PIC(oGet,wTpInsFe) }
READ 

RETU

FUNC TROCA_PIC(oGet,v_Tipo)
if v_Tipo = "CNPJ" 
  oGet:picture :="@R 99.999.999/9999-99"
else
  oGet:picture :="@R 999.999.999-99"
endif
retu .T.
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Marsenne Negreiros
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 10 Jan 2007 11:04
Localização: Brasília
Contato:

Mudar Pict CNPJ CPF

Mensagem por Marsenne Negreiros »

Fantástico. Funciona muito bem.
Obrigado
Marsenne Negreiros
Avatar do usuário
filizola
Usuário Nível 3
Usuário Nível 3
Mensagens: 421
Registrado em: 19 Ago 2003 20:10
Localização: Belo Horizonte/MG

Mensagem por filizola »

obrigado a todos que me ajudaram, vou testar segunda feira no cliente e retorno a que melhor me atendeu.

um grande abraço.
"Um passo a frente, e já não estará mais no mesmo lugar..."
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Mudar Pict CNPJ CPF

Mensagem por clodoaldomonteiro »

Muito obrigado, também, ao Toledo por esta maravilhosa dica.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Responder