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 :

Sélectionner la Datasource avant les autres paramètres qui en dépendent


Sujet :

BIRT

  1. #1
    Candidat au Club
    Homme Profil pro
    -
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Sélectionner la Datasource avant les autres paramètres qui en dépendent
    Bonjour à tous,

    Je suis en train de créer un rapport Birt (.rptdesign) et j'aimerais que l'utilisateur ait la possibilité de choisir la datasource dans laquelle les données affichées vont être cherchées. Concrètement j'ai plusieurs databases qui ont exactement la même structure et je souhaite éviter la duplication des rapports.

    Jusque là pas de problèmes, il suffit de créer un paramètre puis dans l'onglet "Properties Binding" de ma datasource, rentrer dans le champ "JDBC driver URL" une expression qui dépend de ce paramètre.

    Le problème est que j'ai d'autre paramètres que l'utilisateur peut sélectionner et que ces paramètres sont à choisir parmi des listes dynamiques qui vont dépendre de la datasource choisie!

    J'ai donc un problème de priorité disons. Il faudrait que l'utilisateur puisse choisir une datasource puis que les valeurs possibles des autres paramètres soient calculées afin qu'il fasse son choix.

    Un exemple étant toujours plus parlant, voici à quoi devrait ressembler la fenêtre de paramètres:

    Datasource: Nourritures / Alcools
    Type de produits: Viande / Légumes / Pates si Nourriture est sélectionné plus haut
    Apero / Digestifs / Vins si Alcools est sélectionné plus haut

    Merci d'avance!

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Je ne pense pas que cela puisse fonctionner ainsi, car en dehors du cas particulier des paramètres cascade il n'est pas possible d'introduire des dépendances entre des paramètres.

    En d'autres termes lorsque un dataset s'execute pour produire la liste de sélection d'un paramètre, il ne peut pas avoir accès aux valeurs courantes des autres paramètres. Si on tente quand même de les utiliser BIRT utilise leur valeur par défaut, donc dans ton cas le datasource par défaut.

    Une solution serait de permettre la sélection du datasource de manière extérieure à BIRT et de le stocker dans la session utilisateur. Puis dans le "Property binding" du datasource utiliser l'attribut de session plutôt qu'un paramètre.

    On peut récupérer un attribut de session dans un rapport BIRT avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reportContext.getHttpServletRequest().getSession().getAttribute("myDatasource")
    Plus d'infos sur la session ici

  3. #3
    Candidat au Club
    Homme Profil pro
    -
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour cette réponse, c'est dommage qu'il n'y ait pas la possibilité de mettre un script au moment ou un paramètre est sélectionné et qu'il faille attendre la validation pour cela.

    Pour le moment, je souhaite continuer à utiliser Birt en "stand alone" et ne pas l'intégrer dans une appli. Plus précisément, j'ai une page web toute bête avec des liens vers mes différents rapports Birt.

    La solution que j'ai adopté, c'est de proposer deux liens vers le même rapport mais avec le paramètre "datasource" dans l'url.

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    C'est une bonne idée, mais même comme ça j'aurais cru que ça ne fonctionnait pas: en passant le datasource en URL, lorsque tu ouvres la fenêtre des paramètres ceux qui sont de type combobox ou listbox dynamiques affichent des listes qui correspondent bien à ce datasource? J'ai un doute! Mais si tu confirmes je ferais un petit prototype de mon coté car cela m'intéresse!

  5. #5
    Candidat au Club
    Homme Profil pro
    -
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je confirme que cela marche bien avec les listbox dynamiques.
    J'ai "jdbc:postgresql://localhost:5432/"+params["datasource"].value dans le champ JDBC Driver URL de l'onglet Property Binding et j'ai rajouté "&datasource=nom_de_la_database" à la fin de l'url.

Discussions similaires

  1. Les pirates ont-ils compris avant les autres l'avantage du Cloud?
    Par Hinault Romaric dans le forum Actualités
    Réponses: 9
    Dernier message: 24/11/2010, 14h34
  2. déclencher attachEvent avant les autres évènements
    Par renaudjuif dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/01/2008, 15h40
  3. Lancer un programme avant les autres
    Par windob dans le forum Windows XP
    Réponses: 6
    Dernier message: 04/08/2007, 08h55
  4. Sélectionner un champ et tous les autres s'affichent
    Par 512banque dans le forum Access
    Réponses: 20
    Dernier message: 05/07/2006, 10h06
  5. Checkbox qui coche toutes les autres!
    Par myomyo dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 30/05/2006, 13h59

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