Ah je n'avais pas compris que tu souhaitais mettre les 12 valeurs en colonne. Dans ce cas il vaut mieux créer une fonction qui fait le gros du boulot, et l'invoquer dans chacun des data (des colonnes calculées j'imagine?)
La fonction ressemblerait à quelquechose comme ça:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| function getDays(d1,d2,m){
var M1=BirtDateTime.month(d1),
M2=BirtDateTime.month(d2),
Y1=BirtDateTime.year(d1);
if (m<M1 || m>M2){
return 0;
}else if(m>M1 && m<M2){
return BirtDateTime.day(new Date(Y1,m-1,0));
}else if(m==M1 && m==M2){
return BirtDateTime.diffDay(d1,d2);
}else if(m==M1){
return BirtDateTime.day(new Date(Y1,m-1,0))- BirtDateTime.day(d1);
}else if(m==M2){
return BirtDateTime.day(d2);
}
} |
On peut coller cette fonction dans le script "initialize" du rapport. Par exemple pour obtenir le nombre de jours pour avril on aurait, en supposant que les 2 dates en question sont des paramètres de rapport:
getDays(params["d1"].value,params["d2"].value,4);
Partager