Страница 1 из 1
Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 05 мар 2025, 15:30
gayfullin.r
Доброго дня!
В списке сущности есть необходимость выделить цветом строку, при условии, что в поле повторяющееся значение (НЕуникальное).
Как это сделать при помощи функционала "Настройка списка"->"Выделить строку"?
Функционал "Уникальное поле" не подходит, т.к. оно не даст записать форму.
Может кто-то сталкивался с подобной задачей или решил задачу иным способом. Буду признателен за любые варианты!
Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 05 мар 2025, 15:53
syrorybin
Добрый день.
Насколько понимаю, вам нужно поле с типом MySQL, где выбирается сущность, поле и задается нужное условие.
Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 05 мар 2025, 16:27
gayfullin.r
Нет, постараюсь наглядно объяснить.
На скрине:
1й столбец - № заказа
2й столбец - Проверка - выбран первый блок цифр до дефиса из поля "№ заказа". Это идентификатор клиента.
Надо чтобы выделяло цветом строку с заказом, у которого идентификатор клиента НЕуникальный (повторные заказы от одного клиента).
Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 05 мар 2025, 22:40
Fait
Можно сделать поле MySQL формула и на него настроить выделение цветом стандартным способом.
По формула такая примерно:
Код: Выделить всё
select count(*) from app_entity_33 where field_444=[444] and id<>[current_item_id]
Где 33 - id сущности
444 - id поля с id клиента
P.S.: Интересно у вас получается интеграция с Озон.
Если что, у меня есть довольно мощная система для работы с маркетплейсами)
Если интересно, обращайтесь в ЛС, много времени сэкономите на разработке, тем более, что решение то уже имеется)
Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 06 мар 2025, 14:09
gayfullin.r
Спасибо, но почему-то уходит в ошибку:
Сущность "Заказы". Поле "Проверка@" [356]. Ошибка расчета формулы "select count(*) from app_entity_21 where field_221=[221] and id<>[current_item_id]".
Формула такая прописана:
Код: Выделить всё
select count(*) from app_entity_21 where field_221=[221] and id<>[current_item_id]
З/Ы: По поводу вашего предложения - в личку отписался, жду ответа.
Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 06 мар 2025, 18:55
Fait
gayfullin.r писал(а): 06 мар 2025, 14:09
Спасибо, но почему-то уходит в ошибку:
Сущность "Заказы". Поле "Проверка@" [356]. Ошибка расчета формулы "select count(*) from app_entity_21 where field_221=[221] and id<>[current_item_id]".
Формула такая прописана:
Код: Выделить всё
select count(*) from app_entity_21 where field_221=[221] and id<>[current_item_id]
З/Ы: По поводу вашего предложения - в личку отписался, жду ответа.
Извиняюсь, немного не то написал, забылся...
Вот ваш код, только что у себя проверил + добавил проверку на пустоту:
Код: Выделить всё
if([221]<>"",(select count(*) from app_entity_21 where field_221=[221] and id<>[id]),0)
Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 06 мар 2025, 23:35
gayfullin.r
Теперь формула рабочая, благодарю!
Но затык в том, что это не работает с типом поля MySQL формула, при помощи которого и выдергивается идентификатор клиента из номера заказа. Есть мысли, как это обойти?
Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 07 мар 2025, 11:05
Fait
gayfullin.r писал(а): 06 мар 2025, 23:35
Теперь формула рабочая, благодарю!
Но затык в том, что это не работает с типом поля MySQL формула, при помощи которого и выдергивается идентификатор клиента из номера заказа. Есть мысли, как это обойти?
Надо встраивать ту формулу в эту, а на поле MySQL формула нет смысла ссылаться, так как оно динамическое и не хранит значений в БД.
Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 07 мар 2025, 11:08
gayfullin.r
Ясно, спасибо за наводку!


Re: Как выделить строку цветом при повторяющихся значениях поля?
Добавлено: 14 мар 2025, 17:00
gayfullin.r
В итоге MySQL запрос получился такой (может пригодится кому-то):
Код: Выделить всё
IF([158] <> "",
(SELECT COUNT(*)
FROM app_entity_21
WHERE SUBSTRING_INDEX(field_158, '-', 1) = SUBSTRING_INDEX([158], '-', 1)
AND id <> [id]),
0)
Далее заходим в "Настройка списка" -> "Выделить строку"
и настраиваем выделение цветом строки при значении ">0".