monthsend — funkcja skryptu i funkcja wykresu
Ta funkcja zwraca wartość odpowiadającą znacznikowi czasu ostatniej milisekundy okresu miesiąca, dwóch miesięcy, kwartału, jednej trzeciej roku lub półrocza, który zawiera datę bazową. Można także wyszukać znacznik czasu dla okresu poprzedniego lub następnego.
Składnia:
MonthsEnd(n_months, date[, period_no [, first_month_of_year]])
Typ zwracanych danych: wartość podwójna
Argumenty:
W tych przykładach używany jest format daty DD/MM/YYYY. Format daty jest określony w instrukcji SET DateFormat u góry skryptu ładowania danych. Format zastosowany w przykładach można zmienić, aby dostosować go do konkretnych potrzeb.
Przykład | Wynik |
---|---|
monthsend(4, '19/07/2013') | Zwraca wartość 31/08/2013. |
monthsend(4, '19/10/2013', -1) | Zwraca wartość 31/08/2013. |
monthsend(4, '19/10/2013', 0, 2) | Zwraca wartość 31/01/2014. Ponieważ początkiem roku staje się miesiąc 2. |
Przykład:
Dodaj skrypt przykładowy do aplikacji i uruchom ją. Aby zobaczyć wynik, dodaj do arkusza w swojej aplikacji pola wyszczególnione w kolumnie wyników.
W tym przykładzie wyszukiwany jest koniec ostatniego dnia dwumiesięcznego okresu dla każdej daty faktury, przesuniętego do przodu o jeden okres dwóch miesięcy.
TempTable:
LOAD RecNo() as InvID, * Inline [
InvDate
28/03/2012
10/12/2012
5/2/2013
31/3/2013
19/5/2013
15/9/2013
11/12/2013
2/3/2014
14/5/2014
13/6/2014
7/7/2014
4/8/2014
];
InvoiceData:
LOAD *,
MonthsEnd(2, InvDate, 1) AS BiMthsEnd
Resident TempTable;
Drop table TempTable;
Otrzymana tabela zawiera pierwotne daty i kolumnę ze zwracaną wartością funkcji MonthsEnd().
InvDate | BiMthsEnd |
---|---|
28/03/2012 | 30/06/2012 |
10/12/2012 | 28/02/2013 |
5/2/2013 | 30/04/2013 |
31/3/2013 | 30/04/2013 |
19/5/2013 | 31/08/2013 |
15/9/2013 | 31/12/2013 |
11/12/2013 | 28/02/2014 |
2/3/2014 | 30/06/2014 |
14/5/2014 | 31/08/2014 |
13/6/2014 | 31/08/2014 |
7/7/2014 | 31/10/2014 |
4/8/2014 | 31/10/2014 |