Страница 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".