Avanserte periodeformler
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.
- Klikk grupperingen for å komme inn i ekspansjonen.
- Gjør et oppslag ved å klikke forstørrelsesglasset.
- Inne i oppslagsvinduet kan du se hva parameteren heter (markert blått). Alt du må gjøre da, er å kopiere teksten innenfor ’ 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.
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)}' |
Current month | '{PeriodCalc.CurrentPeriod}' |
Rolling from X to Y | '{PeriodCalc.GetPeriod(Parameter).Add(X).Extend(Y)}' |
^1^Begrepet 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 DateParameter^2^ 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.
0 | 1 |
---|---|
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}' |
'{#tw-target-text .tw-data-text .tw-text-large .tw-ta data-placeholder="Translation" dir="ltr"}'
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}'
^2^Begrepet 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'