firstworkdate — funkcja skryptu i funkcja wykresu
Funkcja firstworkdate zwraca najpóźniejszą datę rozpoczęcia, gdy możliwe jest uzyskanie parametru no_of_workdays (poniedziałek–piątek) z końcem nie później niż w dniu określonym przez parametr end_date oraz z uwzględnieniem wszelkich opcjonalnie wyszczególnionych dni wolnych. Parametry end_date i holiday powinny być poprawnymi datami lub znacznikami czasu.
Składnia:
firstworkdate(end_date, no_of_workdays [, holiday] )
Typ zwracanych danych: liczba całkowita
Argumenty:
Argument | Opis |
---|---|
end_date | Znacznik czasu daty końcowej do oceny. |
no_of_workdays | Liczba dni roboczych do uzyskania. |
holiday |
Okresy wolne od pracy wyłączane z dni roboczych. Okres wolny od pracy podaje się jako datę początkową i datę końcową rozdzielone przecinkiem. Przykład: '25/12/2013', '26/12/2013' Można wyłączyć wiele okresów wolnych od pracy, rozdzielając je przecinkami. Przykład: '25/12/2013', '26/12/2013', '31/12/2013', '01/01/2014' |
Przykłady i wyniki:
W tych przykładach należy użyć formatu daty DD/MM/RRRR. Format daty jest określony w instrukcji SET DateFormat u góry skryptu ładowania. Zmień format w przykładach odpowiednio do swoich potrzeb.
Przykład 1:
firstworkdate ('29/12/2014', 9)
Zwraca wartość 17/12/2014.
Przykład 2:
firstworkdate ('29/12/2014', 9, '25/12/2014', '26/12/2014')
Zwraca 15/12/2014, ponieważ brany jest pod uwagę dwudniowy okres urlopowy.
Przykład 3:
Dodaj przykładowy skrypt do dokumentu i uruchom go. Następnie dodaj do arkusza w swoim dokumencie co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.
ProjectTable:
LOAD *, recno() as InvID INLINE [
EndDate
28/03/2015
10/12/2015
5/2/2016
31/3/2016
19/5/2016
15/9/2016
] ;
NrDays:
Load *,
FirstWorkDate(EndDate,120) As StartDate
Resident ProjectTable;
Drop table ProjectTable;
Tabela docelowa przedstawia zwrócone wartości funkcjiFirstWorkDate dla każdego z rekordów w tabeli.
InvID | EndDate | StartDate |
---|---|---|
1 | 28/03/2015 | 13/10/2014 |
2 | 10/12/2015 | 26/06/2015 |
3 | 5/2/2016 | 24/08/2015 |
4 | 31/3/2016 | 16/10/2015 |
5 | 19/5/2016 | 04/12/2015 |
6 | 15/9/2016 | 01/04/2016 |