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:
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:
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"];
} |
Partager