Страница 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"
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 из БД, и готово)