Bonjour
J'aurais une question par rapport aux paramètres facultatifs dans les rapports BIRT.
Imaginons que j'aie la table "Utilisateur" créée par :
Je voudrais faire un rapport qui liste tous les utilisateurs avec la possibilité de filtrer ces derniers selon le nom et le prénom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE Utilisateur ( id INTEGER PRIMARY KEY, nom VARCHAR(50) NOT NULL, prenom VARCHAR(50) NOT NULL );
=> Je crée donc deux paramètres facultatifs pour mon rapport. Je leur donne les attributs :
Le but étant d'avoir une requête qui, au final, ressemble à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Data Type = String Display Type = List Box Is Required = [ ] List of values = Dynamic Allow multiples values = [X] Data Set = .....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT prenom, nom FROM Utilisateur WHERE nom IN (?) AND prenom IN (?)
Là où ça coince :
Je voudrais que, si les paramètres ne sont pas renseignés, aucun filtre ne soit appliqué sur le champ.
Problèmes :
- L'attribut "Default value" des paramètres BIRT ne permet que de sélectionner une seule valeur
- Quand bien même je pourrais sélectionner toute ma table, ce n'est pas une solution très propre, et je crois que les requêtes SQL ont une taille maximale autorisée.
=> Est-ce que vous avez déjà eu ce genre de problème et trouvé une solution pour y remédier ?
=> Est-ce que la mise sous condition d'une branche complète de requête SQL est possible avec birt ?
Dans mon cas ça donnerait un espèce de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT prenom, nom FROM Utilisateur WHERE 1=1 AND nom IN (?) -- seulement si le paramètre pNom est renseigné AND prenom IN (?) -- seulement si le paramètre pPrenom est renseigné
Par avance, merci de votre aide
Partager