lastworkdate — скрипт и функция диаграммы
Функция lastworkdate возвращает самую раннюю дату окончания для достижения указанного числа рабочих дней no_of_workdays (понедельник-пятница) с начальной датой start_date и с учетом выходных, которые можно дополнительно задать в поле holiday. Поля start_date и holiday должны быть действительными датами или метками времени.
Синтаксис:
lastworkdate(start_date, no_of_workdays {, holiday})
Тип возврата данных: двойное значение
Аргументы:
Аргумент | Описание |
---|---|
start_date | Дата начала для оценки. |
no_of_workdays | Количество рабочих дней, которое должно быть получено. |
holiday |
Периоды выходных дней для исключения из рабочих дней. Период выходных дней указан как дата начала и дата окончания, разделенные запятыми. Пример: '25/12/2013', '26/12/2013' Можно исключить несколько периодов выходных дней, разделенных запятыми. Пример: '25/12/2013', '26/12/2013', '31/12/2013', '01/01/2014' |
Примеры и результаты:
В этих примерах используется формат даты DD/ММ/YYYY. Формат даты указан в операторе SET DateFormat в верхней части скрипта загрузки. Измените формат в примерах согласно своим пожеланиям.
Пример 1:
lastworkdate ('19/12/2014', 9)
Возвращает «31/12/2014»
Пример 2:
lastworkdate ('19/12/2014', 9, '2014-12-25', '2014-12-26')
Возвращает «02/01/2015», поскольку учитывается двухдневный период выходных.
Пример 3:
Добавьте образец скрипта в свой документ и запустите. Затем добавьте на лист документа как минимум поля, указанные в столбце с результатами, чтобы увидеть результаты.
ProjectTable:
LOAD *, recno() as InvID INLINE [
StartDate
28/03/2014
10/12/2014
5/2/2015
31/3/2015
19/5/2015
15/9/2015
] ;
NrDays:
Load *,
LastWorkDate(StartDate,120) As EndDate
Resident ProjectTable;
Drop table ProjectTable;
Результирующая таблица показывает возвращенные значения функции LastWorkDate для каждой записи в таблице.
InvID | StartDate | EndDate |
---|---|---|
1 | 28/03/2014 | 11/09/2014 |
2 | 10/12/2014 | 26/05/2015 |
3 | 5/2/2015 | 27/07/2015 |
4 | 31/3/2015 | 14/09/2015 |
5 | 19/5/2015 | 02/11/2015 |
6 | 15/9/2015 | 29/02/2016 |