Как сделать фильтр "Дата создания не равно предыдущий месяц" ?

Добрый день. Суть вопроса в теме.
Заранее извиняюсь, если проблема уже обсуждалась, но я не нашла.

P.S. и аналогичный фильтр "Дата создания не равно предыдущая неделя" ?

Нравится

10 комментариев

Здравствуйте, Виктория!

Уточните, пожалуйста, о какой версии бинарных файлов идет речь?

Дело в том, что подобные фильтры по дате - ядровые, и описанный Вами фильтр был добавлен с определенной сборки 3.3.2. То есть, возможность выбора условия Предыдущий месяц в фильтре по дате создания можно включить, обновив бинарные файлы до последней сборки.

В случае, если Вам необходимо добавить подобный фильтр непосредственно в SQL и сделать него не изменяемым, тогда единственный вариант - создание CustomSQL-фильтра, который будет автоматически подтягивать нужные даты. Однако в таком случае не получится выводить фильтр в блок фильтрации, и его нужно будет реализовывать в интерфейсе отдельно в виде признака.

У нас 3.3.2.287 версия

Здравствуйте, Виктория!

Для данной версии есть предустановленный фильтр по функции Предыдущий месяц:

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

Обратите внимание, Предыдущий месяц - это с 1-го по 31-е число того месяца, который был до текущего, тогда как Прошлый месяц - это диапазон 30 дней до текущей даты. текущее время при этом не учитывается.

Анна - я виделафильтр "равно предыдущий месяц". Я им прекрасно пользуюсь уже пару лет. Мне нужен фильтр "НЕ РАВНО предыдущий месяц".

Виктория, для "не предыдущего" можно попробовать сделать пользовательский SQL-фильтр с нужным условием вроде такого (месяц):

not (
 [CreatedOn]>=DATEADD(MONTH, DATEDIFF(MONTH,0, CURRENT_TIMESTAMP)-1,0)
  AND [CreatedOn]< DATEADD(MONTH, DATEDIFF(MONTH,0, CURRENT_TIMESTAMP)  ,0))

И подключать его программно, если в блоке фильтрации стоит нужная галка.

Александр , подскажите пожалуйста чуть более подробно. Мне надо добавить пользовательский SQL-фильтр прямо в блок Where (для того sq , в котором это необходимо). Или создать еще какое-то условие - например, фильтр пользователя типа Дата или Exist или какой-то другой?

Виктория, если хотите конкретное решение, опишите конкретную задачу
фильтр пользователя - это те, что используются для фильтрации пользователем в разделах (как у Анны на скриншоте). Если добавлять блок в where, фильтр надо будет включать программно где-то в скриптах на каком-то событии или кнопке.
В общем, опишите более подробно

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

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

1. создать exist фильтр. установить ему галочку НЕ
2. внутри него таблицу установить tbl_ТаКотораяВамНужна задать для нее алиас, чтобы не запутаться
3. в селекте выбрать что-нибудь (ID)
4. в where создать фильтр сравнения, где выставить tbl_ТаКотораяВамНужна.ID = ВашАлиас.ID (основная таблица запроса - первая в списке после параметров) и создать пользовательский фильтр для даты

все получилось!
но это , конечно, совсем не то, что сделать в ядре сразу предустановленную возможность делать такой фильтр для любой даты.

Показать все комментарии