|
| Iniciado por christian.carnet, 25,nov. 2006 20:40 - 3 respuestas |
| |
| | | |
|
| |
| Publicado el 25,noviembre 2006 - 20:40 |
Bonjour à tous,
Je cherche un bout de programme écrit en WINDEV biensur, qui me permettrai de contrôler un numéro de sécurité sociale (insee)
Merci pour vos réponses A |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,noviembre 2006 - 08:52 |
Bonsoir Un bout de code à adapter à vos besoins sur le Ctrl du n° de S.S.
lmNumSs est un monétaire lmDiviseur est un monétaire = 97 lmResteDivision est un monétaire lo_cle_ss est un entier lo_numss est une chaîne lo_numss=NUM_SS //Num_ss est le champ contenant le N° de S.S. //CLE_SS est le champ contenant la clé //-----on regarde si Corse : 2A ; 2B = 18 SI Milieu(lo_numss,6,2) = "2A" ALORS lo_numss =Gauche(lo_numss,5) "19" Milieu(lo_numss, FIN SI Milieu(lo_numss,6,2) = "2B" ALORS lo_numss =Gauche(lo_numss,5) "18" Milieu(lo_numss, FIN lmNumSs=Val(lo_numss) SI lmNumSs<>0 ALORS lmResteDivision = Arrondi(PartieDécimale(lmNumSs/lmDiviseur)*lmDiviseur) lo_cle_ss = (97 - lmResteDivision) SI lo_cle_ss <> Val(CLE_SS) ALORS Erreur("Erreur entre Le Numéro de Sécurité Sociale : " NUM_SS RC ... "et la clé : " CLE_SS RC ... "Veuillez ressaisir le Numéro ou sa clé") CLE_SS =0 NUM_SS="" RepriseSaisie("NUM_SS") FIN FIN
Cordialement Serge Staszak
"Christian" <christian.carnet@free.fr> a écrit dans le message de news: 45687e7b$1@news.pcsoft.fr...
Bonjour à tous,
Je cherche un bout de programme écrit en WINDEV biensur, qui me permettrai de contrôler un numéro de sécurité sociale (insee)
Merci pour vos réponses A
|
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,noviembre 2006 - 08:52 |
PROCEDURE VERIFSAISIE_NUMERO_SS(NUMERO_SECU) nI,nCLEF,CORSE est entier nNumero est entier sans signe sur 8 octets sNUMSS est chaîne SI NUMERO_SECU<>"" ALORS // si rien n'est saisit renvoie toujours vrai
SI Taille(NUMERO_SECU)<21 ALORS RENVOYER(Faux) // verif sur taille chaine saisie FIN SI Milieu(NUMERO_SECU,10,1)="A" ALORS // traitement spécial pour la Corse CORSE00000 SINON SI Milieu(NUMERO_SECU,10,1)="B" ALORS CORSE 00000 SINON CORSE=0 FIN FIN nCLEF=Val(SansEspace(Droite(NUMERO_SECU,2))) POUR nI=1 A (Taille(NUMERO_SECU)-3) SI NUMERO_SECU[[nI]]<>" " ALORS SI NUMERO_SECU[[nI]]="A" OU NUMERO_SECU[[nI]]="B" ALORS sNUMSS ="0" SINON sNUMSS =NUMERO_SECU[[nI]] FIN FIN FIN
nNumero=Val(sNUMSS) nCLEF // CORSE SI modulo(nNumero,97)<>0 ALORS // verif du chiffre clé RENVOYER(Faux) FIN FIN RENVOYER Vrai |
| |
| |
| | | |
|
| | |
| |
| Publicado el 29,mayo 2019 - 10:28 |
FONCTION testsecu(sNumSecu est une chaîne fixe sur 15) bOk est un booléen = Vrai nNoSecu est un numérique nClef est un entier sNoSS est une chaîne = sNumSecu
//Vérification de la validité visuelle du No de sécu SI sansespace(sNumSecu) ="" RENVOYER (Faux, 0)
//1er traitement de la Corse SI PAS EstNumérique(sNoSS[[7]]) sNoSS[[7]] = 0 SI PAS EstNumérique(sNoSS[[ A 13]]) RENVOYER (Faux, 0)
nNoSecu = Val(sNoSS[[ A 13]])
//2ème traitement de la Corse SELON sNumSecu[[7]] CAS "A" nNoSecu -= 1000000 CAS "B" nNoSecu -= 2000000 AUTRE CAS //ne rien faire FIN
nClef = (97 - modulo(nNoSecu,97))
bOk = (nClef = Val(sNumSecu[[ 14 A 15]]))
RENVOYER (bOk, nClef) |
| |
| |
| | | |
|
| | | | |
| | |
|