Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Problemställningen nu när inte SQL kan användas är att hämta ut rätt mängd data baserat på rapport-parametrarna. Därför måste BIRT dataset fixas med att addera beräknande kolumner

Kolumner som beräknas för dataset two_periods

From_date_1, To_date_1, From_date_2, To_date_2

...

Code Block
languagejs
//From_date_1
var dt =params["from_period_1"].value.toString().split('-');
var y = new Number(dt[0]);
var m = new Number(dt[1])-1;
var d = new Number(dt[2]);
BirtDateTime.date(y,m,d);

Period_1, period_2, Period_1_cost, period_2_cost, period och damage_date_trunc

För att veta vilka poster som ska vara med i period_1 repetitive period_2 så får kolumnen värdet 1 om den är med och värdet 0 om den inte är med är värdet 0. Summan av kolumnen är därmed antal poster. På samma vis sätt kostnad för för period_1_cost och period_2_cost när posten är inom perioden

Code Block
languagejs
//Period_1
if ( row["damage_date_trunc"] >= row["from_date_1"]  && row["damage_date_trunc"] <= row["to_date_1"] )
{
1
}
else
{
0
} 

Period används som hjälp för att filtrera

Code Block
languagejs
//Period
row["period_1"] +row["period_2"]

damage_date_trunc gör om damage_date till datum så det kan jämföras

Code Block
languagejs
//damage_date_trunc
var dt = row["damage_date"];
var y = dt.getFullYear();
var m = dt.getMonth();
var d = dt.getDate();
new Date(y,m,d);

Filter

För att minska ner dataset till bara relevanta poster så sätts filter baserat på kolumnen period