Message de rapport:
 

[RESOLU] Import sans doublons

Sujet: [RESOLU] Import sans doublons
par Le_GnU sur 20/9/2007 18:37:33

Bonsoir,
Alors, après plusieurs tests, j'ai découvert ce qui n'allait pas et je l'ai corriger :
Au lieu de désactiver le filtre AVANT de fermer le fichier Xls, j'ai désactiver le filtre APRES.
Ce qui donne ceci ( le code en ENTIER, qui marche )

PROCEDURE ImporterDonnees(NomEta est une chaîne = "Donnee")
t est un entier
nXls est un entier
nbLigne est un entier
selecteur est une chaîne

selecteur = fSélecteur("", "", "Sélectionnez un fichier à importer", "Fichier Excel"+TAB+"*.xls", "*.xls", fselOuvre+fselExiste)
SI selecteur = "" ALORS RETOUR

nXls = xlsOuvre(selecteur)
nbLigne = xlsNbLigne(nXls)

HGèreIntégrité("*", "*", hCardinalité + hEnModification + hEnSuppression, Faux)
HGèreDoublon(NomEta,"*",Faux)

POUR t=2 A nbLigne
	
	// On filtre le fichier sur les deux conditions
	HFiltre(NomEta, "Nom='"+xlsDonnée(nXls,t,1)+"' ET Date_int='"+xlsDonnée(nXls,t,4)+"'")
	// on lit le premier enregistrement (s'il en existe un) qui correspond aux conditions...
	HLitPremier(NomEta, hRespecteFiltre)
	// Si HEnDehors alors cela veut dire qu'il n'y en a aucun, on peut donc ajouter
	SI HEnDehors() ALORS
		{NomEta + ".Nom",indRubrique} = xlsDonnée(nXls,t,1)
		{NomEta + ".Rs",indRubrique} = xlsDonnée(nXls,t,2)
		{NomEta + ".A_voir",indRubrique} = xlsDonnée (nXls,t,3)
		{NomEta + ".Date_int",indRubrique} = xlsDonnée (nXls,t,4)
		{NomEta + ".Classes",indRubrique} = xlsDonnée(nXls,t,5)
		{NomEta + ".Difficultes",indRubrique} = xlsDonnée(nXls,t,6)
		{NomEta + ".Pai",indRubrique} = xlsDonnée(nXls,t,7)
		{NomEta + ".Suivi",indRubrique} = xlsDonnée(nXls,t,8)
		{NomEta + ".Suites",indRubrique} = xlsDonnée(nXls,t,9)
		{NomEta + ".Notes",indRubrique} = xlsDonnée(nXls,t,10)
		{NomEta + ".archiver",indRubrique} = xlsDonnée (nXls,t,11)
		
		// Puis on ajoute
		SI PAS HAjoute(NomEta) ALORS
			Trace(HErreurInfo())
		FIN
		

	FIN
	
FIN

// On ferme le fichier Xls
xlsFerme(nXls)
	
		// Puis on désactive le filtre
		HDésactiveFiltre(NomEta)
	
	// Et enfin, on vérifie les erreurs
	SI HErreurIntégrité() = Faux OU HErreurDoublon()=Faux ALORS
		Info("L'importation s'est déroulée avec succès !")
	SINON
		Erreur("Une erreur s'est produite, veuillez ré-essayer.")	
	FIN


Voila !

Merci beaucoup Kaer et,
@+
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2