# lastworkdate — funkcja skryptu i funkcja wykresu

Funkcja lastworkdate zwraca najwcześniejszą datę zakończenia, gdy możliwe jest uzyskanie parametru no\_of\_workdays (poniedziałek–piątek) z początkiem w dniu start\_date z uwzględnieniem wszelkich opcjonalnie wyszczególnionych dni wolnych (holiday). Parametry start\_date i holiday powinny być poprawnymi datami lub znacznikami czasu.

Składnia:

lastworkdate(start\_date, no\_of\_workdays {, holiday})

Typ zwracanych danych: integer

Kalendarz pokazujący sposób użycia funkcji `lastworkdate()`

Kalendarz pokazujący sposób użycia funkcji `lastworkdate()`

Kalendarz pokazujący sposób użycia funkcji `lastworkdate()`lastworkdate() ![Diagram pokazujący kalendarz miesiąca.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-diagram1.png)

Ograniczenia

Nie ma metody pozwalającej zmodyfikować funkcję `lastworkdate()` dla regionów lub scenariuszy uwzględniających cokolwiek innego niż tydzień roboczy rozpoczynający się w poniedziałek i kończący się w piątek.

Parametr holiday musi być stałą łańcuchową. Nie może być wyrażeniem.

Kiedy używać

Funkcja `lastworkdate()` jest używana w wyrażeniach, za pomocą których użytkownik chce obliczyć proponowaną datę zakończenia projektu lub zadania na podstawie daty jego rozpoczęcia i wypadających w tym okresie świąt.

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/RRRR. Format daty jest określony w instrukcji `SET DateFormat` w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów.

Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Interfejs Qlik Sense będzie wyświetlany w tym samym języku co używana przeglądarka.

Argumenty

| Argument | Opis |
| --- | --- |
| start\_date | Data rozpoczęcia do oceny. |
| no\_of\_workdays | Liczba dni roboczych do uzyskania. |
| holiday | Okresy wolne od pracy wyłączane z dni roboczych. Dzień wolny jest określany jako data stała w formie ciągu. Można określić większą liczbę dat dni wolnych, rozdzielając je przecinkami.<br><br>Przykład: `  '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' ` |

## Przykład 1 — podstawowy przykład

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lastworkdate.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera:

* Zestaw danych zawierający identyfikatory projektów, daty rozpoczęcia projektów oraz szacowaną wymaganą ilość pracy w dniach. Zestaw danych jest ładowany do tabeli o nazwie `Projects`.

* Ładowanie poprzedzające zawiera funkcję `lastworkdate()` ustawioną jako pole `end_date`, które identyfikuje zaplanowaną datę zakończenia każdego projektu.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort) as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`
* `start_date`
* `effort`
* `end_date`

Tabela wynikowa

| id | start\_date | effort | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 02/10/2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/23/2022 |
| 4 | 06/01/2022 | 12 | 06/16/2022 |
| 5 | 08/10/2022 | 26 | 09/14/2022 |

Ponieważ nie ma zaplanowanych świąt, funkcja dodaje zdefiniowaną liczbę dni roboczych, od poniedziałku do piątku, do daty początkowej i w ten sposób oblicza najwcześniejszy możliwy termin zakończenia.

Poniższy kalendarz pokazuje datę rozpoczęcia i zakończenia dla projektu 3. Dni robocze są zaznaczone na zielono.

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 ![Diagram pokazujący datę rozpoczęcia projektu 17 maja i datę zakończenia pracy 23 maja, co w sumie daje pięć dni roboczych.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example1-diagram.png)

## Przykład 2 – jeden dzień świąteczny

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lastworkdate.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera:

* Zestaw danych zawierający identyfikatory projektów, daty rozpoczęcia projektów oraz szacowaną wymaganą ilość pracy w dniach. Zestaw danych jest ładowany do tabeli o nazwie `Projects`.

* Ładowanie poprzedzające zawiera funkcję `lastworkdate()` ustawioną jako pole `end_date`, które identyfikuje zaplanowaną datę zakończenia każdego projektu.

Dnia 18 maja 2022 jest zaplanowane święto. Funkcja `lastworkdate()` w ładowaniu poprzedzającym uwzględnia to święto w trzecim argumencie, aby określić termin zakończenia każdego projektu.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort, '05/18/2022') as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`
* `start_date`
* `effort`
* `end_date`

Tabela wynikowa

| id | start\_date | effort | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 02/10/2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/24/2022 |
| 4 | 06/01/2022 | 12 | 06/16/2022 |
| 5 | 08/10/2022 | 26 | 09/14/2022 |

Dzień świąteczny został wprowadzony jako trzeci argument do funkcji `lastworkdate()`. W efekcie data zakończenia projektu 3 zostaje przesunięta o jeden dzień do przodu, ponieważ święto zajmuje jeden dzień roboczy przed datą zakończenia.

Poniższy kalendarz pokazuje daty rozpoczęcia i zakończenia projektu 3 oraz to, że święto zmienia datę zakonczenia projektu o jeden dzień.

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem święta 18 maja

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem święta 18 maja

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem święta 18 maja ![Diagram pokazujący datę rozpoczęcia projektu 3 17 maja i datę święta 18 maja](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example2-diagram.png)

## Przykład 3 – kilka dni świątecznych

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lastworkdate.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera:

* Zestaw danych zawierający identyfikatory projektów, daty rozpoczęcia projektów oraz szacowaną wymaganą ilość pracy w dniach. Zestaw danych jest ładowany do tabeli o nazwie `Projects`.

* Ładowanie poprzedzające zawiera funkcję `lastworkdate()` ustawioną jako pole `end_date`, które identyfikuje zaplanowaną datę zakończenia każdego projektu.

Należy uwzględnić cztery dni świąteczne wypadające 19, 20, 21 i 22 maja. Funkcja `lastworkdate()` w ładowaniu poprzedzającym uwzględnia te święta w trzecim argumencie, aby określić termin zakończenia każdego projektu.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 

Projects: 
    Load 
       *, 
       LastWorkDate(start_date,effort, '05/19/2022','05/20/2022','05/21/2022','05/22/2022') as end_date 
       ; 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`
* `start_date`
* `effort`
* `end_date`

Tabela wynikowa

| id | start\_date | effort | end\_date |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 02/10/2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/25/2022 |
| 4 | 06/01/2022 | 12 | 06/16/2022 |
| 5 | 08/10/2022 | 26 | 09/14/2022 |

Cztery dni świąteczne zostają przekazane jako lista argumentów do funkcji `lastworkdate()` po dacie rozpoczęcia i liczbie dni roboczych.

Poniższy kalendarz pokazuje daty rozpoczęcia i zakończenia projektu 3 oraz to, że święta zmieniają datę zakończenia projektu o trzy dni.

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem świąt od 19 do 22 maja

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem świąt od 19 do 22 maja

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem świąt od 19 do 22 maja ![Diagram pokazujący datę rozpoczęcia projektu 3 w dniu 17 maja i ostatni dzień pracy w dniu 25 maja. Cztery dodatkowe dni świąteczne przesuwają datę zakończenia o trzy dni, ponieważ dwa dni świąteczne wypadają w sobotę i niedzielę.](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example3-diagram.png)

## Przykład 4 – jeden dzień świąteczny (wykres)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lastworkdate.htm)

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Używany jest ten sam zestaw danych i scenariusz co w pierwszym przykładzie.

Jednak w tym przykładzie zestaw danych pozostaje bez zmian i jest ładowany do aplikacji. Pole `end_date` jest obliczane jako miara w obiekcie wykresu.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 

Projects: 
Load 
id, 
start_date, 
effort 
Inline  
[	 
id,start_date,effort 
1,01/01/2022,14 
2,02/10/2022,17 
3,05/17/2022,5 
4,06/01/2022,12 
5,08/10/2022,26 
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`
* `start_date`
* `effort`

Aby obliczyć datę zakończenia (end\_date), należy utworzyć następującą miarę:

* `=LastWorkDate(start_date,effort,'05/18/2022')`

Tabela wynikowa

| id | start\_date | effort | =LastWorkDate(start\_date,effort,'05/18/2022') |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 14 | 01/20/2022 |
| 2 | 02/10/2022 | 17 | 03/04/2022 |
| 3 | 05/17/2022 | 5 | 05/23/2022 |
| 4 | 06/01/2022 | 12 | 06/16/2022 |
| 5 | 08/10/2022 | 26 | 09/14/2022 |

Pojedynczy dzień świąteczny został wprowadzony jako miara na wykresie. W efekcie data zakończenia projektu 3 zostaje przesunięta o jeden dzień do przodu, ponieważ święto zajmuje jeden dzień roboczy przed datą zakończenia.

Poniższy kalendarz pokazuje daty rozpoczęcia i zakończenia projektu 3 oraz to, że święto zmienia datę zakonczenia projektu o jeden dzień.

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem święta 18 maja

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem święta 18 maja

Kalendarz pokazujący datę rozpoczęcia i zakończenia projektu 3 z uwzględnieniem święta 18 maja ![Diagram pokazujący datę rozpoczęcia projektu 3 17 maja i datę święta 18 maja](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-lastworkdate-example2-diagram.png)