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.
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.
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
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.)
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)}
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.
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}'
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}'
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([])} |
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'