Страница 1 из 3

[Решено] Отображение заказов на сегодня

Добавлено: 13 июл 2023, 22:29
artyzz
Здравствуйте коллеги. Сломал голову, не пойму как сделать. Есть сущность Заказы. В ней есть дата начала работ и дата окончания работ (для отображения в графике загрузки). Вывел фильтр - "Заказы на сегодня". Там есть только возможность выбрать фильтр по дате "Дата начала работ" = 0 (сегодня). Допустим у меня заказ начало 13 июля а конец 15 июля. При применении фильтра 13го числа "Заказы на сегодня" мне этот заказ отобразит. А вот завтра и послезавтра (14го и 15го) - естественно в "Заказы на сегодня" он отображаться не будет, хотя по сути он стоит и растянут на 3 дня. Как лучше реализовать вывод заказа в фильтр "Заказы на сегодня" в любой день, в промежутке которого он находится от и до?

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:06
Fait
artyzz писал(а): 13 июл 2023, 22:29 Здравствуйте коллеги. Сломал голову, не пойму как сделать. Есть сущность Заказы. В ней есть дата начала работ и дата окончания работ (для отображения в графике загрузки). Вывел фильтр - "Заказы на сегодня". Там есть только возможность выбрать фильтр по дате "Дата начала работ" = 0 (сегодня). Допустим у меня заказ начало 13 июля а конец 15 июля. При применении фильтра 13го числа "Заказы на сегодня" мне этот заказ отобразит. А вот завтра и послезавтра (14го и 15го) - естественно в "Заказы на сегодня" он отображаться не будет, хотя по сути он стоит и растянут на 3 дня. Как лучше реализовать вывод заказа в фильтр "Заказы на сегодня" в любой день, в промежутке которого он находится от и до?
Можно вот таким способом (костыль, но зато работает):
1) Создаёте поле MY SQL Формула, и туда вставляете следующую формулу:

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

IF((UNIX_TIMESTAMP()>=[777] AND UNIX_TIMESTAMP()<[888]),1,0)
Здесь 777 - id поля "Начало работ", а 888 - id поля "Окончание работ".
2) В фильтрах отчёта "Заказы на сегодня" укажите это созданное поле с включённым значением "1"
IMG_20230714_010713.jpg

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:12
artyzz
Fait писал(а): 13 июл 2023, 23:06
artyzz писал(а): 13 июл 2023, 22:29 Здравствуйте коллеги. Сломал голову, не пойму как сделать. Есть сущность Заказы. В ней есть дата начала работ и дата окончания работ (для отображения в графике загрузки). Вывел фильтр - "Заказы на сегодня". Там есть только возможность выбрать фильтр по дате "Дата начала работ" = 0 (сегодня). Допустим у меня заказ начало 13 июля а конец 15 июля. При применении фильтра 13го числа "Заказы на сегодня" мне этот заказ отобразит. А вот завтра и послезавтра (14го и 15го) - естественно в "Заказы на сегодня" он отображаться не будет, хотя по сути он стоит и растянут на 3 дня. Как лучше реализовать вывод заказа в фильтр "Заказы на сегодня" в любой день, в промежутке которого он находится от и до?
Можно вот таким способом (костыль, но зато работает):
1) Создаёте поле MY SQL Формула, и туда вставляете следующую формулу:

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

IF((UNIX_TIMESTAMP()>=[777] AND UNIX_TIMESTAMP()<[888]),1,0)
Здесь 777 - id поля "Начало работ", а 888 - id поля "Окончание работ".
2) В фильтрах отчёта "Заказы на сегодня" укажите это созданное поле с включённым значением "1"

IMG_20230714_010713.jpg
Попробовал, возвращает 0. Что то не так)

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:21
Fait
Всё работает.
Формула должна возвращать 0, если текущая дата находится не в диапазоне дат

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:25
artyzz
Fait писал(а): 13 июл 2023, 23:21 Всё работает.
Формула должна возвращать 0, если текущая дата находится не в диапазоне дат
у меня 0 возвращает любые заказы с любыми датами

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:28
Fait
artyzz писал(а): 13 июл 2023, 23:25
Fait писал(а): 13 июл 2023, 23:21 Всё работает.
Формула должна возвращать 0, если текущая дата находится не в диапазоне дат
у меня 0 возвращает любые заказы с любыми датами
Формула рабочая, это точно.
Пришлите скрин, как вы её у себя написали.

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:30
Fait
Формула
Формула
Вот у меня она описана

А вот результат:
Результат, если текущая дата в диапазоне
Результат, если текущая дата в диапазоне
Результат, если текущая дата не в диапазоне
Результат, если текущая дата не в диапазоне

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:32
artyzz
Fait писал(а): 13 июл 2023, 23:30 IMG_20230714_013001.jpg
Вот у меня она описана
у меня поля в формате Выбор даты + время с календарем. Как преобразовать в Юникс это?) По формуле мы сравниваем в Юниксе, а поле то у меня возвращает просто число и текст месяца

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:35
Fait
artyzz писал(а): 13 июл 2023, 23:32
Fait писал(а): 13 июл 2023, 23:30 IMG_20230714_013001.jpg
Вот у меня она описана
у меня поля в формате Выбор даты + время с календарем. Как преобразовать в Юникс это?) По формуле мы сравниваем в Юниксе, а поле то у меня возвращает просто число и текст месяца
Просто сделайте так, как я написал.
Тип поля "Дата", и этого достаточно ;)

Re: Отображение заказов на сегодня

Добавлено: 13 июл 2023, 23:39
Fait
artyzz писал(а): 13 июл 2023, 23:32
Fait писал(а): 13 июл 2023, 23:30 IMG_20230714_013001.jpg
Вот у меня она описана
у меня поля в формате Выбор даты + время с календарем. Как преобразовать в Юникс это?) По формуле мы сравниваем в Юниксе, а поле то у меня возвращает просто число и текст месяца
Значения всех полей с типом "Дата" хранятся в БД в формате UNIX TIMESTAMP.
А в SQL, UNIX_TIMESTAMP() - это функция, возвращающая текущее время в формате UNIX.

Далее, текущий UNIX сравниваем с UNIX из БД, и готово)