Re: l'importation...et les doublons | Sujet: Re: l'importation...et les doublons par Dream_Team sur 1/7/2007 19:14:13
EDIT : HS -> Que te renvoie Info(modifieur..Valeur) ?
Voila le projet entier (WD 10) : http://dreamteam69.free.fr/WDForge/DoublonsXLS_WD10.rar (désolé pour les petits problèmes de gabarit, mon WD10 a des petits problemes, le GO mort entre autres ...) Bien evidemment, ceci n'est pas "la" solution mais une solution ;) Conseil : Adapter les types de la structure (les variants) a ceux correspondants aux types hyperfile. Je pense que le code en rouge ne pouvait supprimer qu'un doublon a la fois, empecher l'ajout etant plus simple que de nettoyer apres coup ;)
Voila la procédure :
//dbl est un entier = 0
//nDoublon est un entier
nPos est un entier = 0
stClient est une structure
IDClients est un entier
Nom est un Variant
Prénom est un Variant
Difficultes est un Variant
Pai est un Variant
Suivi est un Variant
Suites est un Variant
Date est un Variant
FIN
tmpClient est un stClient
i est un entier
t est un entier
nXls est un entier
nbCol est un entier
nbLig est un entier
nXls = xlsOuvre("testdoublon.xls")
nbCol = xlsNbColonne(nXls)
nbLig = xlsNbLigne(nXls)
HStatNbDoublon(Client,IDClients)
HCréationSiInexistant(Client)
HGèreIntégrité("*", "*", hCardinalité + hEnModification + hEnSuppression, Faux)
HGèreDoublon(Client,"*",Faux)
POUR T=2 A nbLig
POUR i=1 A nbCol
SELON i
CAS 2: Client.Nom = xlsDonnée(nXls,t,i)
CAS 3: Client.Prénom = xlsDonnée(nXls,t,i)
CAS 4: Client.Difficultes = xlsDonnée(nXls,t,i)
CAS 5: Client.Pai = xlsDonnée(nXls,t,i)
CAS 6: Client.Suivi = xlsDonnée(nXls,t,i)
CAS 7: Client.Suites = xlsDonnée(nXls,t,i)
CAS 8: Client.Date = xlsDonnée (nXls,t,i)
// On sauvegardes les données en mémoire
tmpClient:IDClients = Client.IDClients
tmpClient:Nom = Client.Nom
tmpClient:Prénom = Client.Prénom
tmpClient:Difficultes = Client.Difficultes
tmpClient:Pai = Client.Pai
tmpClient:Suivi = Client.Suivi
tmpClient:Suites = Client.Suites
tmpClient:Date = Client.Date
// Sauve le contexte en cours
nPos = HSauvePosition(Client,Nom) // Pour WD11 : Utiliser nPos = HSauvePosition(Client,Nom,hSauveRubriques) a la place de la structure, puis enlever tout ce qui touche a tmpClient
HLitRecherche(Client,Nom,tmpClient:Nom,hIdentique) // hIdentique : Pour eviter que Dupont et Dupontel soient détectés en doublon.
SI PAS HTrouve ALORS
HRestorePosition(nPos)
// On restaure
Client.IDClients = tmpClient:IDClients
Client.Nom = tmpClient:Nom
Client.Prénom = tmpClient:Prénom
Client.Difficultes = tmpClient:Difficultes
Client.Pai = tmpClient:Pai
Client.Suivi = tmpClient:Suivi
Client.Suites = tmpClient:Suites
Client.Date = tmpClient:Date
HAjoute(Client,hAffecteParcours)
FIN
FIN
FIN
FIN
//SI HStatNbDoublon() >= 1 ALORS
// dbl = 1
//FIN
//SI dbl = 1 ALORS
// nDoublon = HLitRecherche(Client,IDclients,dbl)
// HSupprime(Client,nDoublon,hVérifieIntégrité)
//FIN
xlsFerme(nXls)
SI HErreurIntégrité() = Vrai OU HErreurDoublon() = Vrai ALORS
Erreur("Une erreur c'est produite, veuillez recommencer")
SINON
Info("L'importation s'est déroulée avec succès.")
FIN
|
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|