Пример использования

<< Click to Display Table of Contents >>

Navigation:  Проект > Документы объектов > Мнемосхемы > Графический редактор MasterGraph > Графический редактор > Элементы  палитры графического редактора > Элементы диалога > Календарь рабочих дней >

Пример использования

Данный пример демонстрирует работу формирования некоторых событий по расписанию с игнорированием выходных и праздничных дней.

Поскольку список новогодних праздников каждый год утверждается Правительством РФ, а также некоторые предприятия могут переносить выходные и рабочие дни, оператору необходима возможность самостоятельно составить базу выходных.

Добавляем контрол "Календарь рабочих дней".

kalendar.primer_ispolzovaniya1

Задавать какой день является праздничным или рабочим нужно в режиме исполнения.

Контрол способен сохранять настроенный пользователем табель. Для этого есть параметр "Путь к файлу с исключительными датами". В этот файл (xml) контрол сохраняет введенные пользователем исключения.

kalendar.primer_ispolzovaniya2

В данном примере параметр не заполнен - мы подавать его от скрипта через вход динамизации.

Для взаимодействия с объектами мы разработали специальный скрипт.

kalendar.primer_ispolzovaniya3

Скрипт считывает сохраненный файл, и проверяет поданное на вход "Дата" число, и если день рабочий то на выходе "Рабочий день" формируется - Вкл, иначе – Выкл. Если файл не будет найден (например, пользователь его еще не сформировал),  то скрипт будет считать все субботы и воскресенья – выходными, остальные дни – рабочими.

Примечание. У скрипта стоит опрос "По-изменению", то есть скрипт считывает файл только когда изменится вход "Дата" - то есть раз в сутки, это сделано с целью оптимизации. Установка периодического опроса допускается.

На выходе "Путь" формируется путь для считывания файла. Чтобы контрол и скрипт работали с одним и тем же файлом, на вход контрола "Путь к файлу с исключительными датами", подсоединен выход скрипта "Путь".

kalendar.primer_ispolzovaniya4

Открытие мнемосхемы.

В качестве примера, мы будем открывать мнемосхему по расписанию только в рабочие дни. "Объект 2" каждый день в 12 часов дня формирует сигнал на команду "Сигнал_расписания", используя закладку "Расписание".

Событие "Открыть" проверяет, является ли текущий день рабочим. И если день рабочий и есть сигнал от команды "Сигнал_расписания" то происходит открытие мнемосхемы (через закладку события "Действия").

Создание табеля.

Табель создается в режиме исполнения.

Например. Нам необходимо отметить дни с 31 декабря по 9 января как выходные.

Щелкаем мышью по 31 декабря.

kalendar.primer_ispolzovaniya5

Жмем правую кнопку мыши и выбираем пункт "Нерабочие дни". 31 число станет помечен черным – как нерабочий

kalendar.primer_ispolzovaniya6

Дни с 3 по 7 января выделим группой. Для этого можно сначала щелкнуть по 3 числу, затем удерживая Shift нажать по 7 числу, либо удерживая клавишу мыши выделить с 3 по 7. Аналогично отмечаем как нерабочие дни:

kalendar.primer_ispolzovaniya7

Теперь сохраняем табель.

kalendar.primer_ispolzovaniya8

Аналогично формируются табель для остальных дней. Прокрутить календарь вперед и назад, можно используя кнопки со стрелками.

kalendar.primer_ispolzovaniya9

Проверим работу табеля.

Подадим на вход "Дата" число 5 января.

kalendar.primer_ispolzovaniya10

День стал отмечен как нерабочий

kalendar.primer_ispolzovaniya11

 

Скачать пример можно по этой ссылке.