Eftersom det är en omfattande uppdatering så noteras förändringarna i detta dokument
Rapporter
Rapporterna som vi gjorde i våras har fått gå till papperskorgen. I och med införande av filter så kan inte SQL användas utan istället så är datakällan Weave data-definition “skfab_view_damages” som användes.
När den ansluts i BIRT utan relation till dataslag så innehåller den alla poster som är tillgängliga för användaren. Effekten av filter finns med här så rapporterna får korrekt filtrerad data.
Fyra rapporter för statistik är klara för test
Utveckling över tid: med attributen kategori. typ. område, plats, organisation och verksamhet
Utveckling över tid gemensam: med attributen gemensamma kategori, typ, organisation, verksamhet och Regso-områden
Jämförelse mellan två perioder: Samma attribut som för punkt 1
Jämförelse mellan två perioder gemensam: Samma attribut som för punkt 2
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
Korrekta jämförbara värden för datum ingående parameterar “från period 1 …”
//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
//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
//Period row["period_1"] +row["period_2"]
damage_date_trunc gör om damage_date till datum så det kan jämföras
//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