Последняя версия DataExpress 26.10.11

Изображение Скачать | Изображение Что нового? | Демо

Модуль напоминаний о событиях

Расширение функционала и существующих возможностей программы с помощью модулей расширений и плагинов от сторонних разработчиков.

Модератор: Разработчики расширений

Vofka18
Специалист
Сообщения: 971
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 183 раза
Поблагодарили: 245 раз

Модуль напоминаний о событиях

Сообщение Vofka18 » 21 янв 2020, 21:08

Решил поделиться своим творением, писал для своих нужд. Сразу оговорюсь, на гуру программирования я не тяну, поэтому тапками не бить, а советам буду рад. :)
Итак, Данное расширение подключается в действиях при запуске, предварительно нужно создать форму для хранения напоминаний (пример на скрине).
В выражениях добавятся соответствующие функции, для добавления напоминаний через выражения.

В версии 2.2 добавлен еще один параметр (предпоследний, если по порядку). это параметр "user" если передать в него пустую строку, то функционал расширения не изменится от предыдущей версии. А если в него передать имя юзера, то оно запишится в напоминание.
Обратите внимание, что в расширении отсутствует проверка, на наличие указанного пользавателя, т.е.
если указать не существующее имя пользавателя, то напоминание не сработает никогда.

31.05.2023 Reminder v3.0 - исправил конфликт с другими расширениями, при старте программы. Также оптимизировал процедуру обновления уведомлений (создавалось много лишних экземпляров формы)
01.06.2023 Reminder v3.1 - Исправил ошибку неопределенного поля цикличных событий.
28.05.2024 Reminder v3.2 - Исправил редактирование записи, при установленном фильтре формы.

Демо

Вложения
Reminder v3.2.epas
(75.73 КБ) 174 скачивания
2023-06-01_10-03-45.png
2023-06-01_10-03-45.png (66.9 КБ) 4176 просмотров
Reminder v3.1.epas
(75.71 КБ) 190 скачиваний
МОДУЛЬ НАПОМИНАНИЙ.rar
(58.88 КБ) 641 скачивание
Reminder.7z
(12.1 КБ) 621 скачивание
2020-01-21_21-07-24.png
2020-01-21_21-07-24.png (24.14 КБ) 16757 просмотров
2020-01-21_21-05-13.png
2020-01-21_21-05-13.png (44.12 КБ) 16757 просмотров
2020-01-21_20-49-55.png
2020-01-21_20-49-55.png (16.57 КБ) 16757 просмотров
Последний раз редактировалось admin 14 июн 2026, 22:06, всего редактировалось 11 раз.
Причина: Замена ссылки

Аватара пользователя
cordek
Эксперт
Сообщения: 2563
Зарегистрирован: 14 май 2017, 14:53
Благодарил (а): 754 раза
Поблагодарили: 612 раз
Контактная информация:

Модуль напоминаний о событиях

Сообщение cordek » 03 апр 2025, 06:55

Тогда лучше записывать две переменных id и form
На форме напоминания добавлять их в два скрытых поля. Использовать потом не запрос, а кнопку с действием открыть форму.
балуюсь разработкой LIMS JDX
cordek {/а} yandex/ru

Lav_andrew
Интересующийся
Сообщения: 62
Зарегистрирован: 25 фев 2025, 19:21
Благодарил (а): 1 раз

Модуль напоминаний о событиях

Сообщение Lav_andrew » 03 апр 2025, 10:32

cordek писал(а):Тогда лучше записывать две переменных id и form
На форме напоминания добавлять их в два скрытых поля. Использовать потом не запрос, а кнопку с действием открыть форму.

Здравствуйте. Да тоже хорошая идея. Получается это скриптом только реализовать? стандартными функциями не получится?

Аватара пользователя
cordek
Эксперт
Сообщения: 2563
Зарегистрирован: 14 май 2017, 14:53
Благодарил (а): 754 раза
Поблагодарили: 612 раз
Контактная информация:

Модуль напоминаний о событиях

Сообщение cordek » 03 апр 2025, 10:58

Lav_andrew писал(а):
cordek писал(а):Тогда лучше записывать две переменных id и form
На форме напоминания добавлять их в два скрытых поля. Использовать потом не запрос, а кнопку с действием открыть форму.

Здравствуйте. Да тоже хорошая идея. Получается это скриптом только реализовать? стандартными функциями не получится?

Записать можно через переменные setvar и потом с помощью getvar сохранить в поле.
Открыть можно действием из расширения dx-plus
балуюсь разработкой LIMS JDX
cordek {/а} yandex/ru

Nero68
Новичок
Сообщения: 31
Зарегистрирован: 05 фев 2025, 19:07
Благодарил (а): 4 раза
Поблагодарили: 19 раз

Модуль напоминаний о событиях

Сообщение Nero68 » 25 сен 2026, 10:22

Модуль отличный, но выводится сообщение-исключение если поле описание пустое. Если дата без времени, то не срабатывает в этот же день. Небольшие фиксики:

Код: Выделить всё

procedure checkCircleMem();
...
      // фикс продление даты без указания времени
      SQL:=SQL + ' ['+remDt.remDone+'] as dn ' +
        ' from ['+remDt.Fm+'] ' +
        ' where ((['+remDt.remDate+'] <=  CURRENT_DATE ' +
        ' AND (['+remDt.remTime+'] <= CURRENT_TIME OR ['+remDt.remTime+'] is NULL)) '+
        ' OR (['+remDt.remDate+'] <  CURRENT_DATE)) ' ;
...

procedure refreshDataEvents();
...
    // фикс работа даты без указания времени
    SQL:=SQL+'from ['+remDt.Fm+'] ' +
      'where ((['+remDt.remDate+'] <=  CURRENT_DATE ' +
      ' AND (['+remDt.remTime+'] <= CURRENT_TIME OR ['+remDt.remTime+'] is NULL)) '+
      ' OR ([' + remDt.remDate+'] <  CURRENT_DATE ))'+
      ' AND ['+remDt.remDone+']=0 ';
...

procedure AddItemMems(sel:TdxSQLQuery);//fm:tdxForm;fmId:integer;dt:TdateTime);
...
    // фикс, если описание путое, не выводится исключение
    if sel['remText']<>NULL then
    begin
      child.Caption :=sel['remText'];//**************** fm.asS[remDT.remText];
      child.Enabled:=false;
      MI.Add(child);
    end;
...

Аватара пользователя
Runenkov
Опытный
Сообщения: 347
Зарегистрирован: 21 сен 2016, 21:15
Откуда: Ашхабад
Благодарил (а): 124 раза
Поблагодарили: 141 раз

Модуль напоминаний о событиях

Сообщение Runenkov » Вчера, 14:59

Nero68 писал(а):Модуль отличный, но выводится сообщение-исключение если поле описание пустое. Если дата без времени, то не срабатывает в этот же день. Небольшие фиксики:

Код: Выделить всё

procedure checkCircleMem();
...
      // фикс продление даты без указания времени
      SQL:=SQL + ' ['+remDt.remDone+'] as dn ' +
        ' from ['+remDt.Fm+'] ' +
        ' where ((['+remDt.remDate+'] <=  CURRENT_DATE ' +
        ' AND (['+remDt.remTime+'] <= CURRENT_TIME OR ['+remDt.remTime+'] is NULL)) '+
        ' OR (['+remDt.remDate+'] <  CURRENT_DATE)) ' ;
...

procedure refreshDataEvents();
...
    // фикс работа даты без указания времени
    SQL:=SQL+'from ['+remDt.Fm+'] ' +
      'where ((['+remDt.remDate+'] <=  CURRENT_DATE ' +
      ' AND (['+remDt.remTime+'] <= CURRENT_TIME OR ['+remDt.remTime+'] is NULL)) '+
      ' OR ([' + remDt.remDate+'] <  CURRENT_DATE ))'+
      ' AND ['+remDt.remDone+']=0 ';
...

procedure AddItemMems(sel:TdxSQLQuery);//fm:tdxForm;fmId:integer;dt:TdateTime);
...
    // фикс, если описание путое, не выводится исключение
    if sel['remText']<>NULL then
    begin
      child.Caption :=sel['remText'];//**************** fm.asS[remDT.remText];
      child.Enabled:=false;
      MI.Add(child);
    end;
...


в каждой строчке только точки... третий фрагмент не нашёл куда правильно вставлять... хотя бы ссылку на номера строк дали...


Вернуться в «Каталог расширений»