Esta es la función que uso, quita las funciones personalizadas y pon messagebox y te funcionará correctamente.
Cualquier duda me lo dices.
Saludos,
José Enrique Llopis
***************************************************************************************
*** Verifica un DNI español
***************************************************************************************
FUNCTION _FFWK_VerificaDNISpain
LPARAMETER lccadena, llnopreguntar
LOCAL lnlencad, dnum, primerc, ultimoc, pultimoc, lncont, lnnumnifcif, lcletra
lnlencad = LEN(lccadena)
lcauxcad = ALLTRIM(lccadena)
FOR lncont = 1 TO LEN(lcauxcad)
IF !(ISDIGIT(SUBSTR(lcauxcad, lncont, 1)) OR ISALPHA(SUBSTR(lcauxcad, lncont, 1)) OR INLIST(SUBSTR(lcauxcad, lncont, 1), ".", "-", "/"))
lcauxcad = STUFF(lcauxcad, lncont, 1, " ")
ENDIF
ENDFOR
lcauxcad = ALLTRIM(CHRTRAN(lcauxcad, " ", ""))
primerc = LEFT(lcauxcad, 1)
ultimoc = RIGHT(lcauxcad, 1)
pultimoc = LEFT(RIGHT(lcauxcad, 2), 1)
IF !ISDIGIT(primerc)
RETURN PADR(lcauxcad, lnlencad)
ENDIF
IF ISALPHA(pultimoc)
RETURN PADR(lcauxcad, lnlencad)
ENDIF
dnum = ""
FOR lncont = 1 TO LEN(lcauxcad)
IF ISDIGIT(SUBSTR(lcauxcad, lncont, 1))
dnum = dnum+SUBSTR(lcauxcad, lncont, 1)
ENDIF
ENDFOR
lnnumnifcif = ABS(VAL(dnum))
lncont = lnnumnifcif-((INT(lnnumnifcif/23))*23)
lcletra = SUBSTR("TRWAGMYFPDXBNJZSQVHLCKET", lncont+1, 1)
DO CASE
CASE ISALPHA(ultimoc) AND ultimoc!=lcletra AND lnnumnifcif!=0
IF llnopreguntar OR MESSAGEBOX( _FFWK_TextoTraducido2("El dígito de control de CIF está equivocado.¿Desea corregirlo de forma automática?", 381), 36, _FFWK_TextoTraducido2("Atención", 382) )=6
lcauxcad = STUFF(lcauxcad, LEN(lcauxcad), 1, lcletra)
ENDIF
CASE (ISDIGIT(ultimoc) OR EMPTY(ultimoc) OR INLIST(ultimoc, ".", "-")) AND lnnumnifcif!=0
IF llnopreguntar OR MESSAGEBOX("Falta el dígito de control del CIF. "+CHR(13)+"¿ Desea que se añada de forma automática ?", 36, "Atención")=6
lcauxcad = lcauxcad+lcletra
ENDIF
ENDCASE
RETURN (lcauxcad)
ENDFUNC
Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
Por favor manda el mensaje adjunto con otra extensión, Outlook se lo carga, gracias.
Es que me interesa el tema. Un abrazo a todos,
José Enrique Llopis
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Miguel A.
Enviado el: jueves, 21 de enero de
2016 19:48
Para: Comunidad de Visual Foxpro
en Español
¡Gracias! Un abrazo amigo