Отправляет email-рассылки с помощью сервиса Sendsay

Автоматизация бизнеса

  Все выпуски  

Простой софт - автоматизация любого учета Триггеры


Добрый день!!!

 

Сегодняшний выпуск посвящен Триггерам. Как они работают, покажем на примере конфигурации «Прокат».

 

Итак, для начала немного теории.

Триггер - это дополнительная инструкция SQL, срабатывающая сразу после добавления или изменения записи (а также и другого события).
SQL - это язык запросов для модификации данных в БД (для добавления, удаления, изменения записей в таблицах). Триггеры нужны для того, чтобы, к примеру, при изменении данных в одних таблицах, изменять также данные и в других таблицах. Для связи с полями текущей записи используются угловые скобки, в них можно указать любое поле, например <
Field1> или глобальную константу (меню «Сервис» -> «Константы»). Все то, что указано в угловых скобках, будет заменено на конкретные значения текущей записи непосредственно перед выполнением триггера.

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

Пример заданного триггера:

Описание параметров таблицы со списком триггеров:
  • Включен - включение/выключение конкретного триггера.
  • Когда срабатывает – момент времени, когда срабатывает триггер: 1 - при добавлении новой записи в таблицу; 2 - при изменении существующей записи (любого поля); 3 - при добавлении и изменении записи; 4 - при изменении только конкретного поля; 5 – при перемещении по записям; 6 – при удалении записи; 6 – каждую минуту; 7 – каждый час; 8 – при запуске программы; 9 – при выходе из программы; 10 – при обновлении; 11 – при открытии формы; 12 – при закрытии формы.
  • Поле - имя поля (если выбрано 'при изменении поля').
  • Тип операции - выполнение SQL инструкции или запуск указанного файла или отправка e-mail или отправка SMS.
  • Условие - необязательное условие, при котором триггер должен срабатывать, например [Field1] = 0 или [EndDate] = Сегодня.
  • Подтверждение - текст сообщения с вопросом или подтверждением, которое будет показано перед выполнением триггера. Если в конце '?' - будет две кнопки 'Да' и 'Нет', иначе одна кнопка 'Ok'. Можно вводить служебные метки <SQL>, <Condition SQL>, <Email> для отладки.
  • Триггер - SQL инструкция триггера (в случае типа операции 'SQL инструкция') или путь к файлу (в случае типа операции 'Запуск файла'), который нужно запускать. Можно указать несколько SQL-инструкций через точку с запятой.

А теперь приступим к практике.

Запускаем программу «Учет клиентов».

В меню «Файл» выбираем «Открыть базу данных».

Открываем БД нашей конфигурации «Прокат».

 

Открываем таблицу «Сделки по прокату» (созданную в предыдущих выпусках), в которой мы фиксируем все сделки. В рамках одной сделки могут арендоваться сразу несколько автомобилей одним  клиентом, если он юридическое лицо, поэтому нами создана подчиненная таблица «Объекты по сделке».

Нам нужно, чтобы при добавлении или изменении записи в таблице «Объекты по сделки», все данные о сроках и объектах проката автоматически попали в таблицу «Расписание» (данная таблица подразумевает расписание аренды авто, и предназначена для наглядного просмотра занятости всех наших автомобилей во временном процессе).

Для этого создадим триггер для таблицы «Объекты по сделке»: UPDATE tblSchedule SET [Object & <ObjectID>]=(SELECT Client FROM tblMain WHERE ID=<qdfRent>.<ClientID>) WHERE FORMAT(ReceiveDate,'yyyy/mm/dd') >= Format(<StartDate>, 'yyyy/mm/dd') And FORMAT(ReceiveDate, 'yyyy/mm/dd') <= FORMAT(<EndDate>, 'yyyy/mm/dd').

Работоспособность данного триггера вы можете проверить, если скачаете данную конфигурацию. Это можно сделать со страницы конфигурации http://www.simple-soft.ru/Rent.htm

 

На сегодня все. Спасибо за внимание. До скорых встреч.

 

Если у Вас возникли какие-либо вопросы по данной функции, пишите мне, я с удовольствием Вам помогу. Также Вы можете обратиться ко мне с вопросами о приобретении программных продуктов компании «Простой Софт».

С Уважением,

Мария Ларионова

pr@simple-soft.ru

До скорых встреч!

 


В избранное