Merci avant tous aux membres du forum "windev" pour le partage des informations.
Je ne suis en aucun cas celui qui a inventé l'eau chaude, je ne fait que partage mes connaissances et donner quelques explications :
Si je me suis trompé sur quelque chose n'hésitez pas à me reprendre !
//////////////////////////////////////////////////////////
// Beugnies Johan (JoTech)
// Date : 06/2007
// Code de Lecture de la carte d'identité Belge
//
// Fonctionne avec "Belgian eID Run-time Version 2.5.9
//////////////////////////////////////////////////////////
//
// Ce code est a placer dans un boutton pour la lecture de la carte d'identité Belge
// Remise a zéro des champs de saisie
//Raz()
chCardID est une chaîne
chCardName est une chaîne
chCardFirstName1 est une chaîne
chCardFirstName2 est une chaîne
chCardFirstName3 est une chaîne
chCardBirthDate est une Date
chCardBirthPlace est une chaîne
chCardNationalNumber est une chaîne
chCardNationality est une chaîne
chCardGender est une chaîne
chCardBeginValidityDate est une Date
chCardEndValidityDate est une Date
chCardIssuingMunicipality est une chaîne
chCardStreet est une chaîne
chCardHouseNumber est une chaîne
chCardBoxNumber est une chaîne
chCardMunicipality est une chaîne
chCardZIPCode est une chaîne
chCardCountry est une chaîne
LaPhoto est un tableau de 10000 entier sur 1
bPicture est un Buffer
intCpt est un entier
intDim est un entier
eHandle est un entier
// Déclaration des objets
objetEID est un objet Automation dynamique
objetEIDStatus est un objet Automation dynamique
objetEIDCheck est un objet Automation dynamique
objetEIDData est un objet Automation dynamique
// Initialisation de l'objet et
// Positionnement sur le bloc pour la lecture de des informations "Général"
objetEID = allouer un objet OLE "EIDLibCtrl.EIDLib"
objetEIDStatus = objetEID>>Init("",0,0,&eHandle)
objetEIDStatus = objetEID>>GetID(objetEIDData,objetEIDCheck)
// Teste sur le retour du code
// Procedure récupérer sur le forum "GeneralCode" et implanté ici
// Pour tester toutes les erreurs éventuel lié à la lecture de la carte
SI objetEIDStatus>>GetGeneral() <> BEID_OK ALORS
Erreur("Error N° "+objetEIDStatus>>GetGeneral(),"", GeneralCode(objetE
IDStatus>>GetGeneral()))
RETOUR
SINON
// on peut ici mettre du code pour activer un boutton de récupération des informations !!!
FIN
Message("Lecture Informations d'identité ...")
Multitâche(15)
chCardID = objetEIDData>>GetValue("CardNumber")
chCardBeginValidityDate = objetEIDData>>GetValue("BeginValidityDate")
chCardEndValidityDate = objetEIDData>>GetValue("EndValidityDate")
chCardName = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("Name"), alphabetUTF8) )
chCardFirstName1 = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("FirstName1"), alphabetUTF8) )
chCardFirstName2 = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("FirstName2"), alphabetUTF8) )
chCardFirstName3 = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("FirstName3"), alphabetUTF8) )
chCardBirthDate = objetEIDData>>GetValue("BirthDate")
chCardBirthPlace = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("BirthPlace"), alphabetUTF8) )
chCardNationalNumber = objetEIDData>>GetValue("NationalNumber")
chCardNationality = objetEIDData>>GetValue("Nationality")
chCardGender = objetEIDData>>GetValue("Gender")
chCardIssuingMunicipality = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("IssuingMunicipality"), alphabetUTF8) )
Message("Lecture de l'adresse ...")
Multitâche(15)
// Positionnement sur le bloc pour la lecture de des informations "Adresse"
objetEID>>GetAddress(objetEIDData,objetEIDCheck)
chCardStreet = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("Street"), alphabetUTF8) )
chCardBoxNumber = objetEIDData>>GetValue("BoxNumber")
chCardZIPCode = objetEIDData>>GetValue("ZIPCode")
chCardMunicipality = UnicodeVersAnsi(AnsiVersUnicode(objetEIDData>>GetValue("Municipality"), alphabetUTF8) )
chCardCountry = objetEIDData>>GetValue("Country")
Message("Lecture de l'image ...")
Multitâche(15)
// Positionnement sur le bloc pour la lecture de l'information "Image"
objetEID>>GetPicture(objetEIDData,objetEIDCheck)
LaPhoto = objetEIDData>>GetValue("Picture")
intDim=Dimension(LaPhoto)
FOR intCpt = 1 TO intDim
Jauge(intCpt,intDim,"Conversion de l'image")
bPicture+=Caract(LaPhoto[intCpt])
END
Multitâche(10)
Jauge()
// Sauvegarde dans le fichier jpeg dans le repertoire de l'application le nom correspond au numéro de carte
fSauveTexte(fRepEnCours()+"\"+chCardID+".jpg",bPicture)
Message("")
// Affecté ci-dessous toute les champs de saisie / sélecteur genre / image
// Je vous ai laissé le code ci-dessous en remarque, a vous d'affecter vos champs de saisie ou de les renomer
// Affectation de l'image au champ image "Image_eID"
//Image_eID = bPicture
//chID est une chaîne = Milieu(chCardID,1,3)+"-"+Milieu(chCardID,4,7)+"-"+M
ilieu(chCardID,11,2)
//Saisie_Numero_eID = chID
//Saisie_Date_validité_debut = chCardBeginValidityDate
//Saisie_Date_validité_fin = chCardEndValidityDate
//Saisie_Commune_Emission = chCardIssuingMunicipality
//Saisie_Nom = chCardName
//Saisie_Prenom = chCardFirstName1
//Saisie_Adresse = chCardStreet
//Saisie_CodePostal = chCardZIPCode
//Saisie_Localite = chCardMunicipality
//Saisie_Genre = chCardGender
//SI chCardGender = "M" ALORS
// Sél_Genre = 1
//SINON
// Sél_Genre = 2
//FIN
//Saisie_Nationnalite = chCardNationality
//chNum_NN est une chaîne = Milieu(chCardNationalNumber,1,2)+"."+Milieu(chCar
dNationalNumber,3,2)+"."+Milieu(chCardNationalNumber,5,2)+"-"+Milieu(chCardNa
tionalNumber,7,3)+"."+Milieu(chCardNationalNumber,10,2)
//Saisie_NumeroNational = chNum_NN
//Saisie_Lieu_Naissance =chCardBirthPlace
//Saisie_Date_Naissance = chCardBirthDate
objetEID>>Exit()
libérer objetEID
libérer objetEIDStatus
libérer objetEIDCheck
libérer objetEIDData
Partager