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 :

[Birt 4.3.1] Multi value sur Cascade parameters


Sujet :

BIRT

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Points : 71
    Points
    71
    Par défaut [Birt 4.3.1] Multi value sur Cascade parameters
    Bonjour,
    Je coince sur un besoin.

    J'ai 3 paramètres en cascade : (Pays,Départements,Villes)

    Le user doit pouvoir choisir plusieurs pays, si c'est le cas il doit voir les départements des pays sélectionnés , et ainsi de suite.

    Donc du multiple values sur plusieurs niveaux.

    -Sélection de valeurs multiples sur un niveau c'est OK, ca fonctionne.

    Comment configurer le dataset de niveau 2 pour que le listing de valeurs se rafraichisse correctement en fonction DES valeurs choisies en level 1?

    J'ai fait des recherches sur le net mais rien qui fonctionne

    Merci d'avance .

  2. #2
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Montre nous un bou de code en pourra pu être t'aidé ou du moins émettre des suggestion.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Points : 71
    Points
    71
    Par défaut
    Bah écoute, j'imagine ne pas être le 1er à avoir eu ce problème.Peut-être ne suis-je pas assez précis.

    Je n'ai pas de fichier sous la maina lors je vais déjà poser une première question pour éclaircir:
    - Est-ce possible d'avoir 2 paramètres multivalués en cascade, et donc que les valeurs affichées dans le second niveau dépendent de la OU DES valeurs choisies dans le 1er.
    Exemple de paramètres en cascade:
    -Pays
    --Villes


    Choix :
    -France
    --Paris,Lyon,...

    OU
    -Belgique,France
    --Bruxelles,Paris,Lyon
    (celui qui me pose problème)

    Ce que j'ai fait :
    2 params en cascade
    2 dataset(pays,ville)

    Dans le dataset ville j'ai tenté :
    -Paramètre : ? dans la query ==> Le multivalué ne passe pas
    -Filtre : pays IN param[pays] ==>Passe pas
    -Script before open : En rajoutant la clause WHERE pays IN(param[pays]) dans le script ==>Passe pas

  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 un problème de requête, le IN ne peut pas tout à fait fonctionner comme cela, il faut construire la clause in en incluant les virgules et si besoin les quotes.

    Donc en partant du principe que le type du paramètre pays est "String", et qu'il s'agit d'un paramètre multivalue (et donc un tableau dans les scripts BIRT), on peut utiliser ce type d'expression dans le beforeOpen:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "WHERE pays IN('"+param[pays].value.join("','")+"')";
    Un exemple de rapport dans le même genre ici.

    Par contre pourrais tu stp préciser comment tu es parvenu à activer l'option "Allow multiple values" pour le paramètre pays? Car sur mes essais l'option reste grisée dans le designer Eclipse, je ne peux la cocher que sur le dernier niveau de la cascade.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par donino Voir le message
    Par contre pourrais tu stp préciser comment tu es parvenu à activer l'option "Allow multiple values" pour le paramètre pays? Car sur mes essais l'option reste grisée dans le designer Eclipse, je ne peux la cocher que sur le dernier niveau de la cascade.
    Clic sur le paramètre ==>Advanced ==>Scalar parameter type
    pour activer le multi valued sur tous les niveaux

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par donino Voir le message
    Un exemple de rapport dans le même genre ici.
    Cet exemple est exactement mon problème, j'étais déjà tombé dessus en cherchant avant de poster.
    Cela ne fonctionne pas. Chez toi cela fonctionne ?
    Il faut prendre 2 pays pour tester
    France me retourne 4 ,
    USA me retourne 1 2 3,


    France et USA ne me retournent rien, on dirait que les valeurs ne sont pas rafraichies...

  7. #7
    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
    Citation Envoyé par vinch999 Voir le message
    Clic sur le paramètre ==>Advanced ==>Scalar parameter type
    pour activer le multi valued sur tous les niveaux
    Ah impeccable merci bien.

    Oui sur mon Eclipse cet exemple fonctionne très bien, comme tu peux le voir dans la capture ci-jointe



    Ainis que le précise l'auteur du rapport, nativement le designer ne supporte pas cette fonctionnalité il faut remplacer un fichier javascript par celui qu'il a joint. Sans cela dans mon cas il affichait seulement les villes du dernier pays choisi. Aprés remplacement du fichier JS, bien penser à rafraichir le cache du navigateur utilisé par le WebViewer pour qu'il soit pris en compte.
    Images attachées Images attachées  

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par donino Voir le message
    Ah impeccable merci bien.

    Oui sur mon Eclipse cet exemple fonctionne très bien, comme tu peux le voir dans la capture ci-jointe



    Ainis que le précise l'auteur du rapport, nativement le designer ne supporte pas cette fonctionnalité il faut remplacer un fichier javascript par celui qu'il a joint. Sans cela dans mon cas il affichait seulement les villes du dernier pays choisi. Aprés remplacement du fichier JS, bien penser à rafraichir le cache du navigateur utilisé par le WebViewer pour qu'il soit pris en compte.
    En effet j'avais oublié de reprendre le fichier JS, mais même en mettant ce fichier à la place de l'original et en clearant le cache du navigateur web , cela ne passe pas , bizarre ...

  9. #9
    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
    Citation Envoyé par vinch999 Voir le message
    même en mettant ce fichier à la place de l'original et en clearant le cache du navigateur web , cela ne passe pas , bizarre ...
    Je n'ai pourtant fait aucune modif dans le rapport, et suis aussi sous 4.3.1.
    J'avais redémarré Eclipse entre temps, peut être que ça a joué...

    En revanche ça fonctionne de mon coté avec Chrome, Firefox, opera, Safari etc. mais apparemment beaucoup moins bien sous Internet Explorer ainsi que sous l'onglet "Preview" d'Eclipse. Il doit y avoir une petite erreur dans le fichier javascript

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Avez vous réussi à le faire fonctionner sous IE ?

    EDIT : je l'ai testé sous tous les navigateurs intallés sur le poste, et nickel.... sauf que les 9/10ème de mes utilisateurs sont sous IE (7 ou 9) et que rien à faire.... ça ne parche pas sous IE.....
    J'ai repris le script, mais toujours pas mieux....

    Si quelqu'un a réussi, je suis preneur.

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Bon, trouvé en tout cas, ça marche sous IE 9

    Ligne 1037 du js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    	__neh_change_cascade_select : function( event )
    	{
    		if ( this.__cancelOnChange )
    		{
    			/**
    			 * Cancel event because of keyboard selection.
    			 * Event will be fired later when the element loses focus (like in Firefox)
    			 */
    			this.__cancelOnChange = false;
    			return;
    		}
    
    		var element = Event.element( event );		
    		this.__currentSelectedIndex = element.selectedIndex;
    		this.__refresh_cascade_select(element);
    	},
    J'ai mis le return en commentaire, et ça passe.

Discussions similaires

  1. [jTable] Multi selection sur jtable
    Par doudine dans le forum Composants
    Réponses: 5
    Dernier message: 15/03/2006, 15h00
  2. [VB6]Tri multi-colonnes sur tableau de structure
    Par ELGUEVEL dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/02/2006, 08h02
  3. [MySQL] Connexion multi-database sur le même serveur
    Par brazza dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/11/2005, 11h34
  4. [Upload] Multi upload sur un serveur
    Par krak70 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2005, 12h44
  5. Recherche multi-mots sur une seule colonne
    Par Badiste dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2004, 11h24

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