...
För att minska ner dataset till bara relevanta poster så sätts filter baserat på kolumnen period
...
Rapporten
Tabellelementet binds till dataset two_periods. Em grupp skapas efter önskat attribut, t-ex- operation_common. Summering på t.ex period_1_cost per grupp operation_common. Samma för period 2.
Detaljrden behövs inte eller kan göras osynlig.
...
För diagram så grupperas informationen automatiskt
...
Kolumner som beräknas för dataset one_period
För rapporten utveckling över tid så behövs inte period 2 kolumner men ytterligare en kolumn, group, för att gruppera tidsperiod
Code Block | ||
---|---|---|
| ||
//group
function getQuarter(date) {
var month = date.getMonth() + 1;
return Math.ceil(month / 3);
}
function getWeek(d) {
// Copy date so don't modify original
d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
// Set to nearest Thursday: current date + 4 - current day number
// Make Sunday's day number 7
d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7));
// Get first day of year
var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));
// Calculate full weeks to nearest Thursday
var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7);
// Return array of year and week number
return [weekNo];
}
function pad(num, size) {
var s = "000000000" + num;
return s.substr(s.length-size);
}
var dt = row["damage_date"];
//var y = dt.getFullYear();
//var m = dt.getMonth();
//var d = dt.getDate();
//new Date(y,m,d);
//BirtDateTime.date(d.getFullYear(),d.getMonth(),d.getDay());
//Formatter.format(params["from_period_1"].value, 'yyyy-MM-dd')
if (params["groupPeriod"].value == "year") {
dt.getFullYear().toString();
} else if (params["groupPeriod"].value == "month"){
dt.getFullYear() + "-" + pad(dt.getMonth()+1,2);
} else if (params["groupPeriod"].value == "quarter"){
dt.getFullYear() + "-" + pad(getQuarter(dt),2);
} else if (params["groupPeriod"].value == "week"){
dt.getFullYear() + "-" + pad(getWeek(dt),2);
} else if (params["groupPeriod"].value == "date"){
dt.getFullYear() + "-" + pad(dt.getMonth()+1,2) + "-" + pad(dt.getDate(),2);
}else{
dt.getFullYear().toString();
} |