Re: Recherche ( très souple )

Posté par Le_GnU le 5/11/2007 11:53:12
Bonjour,
en faisant ce code ... ça marche pas :
tblVar est un tableau dynamique de 0 chaînes
Ind est un entier
sCondition est une chaîne
sClientRecherche est une chaîne = "dupon"
Rs est une Source de Données
Sql est une chaîne

//On remplie un tableau avec les valeurs voulues
TableauAjoute(tblVar, "Allergie")
TableauAjoute(tblVar, "Asthme")
TableauAjoute(tblVar, "Machine")

//On construit la condition
POUR Ind = 1 A Dimension( tblVar)
	
FIN

SI SansEspace(valNom) <> "" ALORS 
	sCondition += " AND [Nom] = '" + valNom..Valeur + "' "
FIN
SI SansEspace(ValDate) <> "" ALORS 
	sCondition += " AND [Date_int] = '" + ValDate..Valeur + "' "
FIN
SI SansEspace(ValClasse) <> "" ALORS 
	sCondition += " AND [Classes] = '" + ValClasse..Valeur + "' "
FIN
SI SansEspace(ValDifficultes) <> "" ALORS 
	sCondition += " AND [Difficultes] = '" + ValDifficultes..Valeur + "' "
FIN
SI SansEspace(ValPai) <> "" ALORS 
	sCondition += " AND [Pai] = '" + ValPai..Valeur + "' "
FIN
SI SansEspace(ValSuivi) <> "" ALORS 
	sCondition += " AND [Suivi] = '" + ValSuivi..Valeur + "' "
FIN
SI SansEspace(ValSuites) <> "" ALORS 
	sCondition += " AND [Suites] = '" + ValSuites..Valeur + "' "
FIN
SI SansEspace(ValNotes) <> "" ALORS 
	sCondition += " AND [Notes] = '" + ValNotes..Valeur + "' "
FIN

//On construit la requête
Sql =
[
SELECT
WL.Phonétique(Donnee.Nom) As Nom
WL.Phonétique(Donnee.Date_int) As Date_int
WL.Phonétique(Donnee.Classes) As Classes
WL.Phonétique(Donnee.Difficultes) As Difficultes
WL.Phonétique(Donnee.Pai) As Pai
WL.Phonétique(Donnee.Suivi) As Suivi
WL.Phonétique(Donnee.Suites) As Suites
WL.Phonétique(Donnee.Notes) As Notes
FROM 
Donnee
WHERE
Nom LIKE
Date_int LIKE
Classes LIKE
Difficultes LIKE
Pai LIKE
Suivi LIKE
Suites LIKE
Notes LIKE
]
Sql += "'%" + WL.Phonétique(sClientRecherche) + "%'"

//On execute la requete
Sql = Remplace( Sql, "@sCondition", sCondition )
SI PAS HExécuteRequêteSQL( Rs, hRequêteDéfaut, Sql ) ALORS
	Erreur( HErreurInfo())
	RETOUR
FIN

POUR TOUS Rs
	//remplir la table
	TableAjouteLigne(Table_recherche,{NomEta + ".Nom",indRubrique},...
	{NomEta + ".Date_int",indRubrique},...
	{NomEta + ".Rs",indRubrique},...
	{NomEta + ".A_voir",indRubrique},...
	{NomEta + ".classes",indRubrique},...
	{NomEta + ".Difficultes",indRubrique},...
	{NomEta + ".Pai",indRubrique},...
	{NomEta + ".Suivi",indRubrique},...
	{NomEta + ".Suites",indRubrique},...
	{NomEta + ".Notes",indRubrique},...
	{NomEta + ".Archiver",indRubrique})
FIN


Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=5474&post_id=22554