Requête SQL dynamique dans un dataset SSRS

Comment créer une requête SQL dynamique dans un dataset SSRS? Dans SSRS les champs utilisés dans un objet tableau, ou tout objet d’affichage sont liés à la base de données. Cela grâce à un dataset qui est lui même le résultat d’une requête SQL. Ce dataset est rattaché à une data source ou source de données.

En effet, cette source contient une connexion à la base de données ou au cube OLAP pour restituer les données. La restitution des données rend possible la création de rapports statiques grâce à des requêtes figées ou des rapports dynamiques. 

 

Afin de tirer le meilleur parti de ces requêtes et rendre possible uniquement l’affichage de la sélection des données que l’utilisateur souhaite voir comme en faisant des filtres sur une année, un produit ou un client particulier. Il est obligatoire d’implémenter un maximum de fonctions dynamique dans les rapports.En plus de cela, l’utilisation conjointe de plusieurs paramètres permet d’affiner la sélection des données.

Reporting Services, l’ouil Reporting et Tableau de bord de la suite BI de Microsoft est d’ailleurs devenue complètement Responsive depuis la version 2016. 

 

Comment écrire une requête SQL dynamique avec Reporting Services?

La solution la plus facile à maintenir et à faire évoluer est la suivante :

 

SELECT *
FROM TABLE1
WHERE CHAMPS = PARAMETERS!PARAMETER2.VALUE

 

Au préalable, le système évalue le paramètre PARAMETERS!PARAMETER2.VALUE en fonction d’un premier paramètre visible. Et sélectionné à l’intèrieur d’une liste de choix par l’utilisateur, uniquement à l’exécution du rapport.

Pour ce faire, dans les propriétés expression du paramètre PARAMETER2, insérer un code comme celui-ci:

=IIF(Parameters!Test.value = "Valeur","CONDITION1", "CONDITION2")

 

Il est préférable d’utiliser une solution comme celle-ci-dessus. En effet elle est plus utile que d’utiliser la deuxième solution, c’est à dire qui écrirait en dur les deux paramètres dans l’expression de la requête :

IF PARAMETERS!PARAMETER.VALUE = UNEVALEUR
SELECT * FROM TABLE1 WHERE CHAMPS = CONDITION1
ELSE
SELECT * FROM TABLE1 WHERE CHAMPS = CONDITION2

 

Cet article présente comment créer une requête SQL dynamique dans un dataset SSRS. Pour aller plus loin, voici comment déployer les rapports SSRS directement depuis un projet dans Visual Studio.

Soyez le premier à commenter

Laisser un commentaire