I Report Designer har du mulighet til å bruke forhåndsdefinerte periodefunksjoner i rapportbyggingen. I tilfeller hvor disse funksjonene ikke er tilstrekkelige, kan du ta i bruk avanserte periodeformler for å bestemme år, periode(r) eller dag(er) i rapporten. Denne veiledningen forklarer hvordan du kan bruke slike formler i Report Designer.

 

Avanserte periodeformler

Når du jobber med avanserte periodeformler, må du ofte forholde deg til to variabler i hver formel.

Eksempel:

{PeriodCalc.GetPeriod(Parameter).AddYears(X).WholeYear}

Parameter er den periodeparameteren som er skapt i rapporten, og X er den variabelen som bestemmer antall år, måneder/perioder og dager som formelen skal legge til eller trekke fra.
(I noen tilfeller vil det være en tredje variabel, vist med Y i eksempelet med rullerende intervall lenger bak i dokumentet.)

Figur 1 viser hvor du finner parameteren til perioden.

  1. Klikk grupperingen for å komme inn i ekspansjonen.
  2. Gjør et oppslag ved å klikke forstørrelsesglasset.
  3. Inne i oppslagsvinduet kan du se hva parameteren heter (markert blått). Alt du må gjøre da, er å kopiere teksten innenfor {} (ikke inkluder @) og lime den inn i stedet for teksten Parameter i formlene som er beskrevet i dette dokumentet.

 

MERK: I noen tilfeller vil det være en tredje variabel, representert ved Y i eksemplet med et rullende intervall lenger ned i dette dokumentet.

MERK: Avanserte periodefunksjoner er beregninger basert på parameterverdien som velges når rapporten kjøres. På grunn av dette kan brukere bare velge en enkelt periode å kjøre rapporten for når avanserte og forhåndsdefinerte periodefunksjoner brukes.

 

Figur 1 Finne og erstatte parameter for perioden

 

Periodeformler basert på en måneds-id (f.eks. Periode=202201 for januar 2022)

Oversikten nedenfor viser ulike periodeformler der du kan erstatte (Parameter) med (Regnskapsperioder)1 og erstatte variabelen X med det antall år/måneder du ønsker legge til
eller trekke fra. Formelelementet Extend bestemmer hvor mange måneder som skal legges til i et intervall.

Period function Period formula
Whole year in year X
{PeriodCalc.GetPeriod(Parameter).AddYears(X).WholeYear}
First period in year X
{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearStart}
Last period in year X
{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearEnd}
Q1 of year X
{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearStart.Extend(2)}
Q2-Q4 in year X
{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearStart.SetIndex(X).Extend(2)}
Remaining periods in year X
{PeriodCalc.GetPeriod(Parameter).AddYears(X).Add(1)}:{PeriodCalc.GetPeriod(Parameter).AddYears(X).YearEnd}
This period year X
{PeriodCalc.GetPeriod(Parameter).AddYears(X)}
Rolling from X to Y
{PeriodCalc.GetPeriod(Parameter).Add(X).Extend(Y)}

1Begrepet som brukes varierer mellom ERP-systemer. Se etter periodeparameteren, for eksempel perioder,  posteringsperioder, regnskapsperioder osv. i Oppsettsredigering. (Se figur 1 ovenfor for hvor du kan finne disse.)

 

Eksempel på formel for rullende fra X til Y

Du vil vise 2 års rullende bakover. Da må du først trekke fra 1 mnd og utvide (Extend) med 23 mnd.

Her vil X få verdien -1 og Y får verdien -23.

Formelen vil slik ut:

{PeriodCalc.GetPeriod(Regnskapsperioder).Add(-1).Extend(-23)}

 

Periodeformler basert på dato-id (formatet dd.mm.yyyy – f.eks. 01.01.2022)

Listen nedenfor viser ulike periodeformler hvor du kan erstatte variabelen DateParameter2 med et antall år/måneder/dager du ønsker å legge til eller trekke ifra. Du finner parameteren på samme måte som i eksempelet over. Den eneste forskjellen er at du har en periodedimensjon basert på dagnivå, f.eks. bilagsdato.

 

Datoparameter Periodeformel
År
'{DateParameter.AddYears(X).SqlDate}'
Måned
'{DateParameter.AddMonths(X).SqlDate}'
Dager
'{DateParameter.AddDays(X).SqlDate}'
Dag Y, i år X
'{DateParameter.AddYears(X).AddDays(Y).SqlDate}'
MERK: Når periodeformelen er basert på en dato, i motsetning til en periode (måned), må du inkludere ' før og etter formelen:
'{DateParameter.AddYears(X).SqlDate}'

2Begrepet som brukes varierer mellom ERP-systemer. Se etter datoparametere som forfallsdato, transaksjonsdato osv.

 

Eksempel på formel for dag Y i år X

Du ønsker i dette eksemplet å finne gårsdagen i fjor. Dette kan du gjøre ved å erstatte med -1 Y med -1. Formelen vil da trekke fra 1 år minus 1 dag for den datoen du setter når du kjører
rapporten.

'{DateParameter.AddYears(-1).AddDays(-1).SqlDate}'

 

Eksempel på formel med forfallsdato

I dette eksemplet ønsker du å vise fakturaer som forfaller i løpet av de neste 30 dagene, basert på en datoparameter, @DueDate. Du kan gjøre dette ved å bruke denne formelen:

'{@DueDate.AddDays(30).SqlDate}'

 

Oversikt over innebygde periodefunksjoner i Report Designer

 

Name Display Name Expression
ALL2Yago All Year 2 Years Ago
{PeriodCalc.GetPeriod([]).AddYears(-2).WholeYear}
ALL2Yfor All Year 2 Years Forward
{PeriodCalc.GetPeriod([]).AddYears(2).WholeYear}
All3YAgo All Year 3 Years Ago
{PeriodCalc.GetPeriod([]).AddYears(-3).WholeYear}
All3YFor All Year 3 Years Forward
{PeriodCalc.GetPeriod([]).AddYears(3).WholeYear}
AllTimeTD All Time to Date
{PeriodCalc.GetPeriod([0])}:{PeriodCalc.GetPeriod([])}
FPLY First Period Last Year
{PeriodCalc.GetPeriod([]).AddYears(-1).YearStart}
FPNY First Period Next Year
{PeriodCalc.GetPeriod([]).AddYears(1).YearStart}
FPTY First Period This Year
{PeriodCalc.GetPeriod([]).YearStart}
LPLY Last Period Last Year
{PeriodCalc.GetPeriod([]).AddYears(-1).YearEnd}
LPNY Last Period Next Year
{PeriodCalc.GetPeriod([]).AddYears(1).YearEnd}
LPTY Last Period This Year
{PeriodCalc.GetPeriod([]).YearEnd}
LY Last Year (all)
{PeriodCalc.GetPeriod([]).AddYears(-1).WholeYear}
LYTD Last year to date
{PeriodCalc.LastYearToDate([])}
NY Next Year (all)
{PeriodCalc.GetPeriod([]).AddYears(1).WholeYear}
Q1LY Q1 Last Year
{PeriodCalc.GetPeriod([]).AddYears(-1).YearStart.Extend(2)}
Q1TY Q1 This Year
{PeriodCalc.GetPeriod([]).YearStart.Extend(2)}
Q2LY Q2 Last Year
{PeriodCalc.GetPeriod([]).AddYears(-1).SetIndex(4).Extend(2)}
Q2TY Q2 This Year
{PeriodCalc.GetPeriod([]).SetIndex(4).Extend(2)}
Q3LY Q3 Last Year
{PeriodCalc.GetPeriod([]).AddYears(-1).SetIndex(7).Extend(2)}
Q3TY Q3 This Year
{PeriodCalc.GetPeriod([]).SetIndex(7).Extend(2)}
Q4LY Q4 Last Year
{PeriodCalc.GetPeriod([]).AddYears(-1).SetIndex(10)}: {PeriodCalc.GetPeriod([]).AddYears(-1).YearEnd}
Q4TY Q4 This Year
{PeriodCalc.GetPeriod([]).SetIndex(10)}:{PeriodCalc.GetPeriod([]).YearEnd}
RB12M 12 Month Rolling (-1 -> -12)
{PeriodCalc.GetPeriod([]).Add(-1).Extend(-11)}
RBC12M 12Month Rolling Current (0 > -12)
{PeriodCalc.GetPeriod([]).Add(0).Extend(-11)}
RF12M 12 Months Rolling (+1 -> +12)
{PeriodCalc.GetPeriod([]).Add(1).Extend(11)}
RF3M1 3 Months Rolling (+1 -> +3)
{PeriodCalc.GetPeriod([]).Add(1).Extend(2)}
RF3M2 3 Months Rolling (+4 -> +6)
{PeriodCalc.GetPeriod([]).Add(4).Extend(2)}
RF3M3 3 Months Rolling (+7 -> +9)
{PeriodCalc.GetPeriod([]).Add(7).Extend(2)}
RF3M4 3 Months Rolling (+10 -> +12)
{PeriodCalc.GetPeriod([]).Add(10).Extend(2)}
RFC12M 12 Months Rolling Current (0 > 12)
{PeriodCalc.GetPeriod([]).Add(0).Extend(11)}
RPLY Remaining Periods Last Year
{PeriodCalc.GetPeriod([]).AddYears(-1).Add(1)}: {PeriodCalc.GetPeriod([]).AddYears(-1).YearEnd}
RPTY Remaining Periods This Year
{PeriodCalc.GetPeriod([]).Add(1)}:{PeriodCalc.GetPeriod([]).YearEnd}
TPLY This Period Last Year
{PeriodCalc.GetPeriod([]).AddYears(-1)}
TPNY This Period Next Year
{PeriodCalc.GetPeriod([]).AddYears(1)}
TPTY This Period This Year
{PeriodCalc.GetPeriod([])}
TYALL This Year (all)
{PeriodCalc.GetPeriod([]).WholeYear
YTD Year to Date
{PeriodCalc.FiscYearToDate([])}

 

 

Ekstra periodesyntaks

Følgende syntaks kan brukes i periodefilteret.

DateParameter = navn på periodeparameter


Expression Syntax Example
AddDays(n)
1. {DateParameter.AddDays(30).SqlDate}
2. {DateParameter.YearEnd.AddDays(1).SqlDate}':'2020-12-31' AddMonths(n)

AddYears(n)

'{DateParameter.AddYears(-1).SqlDate}'
WeekStart
'{PeriodCalc.Now.WeekStart.SqlDate}':'{PeriodCalc.Now.SqlDate}'

MonthEnd

'{DateParameter.MonthEnd.SqlDate}'
MonthStart
'{DateParameter.MonthStart.SqlDate}'
YearEnd
'{DateParameter.YearEnd.SqlDate}'

YearStart

'{DateParameter.YearStart.SqlDate}'

 

Funksjonene kan kombineres:

'{DateParameter.YearEnd.AddDays(1).SqlDate}':'2022-12-31'