Последняя версия DataExpress 3 beta от 20 сентября 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

Фильтр отбора записей

Предложения по новому функционалу и развитию существующего.
VdoVin
Интересующийся
Сообщения: 78
Зарегистрирован: Пт апр 28, 2017 7:05 am
Откуда: Сахалин, Корсаков

Re: Фильтр отбора записей

Сообщение VdoVin » Вт дек 19, 2017 12:06 pm

admin писал(а):Нет. Хотя можно сделать поле с выражением и результатом: желтый, красный и т. д.

Можно и без запросов дни рождения фильтровать. Добавьте поле "Месяц" с выражением, которое извлекает из даты рождения название месяца.

Именно так и сделал, очень хотелось дерево оставить. Создал дополнительное поле, спрятал его с глаз долой, вставил в него выражение, как Вы и написали. Теперь в фильтре достаточно только написать месяц и всё прекрасно работает. ;)

jurist23rus
Эксперт
Сообщения: 2377
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп

Re: Фильтр отбора записей

Сообщение jurist23rus » Вт дек 19, 2017 4:18 pm

VdoVin писал(а):. Теперь в фильтре достаточно только написать месяц и всё прекрасно работает. ;)

Чтобы не писать, можно использовать поле список и выбирать нужное значение. Так удобнее.
Destiny is a very convenient word for those who never take decisions.

VdoVin
Интересующийся
Сообщения: 78
Зарегистрирован: Пт апр 28, 2017 7:05 am
Откуда: Сахалин, Корсаков

Re: Фильтр отбора записей

Сообщение VdoVin » Вс дек 24, 2017 4:53 am

jurist23rus писал(а):
VdoVin писал(а):. Теперь в фильтре достаточно только написать месяц и всё прекрасно работает. ;)

Чтобы не писать, можно использовать поле список и выбирать нужное значение. Так удобнее.

Спасибо за идею. Действительно ещё красивее стало.

sergiost61
Новичок
Сообщения: 41
Зарегистрирован: Вт ноя 28, 2017 9:27 pm

Re: Фильтр отбора записей

Сообщение sergiost61 » Ср янв 17, 2018 10:46 pm

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

Что уже сделано:
Создал запрос, создал поле даты с флажком текущая дата, выбрал нужные поля из базы - Выводятся все сотрудники, так как сегодня 17.01.2018 года никто из них не родился :))
Понятно, что надо выводить только текущее число и месяц, без года.
Подскажите, пожалуйста, как это сделать практически?

Нашел только на текущий день:
admin писал(а):В выходном фильтре запроса:

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

dayof([дата рождения])=dayof(date) & monthof([дата рождения])=monthof(date)


А как вывести в запросе через поля фильтра (или списка) на заданный интервал дат?
Например в списке выбираем "на ближайшую неделю" и в запросе отобразяться те сотрудники, у которых дни рождения попадут в этот интервал?

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Фильтр отбора записей

Сообщение YurAnt » Ср янв 17, 2018 11:42 pm

Алгоритм фильтра (примерно):

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

ДеньР+'.'МесяцР+'.'+ГодНачалаДиапазона >= ДатаНачалаДиапазона
&
ДеньР+'.'МесяцР+'.'+ГодКонцаДиапазона
 <= ДатаКонцаДиапазона

sergiost61
Новичок
Сообщения: 41
Зарегистрирован: Вт ноя 28, 2017 9:27 pm

Re: Фильтр отбора записей

Сообщение sergiost61 » Чт янв 18, 2018 5:22 am

YurAnt писал(а):Алгоритм фильтра (примерно):

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

ДеньР+'.'МесяцР+'.'+ГодНачалаДиапазона >= ДатаНачалаДиапазона
&
ДеньР+'.'МесяцР+'.'+ГодКонцаДиапазона
 <= ДатаКонцаДиапазона


Для фильтрации создал поля: дата_рождения_с и дата_рождения_по
в фильтре запроса прописать как?

Беру поле источника, оно:

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

   [?!Дата рождения сотрудника]=
и сравниваю с полем формы, получаю:

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

[?!Дата рождения сотрудника] = [!дата_рождения_с]
[?!Дата рождения сотрудника] = [!дата_рождения_по]


А куда прописать ваш код?

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3361
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Фильтр отбора записей

Сообщение YurAnt » Чт янв 18, 2018 7:20 am

Это не код а алгоритм... Он сгодится только в выходном фильтре.
Условно у нас есть 2 д.р.:
21.12.1982
05.01.1978
В фильтре выбираем диапазон:
01.12.2017 - 31.01.2018
По алгоритму идёт сравнение:
21.12.2017>=01.12.2017
05.01.2018>=01.12.2017
И
21.12.2017<=31.01.2018
05.01.2018<=31.01.2018
Условие истинно, значения дат попадают в заданный диапазон.
понятно...?

sergiost61
Новичок
Сообщения: 41
Зарегистрирован: Вт ноя 28, 2017 9:27 pm

Re: Фильтр отбора записей

Сообщение sergiost61 » Чт янв 18, 2018 9:23 am

Благодарю! Понятно, попробую, отпишусь!