IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

[2.3.1] Paramètres facultatifs dans une requête [Fait]


Sujet :

BIRT

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 54
    Points : 52
    Points
    52
    Par défaut [2.3.1] Paramètres facultatifs dans une requête
    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 :
    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 voudrais faire un rapport qui liste tous les utilisateurs avec la possibilité de filtrer ces derniers selon le nom et le prénom.

    => Je crée donc deux paramètres facultatifs pour mon rapport. Je leur donne les attributs :
    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 = .....
    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
    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

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Il faut utiliser la partie script du dataset : FAQ

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Paramètre dynamique dans une requête
    Par labib23dz dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/04/2012, 12h03
  2. Paramètre calculé dans une requête
    Par defluc dans le forum SQL
    Réponses: 8
    Dernier message: 08/05/2010, 10h32
  3. Paramètre facultatif dans une méthode
    Par callo dans le forum C#
    Réponses: 4
    Dernier message: 26/06/2008, 17h45
  4. [Requête_VBA_Access] Paramètre ignoré dans une requête
    Par Tari_calaelen dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/07/2007, 16h06
  5. Paramètres facultatifs dans une fonction
    Par eric41 dans le forum Langage
    Réponses: 3
    Dernier message: 19/07/2006, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo