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 :

Date selon le mois


Sujet :

BIRT

  1. #1
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut Date selon le mois
    Bonjour à tous,

    je débute en Birt et ce que je veux faire c'est sélectionnée soit ce mois ci au le mois dernier.

    Pour ce faire voilà ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from user where MONTH(start) = ?
    Mais je ne sais pas comment faire au niveau Reporty Parameters pour avoir le mois courant ou le mois dernier.

    Je vous remercie 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 pense qu'une solution est de créer dans le rapport un paramètre de type "Integer" radio button et y créer 2 options: "Mois courant" avec valeur 0 et "Mois précédent" avec valeur 1.

    Pour faire les choses proprement, on peut ensuite créer 2 variables de rapport "moiscourant" et "moisprec" avec les expressions javascript qui vont bien comme valeur par défaut. Par exemple à l'heure d'aujourd'hui, l'expression suivante retourne 201302:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BirtDateTime.year(BirtDateTime.today())*100+BirtDateTime.month(BirtDateTime.today())
    Je te laisse chercher pour le mois précédent, ce n'est pas beaucoup plus difficile BIRT propose toutes les fonctions nécessaires.

    Une fois ces 2 variables testées (il suffit de les glisser vers le corps du rapport et le générer pour voir si elles sont justes), on peut modifier la valeur du paramètre en fonction du choix de l'utilisateur, dans le script "beforeOpen" du dataset. En se servant de la palette pour inclure les paramètres et les variables dans le script, on obtient quelquechose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (params["mois"].value==0){
       params["mois"].value=vars["moiscourant"];
    }else if (params["mois"].value==1){
      params["mois"].value=vars["moisprec"];
    }

  3. #3
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par donino Voir le message
    Je pense qu'une solution est de créer dans le rapport un paramètre de type "Integer" radio button et y créer 2 options: "Mois courant" avec valeur 0 et "Mois précédent" avec valeur 1.

    Pour faire les choses proprement, on peut ensuite créer 2 variables de rapport "moiscourant" et "moisprec" avec les expressions javascript qui vont bien comme valeur par défaut. Par exemple à l'heure d'aujourd'hui, l'expression suivante retourne 201302:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BirtDateTime.year(BirtDateTime.today())*100+BirtDateTime.month(BirtDateTime.today())
    Je te laisse chercher pour le mois précédent, ce n'est pas beaucoup plus difficile BIRT propose toutes les fonctions nécessaires.

    Une fois ces 2 variables testées (il suffit de les glisser vers le corps du rapport et le générer pour voir si elles sont justes), on peut modifier la valeur du paramètre en fonction du choix de l'utilisateur, dans le script "beforeOpen" du dataset. En se servant de la palette pour inclure les paramètres et les variables dans le script, on obtient quelquechose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (params["mois"].value==0){
       params["mois"].value=vars["moiscourant"];
    }else if (params["mois"].value==1){
      params["mois"].value=vars["moisprec"];
    }
    Ok je vais voir sa

  4. #4
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par stade13 Voir le message
    Ok je vais voir sa
    J'ai enfin trouver un peux de temps pour revoir le problème, j'ai fait comme tu m'avais dit.

    j'ai crée les deux variables vars["moisCourant"]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BirtDateTime.month(BirtDateTime.today())
    et
    vars["moisPrecedent"]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BirtDateTime.month(BirtDateTime.today())-1
    Pour moi j'ai besoin juste de récupérer les mois comme integer

    J'ai crée aussi mon paramètre avec comme value 1 et 0 et dans mon script dataset beforeOpen voilà ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(params["Choisir le mois"].value == 0){
    	params["Choisir le mois"].value = vars["moisCourant"];
    }
    else if (params["Choisir le mois"].value == 1){
    	params["Choisir le mois"].value = vars["moisPrecedent"];
    }
    Mais il ne prend pas en considération les affectations

  5. #5
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par stade13 Voir le message
    J'ai enfin trouver un peux de temps pour revoir le problème, j'ai fait comme tu m'avais dit.

    j'ai crée les deux variables vars["moisCourant"]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BirtDateTime.month(BirtDateTime.today())
    et
    vars["moisPrecedent"]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BirtDateTime.month(BirtDateTime.today())-1
    Pour moi j'ai besoin juste de récupérer les mois comme integer

    J'ai crée aussi mon paramètre avec comme value 1 et 0 et dans mon script dataset beforeOpen voilà ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(params["Choisir le mois"].value == 0){
    	params["Choisir le mois"].value = vars["moisCourant"];
    }
    else if (params["Choisir le mois"].value == 1){
    	params["Choisir le mois"].value = vars["moisPrecedent"];
    }
    Mais il ne prend pas en considération les affectations
    Personne

  6. #6
    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
    La formule du mois précédent ne m'a pas l'air bonne, pour janvier elle retourne 0
    J'ai refait un essai et l'affectation d'un paramètre dans le script beforeOpen fonctionne apparemment sans problème. Le dataset en question est utilisé de quelle manière dans le rapport? Si c'est pour produire une liste de sélection dynamique pour un autre paramètre alors oui c'est encore autre chose, sinon c'est que tu as fait une erreur quelque part. Pense bien à afficher les 2 variables dans le rapport pour s'assurer qu'elles sont correctement calculées, affiche aussi la valeur du paramètre

  7. #7
    Membre régulier
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 305
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par donino Voir le message
    La formule du mois précédent ne m'a pas l'air bonne, pour janvier elle retourne 0
    J'ai refait un essai et l'affectation d'un paramètre dans le script beforeOpen fonctionne apparemment sans problème. Le dataset en question est utilisé de quelle manière dans le rapport? Si c'est pour produire une liste de sélection dynamique pour un autre paramètre alors oui c'est encore autre chose, sinon c'est que tu as fait une erreur quelque part. Pense bien à afficher les 2 variables dans le rapport pour s'assurer qu'elles sont correctement calculées, affiche aussi la valeur du paramètre
    J'affiche le résultat et sa me donne les bonnes valeurs. Oui mes datas sets que je leurs passe le paramètre sont des sous-rapports, peu être c'est à cause de ça que ça ne marche pas ?!

Discussions similaires

  1. [DATE] Afficher résultat selon le mois selectionner
    Par mickado dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/07/2007, 18h47
  2. VBA regroupement date selon choix option (par jour, par mois)
    Par IndyJones dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/12/2006, 21h06
  3. [Dates] affichage différent selon le mois en cours
    Par itri2005 dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 18h05
  4. [Dates] affichafe d'evenements selon le mois choisi
    Par Pepito dans le forum Langage
    Réponses: 3
    Dernier message: 07/03/2006, 03h47
  5. Problème de reqûete sur la date, année et mois en cours
    Par Jean-Marc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/02/2004, 17h36

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