Последняя версия DataExpress 3 beta от 15 сентября 2020 года.

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



Объявление:

Если вам понравилась программа и вы ее интенсивно используете - замолвите словечко о ней на вашем сайте (блоге, форуме, твитере, краской на подъезде, ютуб-канале и т.д.) с активной (по-возможности) ссылкой на сайт программы/форум. Тем самым вы можете внести небольшой вклад в seo-карму проекта в виде входящих ссылок.
Спасибо! Администрация :)


>> Обсудить <<

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


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

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

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

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

dxdb_icon Демо

Вложения
Reminder_v2.1.epas
(67.84 КБ) 99 скачиваний
МОДУЛЬ НАПОМИНАНИЙ.rar
(58.88 КБ) 73 скачивания
Reminder.7z
(12.1 КБ) 68 скачиваний
2020-01-21_21-07-24.png
2020-01-21_21-07-24.png (24.14 КБ) 2540 просмотров
2020-01-21_21-05-13.png
2020-01-21_21-05-13.png (44.12 КБ) 2540 просмотров
2020-01-21_21-04-20.png
2020-01-21_21-04-20.png (115.58 КБ) 2540 просмотров
2020-01-21_20-49-55.png
2020-01-21_20-49-55.png (16.57 КБ) 2540 просмотров

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

Сообщение Vofka18 » 31 янв 2020, 12:38

Обновил файлы расширения и примеров.
Пока из изменений только работа с переносом напоминания на месяц. Теперь работает более менее корректно (по крайней мере предсказуемо).
Если кто будет пользоваться, обратите внимание, на установку заданий в крайние дни месяца (29,30,31), эти дни есть не в каждом месяце, и напоминания будут переносится, при необходимости, в конец месяца.

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

Сообщение Vofka18 » 31 янв 2020, 16:46

cordek писал(а):Хорошо бы было добавить пользователя в напоминания.

Обновил вложения. Пароль к примеру "1"
Добавлена проверка на пользователя. Т.е. сообщения будут выводится пользователю, который их создал.
Поле при подключении не обязательное.
Если уже есть напоминания, то желательно через функцию "Установить значение" выставить в форме текущего или нужного пользователя.

Macheti
Заглянувший
Сообщения: 7
Зарегистрирован: 09 июл 2019, 13:45
Благодарил (а): 35 раз

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

Сообщение Macheti » 08 фев 2020, 17:40

Vofka18 писал(а):
cordek писал(а):Хорошо бы было добавить пользователя в напоминания.

Обновил вложения. Пароль к примеру "1"
Добавлена проверка на пользователя. Т.е. сообщения будут выводится пользователю, который их создал.
Поле при подключении не обязательное.
Если уже есть напоминания, то желательно через функцию "Установить значение" выставить в форме текущего или нужного пользователя.


Доброго времени суток! А возможно добавить еще период - "квартал" ?

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

Сообщение Vofka18 » 08 фев 2020, 18:39

Macheti писал(а):Доброго времени суток! А возможно добавить еще период - "квартал" ?

Думаю да. Попробую.

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

Сообщение Vofka18 » 09 фев 2020, 16:23

Macheti писал(а):Доброго времени суток! А возможно добавить еще период - "квартал" ?

Обновил вложения.
Добавил периодичность "Квартал". + мелкие исправления.
По поводу кварталов, прилагаю код для возможного изучения и проверки, может я чего-то не учел в квартальности.
За квартал принимаю разницу между датами в три месяца.
Данный код будет переносить выполненное задание в следующий квартал. Если есть в этом какие-то нюансы, то скажите.
И еще раз напомню с последними днями месяца, будьте аккуратнее, если в месяце нет, например, 31-го числа, то дата переместится на 30, или 28(если февраль)

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

function moveToNextQuarter(StartDate,EndDate: Variant):tDateTime;
var
  SD,ED,tempD:TDateTime;
  SQuMonth,EQuMonth:integer;
begin
  if (StartDate=null) OR (EndDate=null) then
  begin
    RaiseException(erCustomError, 'Не указана дата');
  end;

  SD:=TDateTime(StartDate); // Начальная дата
  ED:=TDateTime(EndDate);   // Конечная дата (дата проведения расчета)

  // запоминаем месяц по счету в квартале по начальной дате
  if(MonthOf(SD)=MonthOf(beginQuarter(SD)))then
    SQuMonth:=0
  else if(MonthOf(SD)=MonthOf(endQuarter(SD)))then
    SQuMonth:=2
  else
    SQuMonth:=1;

  EQuMonth:=MonthOf(AddMonth(beginQuarter(ED),SQuMonth));// Запоминаем месяц по счету в текущем квартале
  // Т.е. месяц в текщем квартале который соответствует месяцу в начальном квартале.

  if(tryEncodeDate(YearOf(ED),EQuMonth,DayOf(SD),tempD))then
  // Пытаемся переместится в нужный месяц в текущем квартале, на заданое число
  begin
    tempD:=tempD+Frac(SD);
    //debug('Encode-OK  '+varToStr(tempD));
  end
  else
  begin
  // Если не получилось, перемещаемся в последний день месяца
    tempD:=EncodeDate(YearOf(ED),EQuMonth,DayOf(EndMonth(ED)));
    tempD:=tempD+Frac(SD);
    //debug('Encode-NOT '+varToStr(tempD));
  end;

  // Проверяем наступление события в текущем квартале.
  if(tempD<ED)then // Если дата уже прошла
  begin
    tempD:=addMonth(tempD,3); // Перемещаемся в следующий квартал (на 3 месяца вперед)
    //debug('Add_OK  '+varToStr(tempD));
  end;

  Result:=tempD;
end;

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

Сообщение Vofka18 » 11 фев 2020, 16:13

В шапке пока не обновляю, но не удержался поделиться :)
Прикрутил системный трей, не забудьте поставить галочку в подключении расширения.
Сейчас пока тестирую.
Вложения
Reminder.7z
(12.06 КБ) 48 скачиваний

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

Сообщение Vofka18 » 14 фев 2020, 09:56

Обновил вложения в шапке.
Поддерживается трей, + немного поправил код.

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

Сообщение Vofka18 » 03 мар 2020, 16:25

Решил не менять строе расширение, поэтому добавил второе вложение в шапке v2.0.
В нем много изменений:
1- Добавлена возможность устанавливать звуки в формате wav.(если не нужно, сделать поле пустым)
2- При подключении, убрал возможность выбора событий обновления.
3- Теперь обновления происходят по таймеру и при запуске.
При запуске базы происходит обновление, и запоминается время следующего "срабатывания".
Таймер тикает каждую минуту и сверяет текущее время с временем события, если время наступило, происходит обновление.
Если на сегодня событий больше нет, то таймер либо останавливается либо переносит время следующей проверки на час вперед (в зависимости от флага "круглосуточная работа", при подключении).
Так-же обновления происходят при событиях onAfterPost, onAfterDelete формы напоминаний. Не сработает только при внесении изменений в справочник через SQL запрос. А так записи можно добавлять любым способом.

memo
Интересующийся
Сообщения: 65
Зарегистрирован: 08 окт 2019, 22:54
Благодарил (а): 16 раз
Поблагодарили: 4 раза

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

Сообщение memo » 06 мар 2020, 05:39

приветствую, подскажите могли бы сделать, чтобы при запуске программы сообщение в трее о том, что нет оповещений не появлялось когда их действительно нет, а появлялась только на запланированные задачи при открытии если время события уже прошло, например событие было запланировано на 6 утра, программу запустил в 7 утра сообщение есть, запустил в 5 утра сообщения о том, что нет оповещений нет.

Vofka18
Знаток
Сообщения: 456
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 44 раза
Поблагодарили: 48 раз

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

Сообщение Vofka18 » 06 мар 2020, 11:42

memo писал(а):приветствую, подскажите могли бы сделать, чтобы при запуске программы сообщение в трее о том, что нет оповещений не появлялось когда их действительно нет, а появлялась только на запланированные задачи при открытии если время события уже прошло, например событие было запланировано на 6 утра, программу запустил в 7 утра сообщение есть, запустил в 5 утра сообщения о том, что нет оповещений нет.

Закоментировал код отображения сообщения.
Вы используете последнюю версию(с таймером, и без других событий)? если да, то качайте вложение, если нет то могу пересобрать старую версию.
Вложения
Reminder.rar
(14.85 КБ) 26 скачиваний


Вернуться в «Расширения и плагины (разработка и обсуждение)»