Последняя версия DataExpress 3 beta от 9 мая 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

Отображение ближайшего дня рождения

Все о том как сделать что-то с помощью скриптов.
AnatolySopilov
Новичок
Сообщения: 48
Зарегистрирован: Пт окт 11, 2019 6:15 am
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Отображение ближайшего дня рождения

Сообщение AnatolySopilov » Пт май 22, 2020 3:17 pm

Добрый день.
Подскажите пожалуйста. Есть 2 формы : 1) Список работников (представление "таблица")
2) Форма рабочего стола (представление "простая форма").

В списке работников есть поле дата рождения.
Необходимо на форме рабочего стола отображалась информация, о ближайшем дне рождении интервал к примеру 5 дней, можно ли в поле "надпись" это сделать?
Или каким-то другим образом это можно сделать?

P.S. Причем день рождения отображался не только одного человека, а если у нескольких работников дни рождения рядом.
Вложения
QIP Shot - Screen 104.png
QIP Shot - Screen 104.png (4.8 КБ) 96 просмотров

Аватара пользователя
admin
Разработчик
Сообщения: 4910
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 33 раза
Поблагодарили: 256 раз

Отображение ближайшего дня рождения

Сообщение admin » Пт май 22, 2020 3:21 pm

Цветом записи запроса можно выделить.

Vofka18
Знаток
Сообщения: 419
Зарегистрирован: Вс мар 04, 2018 4:54 pm
Благодарил (а): 42 раза
Поблагодарили: 41 раз

Отображение ближайшего дня рождения

Сообщение Vofka18 » Пт май 22, 2020 6:47 pm

AnatolySopilov писал(а):Добрый день.
Подскажите пожалуйста. Есть 2 формы : 1) Список работников (представление "таблица")
2) Форма рабочего стола (представление "простая форма").

В списке работников есть поле дата рождения.
Необходимо на форме рабочего стола отображалась информация, о ближайшем дне рождении интервал к примеру 5 дней, можно ли в поле "надпись" это сделать?
Или каким-то другим образом это можно сделать?

P.S. Причем день рождения отображался не только одного человека, а если у нескольких работников дни рождения рядом.

Вот как я подобное реализовал, может пригодится.
Размещаем запрос на форме, и флажок "Отобразить все"
Отбор запроса на скрине
В вычисляемые поля записываем следующее:

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

// поле "Исполняется"
AGE([Дата рождения],CDATE(CSTR(DAYOF([Дата рождения]))+'.'+ CSTR(MONTHOF([Дата рождения]))+'.'+ CSTR(YEAROF(Date))),1)
// Поле "дней до"
iif(CDATE(CSTR(DAYOF([Дата рождения]))+'.'+ CSTR(MONTHOF([Дата рождения]))+'.'+ CSTR(YEAROF(Date)))>=Date,
  DAYSBETWEEN(Date,CDATE(CSTR(DAYOF([Дата рождения]))+'.'+ CSTR(MONTHOF([Дата рождения]))+'.'+ CSTR(YEAROF(Date)))),
  DAYSBETWEEN(Date,CDATE(CSTR(DAYOF([Дата рождения]))+'.'+ CSTR(MONTHOF([Дата рождения]))+'.'+ CSTR(YEAROF(ADDYEAR(Date,1)))))
   )

В выходном фильтре пишем:

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

iif([:Показать всех]=0,
[Дней до]<=31,      //Это период за который будет отображаться дни рождения
'')

Добавляем раскраску как на скрине. И все :)
Вложения
2020-05-22_18-44-43.png
2020-05-22_18-44-43.png (34.28 КБ) 84 просмотра
2020-05-22_18-38-39.png
2020-05-22_18-38-39.png (5.98 КБ) 84 просмотра
2020-05-22_18-37-50.png
2020-05-22_18-37-50.png (45.49 КБ) 84 просмотра
2020-05-22_18-37-17.png
2020-05-22_18-37-17.png (41.03 КБ) 84 просмотра

AnatolySopilov
Новичок
Сообщения: 48
Зарегистрирован: Пт окт 11, 2019 6:15 am
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Отображение ближайшего дня рождения

Сообщение AnatolySopilov » Сб май 23, 2020 9:29 am

Приветствую!
Спасибо больше. Очень пригодилось.
А можно уточнить в запросе данные в таблице разместить по центру можно?

Vofka18
Знаток
Сообщения: 419
Зарегистрирован: Вс мар 04, 2018 4:54 pm
Благодарил (а): 42 раза
Поблагодарили: 41 раз

Отображение ближайшего дня рождения

Сообщение Vofka18 » Сб май 23, 2020 9:40 am

AnatolySopilov писал(а):Приветствую!
Спасибо больше. Очень пригодилось.
А можно уточнить в запросе данные в таблице разместить по центру можно?

Пожалуйста ;) По поводу выравнивания текста, не помню, поищите по форуму, кажется недавно было обсуждение.