Que tal uma funcao que verifica os dois?
Segue:
Os parametros são:        1) O número que deseja veriricar (númerico).
                                      2) CGC ou CPF (numerico 1 e 2
respectivamente).
Retorna TRUE se o dígito está correto.
             FALSE se o dígito esta incorreto ou se o conteúdo passado é
zero.



Global Declararions
    Constants
        User
            Number: Tipo_CGC = 1
            Number: Tipo_CPF = 2
.
.
.
Internal Functions
    Function: Valida_CGCPF
        Parameters
            Number: pnCGCPF
            Number: pnTipo
        Local variables
            Number: lnCont
            Number: lnCont2
            Number: lnSomaDV
            Number: lnMult
            Number: lnSize
            String: lsDig
            String: lsDg
            String: lsCGCPF
        Actions
            If pnCGCPF = 0
                Return FALSE
            If pnTipo = Tipo_CGC
                Set lnSize = 14
            Else
                Set lnSize = 11
            Set lsDig = ''
            Set lsCGCPF = SalNumberToStrX( pnCGCPF, 0 )
            Set lsCGCPF = SalStrRepeatX( '0', lnSize - SalStrLength(
lsCGCPF ) ) || lsCGCPF
            Set lsDg = SalStrRightX( lsCGCPF, 2 )
            Set lsCGCPF = SalStrLeftX( lsCGCPF, lnSize - 2 )
            Set lnCont2 = 01
            While lnCont2 <= 2
                Set lnMult = 1
                Set lnSomaDV = 0
                Set lnCont = SalStrLength( lsCGCPF ) + SalStrLength( lsDig )
                While lnCont >= 1
                    If pnTipo = Tipo_CGC AND lnMult = 9
                        Set lnMult = 1
                    Set lnMult = lnMult + 1
                    Set lnSomaDV = lnSomaDV + ( SalStrToNumber(
SalStrMidX( lsCGCPF || lsDig, lnCont - 1, 1 ) ) * lnMult )
                    Set lnCont = lnCont - 1
                Set lsDig = lsDig || SalStrRightX( SalNumberToStrX(
SalNumberMod( lnSomaDV * 10, 11 ), 0 ), 1 )
                Set lnCont2 = lnCont2 + 1
    Return lsDig = lsDg


[]'s Pexinho!!!

==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================

Responder a