Contar quantidade caracteres campo

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

gilsonpaulo
Usuário Nível 3
Usuário Nível 3
Mensagens: 135
Registrado em: 02 Fev 2008 11:30
Localização: Quatro Barras

Contar quantidade caracteres campo

Mensagem por gilsonpaulo »

Bom dia.

É o sequinte tenho um banco de clientes onde o cpf e o cnpj são cadastrados no mesmo campo, ja usei o strtran com sucesso para retirar os ".", "-" e "/", agora preciso filtrar isso para classificar como pessoa juridica e fisica para aplicar a mascara.

CAMPO CNPJCPF = 05796221000131
CAMPO PESSOA = J // PESSOA JURIDICA

CAMPO CNPJCPF = 03295459706
CAMPO PESSOA = F // PESSOA FISICA

No filtro quando o campo CNPJCPF estiver proenchido com 14 caracteres sera marcado o compo pessoa como J, sendo 11 caracteres sera marcado com F.

Desde ja agradeço.

Gilson Paulo Schuck
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Simples: conte os caracteres de pois de eliminar os espaços. Se obter 14, pessoa jurídica. Caso contrário, só pode ser pessoa física. Agora, se está convertendo isso de uma base antiga, seria prudente também validar o número obtido, a fim de não manter inscrições inválidas.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
gilsonpaulo
Usuário Nível 3
Usuário Nível 3
Mensagens: 135
Registrado em: 02 Fev 2008 11:30
Localização: Quatro Barras

Re: Contar quantidade caracteres campo

Mensagem por gilsonpaulo »

A base é antiga, como sou meio novo na ramo do clipper, presciso saer qual funcao faz isso, só para corrigir esta base de dados.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Código: Selecionar todos

if Len(AllTrim(CAMPO)) = 14
   // CNPJ
else
   // CPF
end
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Em tempo: se quiser validar os campos, claro, o Clipper não tem isso nativo. Use alguma função, própria ou de terceiros. Divulguei minhas funções de validação na seção "Código Fonte". Não só para CNPJ e CPF, mas também pra vários outros documentos.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
gilsonpaulo
Usuário Nível 3
Usuário Nível 3
Mensagens: 135
Registrado em: 02 Fev 2008 11:30
Localização: Quatro Barras

Re: Contar quantidade caracteres campo

Mensagem por gilsonpaulo »

Obrigado Maligno, funcionou.

Sei que são coisas bestas, mas como estou a pouco tempo no mundo clipper, desconheco algumas funções.

Com relação a valiadação de CNPJ e CPF, ja as uso, peguei aqui do site mesmo. Funcionam corretamente

Código: Selecionar todos

IF ipes1 = "F"
        @ 07,13 GET icgc1 PICTURE "@KR 999.999.999-99" VALID !EMPTY(VCPF(icgc1))
ELSE
        @ 07,13 GET icgc1 PICTURE "@KR 99.999.999/9999-99" VALID !EMPTY(VCGC(icgc1))
ENDIF
Ficou assim o procedimento:

Código: Selecionar todos

use cadcli alias cli
while !eof()
        cli->cgccli:=strtran(strtran(strtran(cli->cgccli, "."),"-"),"/")
        cli->inscli:=strtran(strtran(strtran(cli->inscli, "."),"-"),"/")
        if len(alltrim(cli->cgccli)) = 14
                replace cli->pessoa with "J"
        else
                replace cli->pessoa with "F"
        end

        dbskip()
end
dbcommit()
Editado pela última vez por gilsonpaulo em 21 Set 2008 10:47, em um total de 1 vez.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Tudo bem. No início é tudo meio confuso mesmo. Mas procure no seu tempo vago ler o NG e ir tomando ciência do que o Clipper coloca à sua disposição, mesmo sem o compromisso de conhecer os detalhes. Pior que não conhecer os detalhes de um recurso é não saber que ele existe. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
gilsonpaulo
Usuário Nível 3
Usuário Nível 3
Mensagens: 135
Registrado em: 02 Fev 2008 11:30
Localização: Quatro Barras

Re: Contar quantidade caracteres campo

Mensagem por gilsonpaulo »

Na verdade não programava em clipper, eu trabalhava com manutenção de redes e computadores e o rapaz com programação, ai ele se encheu e foi criar avestruz, e deixou todo e legado dele para min, pois eu era a pessoa de confiança dele, ele me ensinou algumas coisas, mas conforme as coisas vão apertando e as modificações que os clientes pedem vão ficando um pouco complexas eu me enrolo um pouco.

Mas valeu a ajuda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Então, se quer levar adiante sua nova profissão, leve bem a sério o meu conselho. Até porquê, Clipper é muito fácil. A dificuldade será multiplicada várias vezes quando migrar pra Windows.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
gilsonpaulo
Usuário Nível 3
Usuário Nível 3
Mensagens: 135
Registrado em: 02 Fev 2008 11:30
Localização: Quatro Barras

Re: Contar quantidade caracteres campo

Mensagem por gilsonpaulo »

Tenho varias libs que ele me passou com as fontes assim que eu der uma garimpada nelas e deixalar prontas para harbour, vou disponibilizar elas para vcs.
Responder