Ne pas exécuter la requête sans filtre
Cette fonction permet de ne pas exécuter la requête d'une liste sur requête si aucun filtre n'a été saisi. la liste apparaît vide.
Utiliser cette option si le nombre d’enregistrement retourné par la requête non filtré risque de plomber les temps de réponse en raison du volume de données.
Lorsque cette option est activée, la requête n'affiche aucun résultat, et le libellé "Veuillez saisir des valeurs de recherche pour afficher un résultat" apparaît :
Prenons l'exemple de l'affichage d'une liste d'article :
Sans le paramètre activé : Le résultat de la requête est affiché.
Avec le paramètre activé : La liste n'affiche aucun résultat, le libellé "Veuillez saisir des valeurs de recherche pour afficher un résultat" apparaît.
Avec le paramètre activé et après saisie d'un filtre : Le résultat de la requête filtrée est affiché.
Dans l'éditeur d'objets le paramètre est par défaut non activé. Il est possible de saisir une condition d'activation de cette fonction. si la condition n'est pas vérifiée, la requête est exécutée comme si le paramètre n'était pas activé.
Pour activer ce paramètre, il faut deux conditions supplémentaires à la condition.:
Mise en oeuvre :
2 prérequis :
1 : la clause where de la requête
La requête SQL doit contenir dans la clause "Where" la valeur du filtre saisi. Ce filtre est contenu dans la variable "SEARCHFILTER_XML".
Exemple : requête " Liste des articles".
declare @reqOrderBy varchar(max) = ' order by CodeArticle desc'
declare @req varchar(max) = 'SELECT CodeArticle, Designation1, Codefamille FROM ARTICLE as tbl WHERE 1= 1 '
+dbo.XMLToWhere([@SEARCHFILTER_XML]) + @reqOrderBy
exec (@req)
La valeur du filtre de recherche est ajoutée à la requête après la première clause “Where” toujours vérifiée (….WHERE 1= 1
+dbo.XMLToWhere([@SEARCHFILTER_XML])
) .
Si un "order by" est nécessaire, dans l'exemple il est le contenu d'une variable déclarée que l'on ajoute à la requête finale ( + @reqOrderBy
).
2 : La définition de colonnes est obligatoire
Donnez votre avis sur la Base de connaissance Silog ici ou contactez-nous directement par mail sur confluence@silog.fr