1
Фильтр поля связи
Автор Александр Jet, 17 апр. 2018 15:04
Сообщений в теме: 10
#1
Отправлено 17 Апрель 2018 - 15:04
Можно ли отфильтровать выпадающий список поля связи по нескольким параметрам?
Нужно чтобы выводились значения, которые:
- видны по фильтру ААА
- у которых Поле 1 = $line['Поле 123']
Вариант с созданием общей таблицы не подходит, так как получается слишком громоздкая конструкция для связи трех таблиц..
Нужно чтобы выводились значения, которые:
- видны по фильтру ААА
- у которых Поле 1 = $line['Поле 123']
Вариант с созданием общей таблицы не подходит, так как получается слишком громоздкая конструкция для связи трех таблиц..
#2
Отправлено 18 Апрель 2018 - 09:07
Создайте еще один фильтр где добавьте эти условия и укажите его в настройках поля связи.
#3
Отправлено 19 Апрель 2018 - 19:15
В таблице заявки есть два поля типа связь: Категория услуги 4461 и Услуга 4471, которые ведут в две разные таблицы. В первом поле выводятся все категории, во втором должны выйти услуги выбранной категории.
В таблице Услуги 461 я создал фильтр со следующим кодом:
Фильтр должен выводить в поле Услуга таблицы Заявки только те услуги, у которых поле Категория 10451 = $line['Категория услуги']['Наименование категории'].
При сохранении фильтра выходит ошибка.
В таблице Услуги 461 я создал фильтр со следующим кодом:
`Категория услуги` = (SELECT id FROM ".DATA_TABLE."461 WHERE f10451 = $line['Категория услуги']['Наименование категории']) //10451 поле Категория в таблице Услуги, в которой хранится категория услуги
Фильтр должен выводить в поле Услуга таблицы Заявки только те услуги, у которых поле Категория 10451 = $line['Категория услуги']['Наименование категории'].
При сохранении фильтра выходит ошибка.
#4
Отправлено 20 Апрель 2018 - 09:59
В условии фильтра нельзя использовать $line - это не вычисление. Только имена полей в обратном апострофе `. Но поле из связанной таблицы задать нельзя.
#5
Отправлено 18 Июль 2018 - 14:54
Сделал следующее:
Фильтр вставляю в таблицу Услуги, по идее его нужно будет выбрать в настройках поля Услуга таблицы Заявки.
531 - таблица Категории услуг
10441 - поле Наименование категории таблицы Категории услуг
541 - таблица Услуги
10521 - поле Категория услуги таблицы Услуги (связь с таблицей 531)
10531 - поле Наименование услуги таблицы Услуги
561 - таблица Заявки
10681 - поле Категория таблицы Заявки (связь с таблицей 531)
10691 - поле Услуга таблицы Заявки (связь с таблицей 541)
`Услуга` IN (SELECT f_data541.id FROM f_data541 LEFT JOIN f_data531 on f_data531.id = f_data541.f10521 WHERE f_data541.f10521 = f_data561.f10681)
Фильтр вставляю в таблицу Услуги, по идее его нужно будет выбрать в настройках поля Услуга таблицы Заявки.
531 - таблица Категории услуг
10441 - поле Наименование категории таблицы Категории услуг
541 - таблица Услуги
10521 - поле Категория услуги таблицы Услуги (связь с таблицей 531)
10531 - поле Наименование услуги таблицы Услуги
561 - таблица Заявки
10681 - поле Категория таблицы Заявки (связь с таблицей 531)
10691 - поле Услуга таблицы Заявки (связь с таблицей 541)
#6
Отправлено 19 Июль 2018 - 12:55
Александр Jet (18 Июль 2018 - 14:54) писал:
Сделал следующее:
Забыл написать) код не работает, выдает ошибку при сохранении.
Правильно ли я понял, для того чтобы отфильтровать выпадающий список поля связи Услуга по полю Категория в таблице Заявки, нужно создать фильтр в таблице Услуги и выбрать его в настройках поля связи Услуга?
#7
Отправлено 19 Июль 2018 - 14:13
Если вам нужен динамический фильтр по полю (т.е. вначале выбрали Категорию и затем поле связи Услуга должно по нему отфильтроваться), то вам не нужно создавать стандартный фильтр, а просто выбрать в настройках фильтра поля связи "по полю Категория". Если я конечно правильно понял вашу задачу.
#8
Отправлено 19 Июль 2018 - 21:13
CbCoder (19 Июль 2018 - 14:13) писал:
Если вам нужен динамический фильтр по полю (т.е. вначале выбрали Категорию и затем поле связи Услуга должно по нему отфильтроваться), то вам не нужно создавать стандартный фильтр, а просто выбрать в настройках фильтра поля связи "по полю Категория". Если я конечно правильно понял вашу задачу.
Только помимо стандартных настроек фильтра в поле связи, я хочу чтобы применялись дополнительные настройки, как я писал в начале темы, что-то вроде:
{стандартные настройки фильтра, задаваемые в поле связи} and `Кто добавил` = {текущий}
Если в настройках поля связи выбрать фильтр "по полю Категория" то будут видны вообще все строки Услуг с выбранной категорией. При этом будут отображаться даже те строки, к которым у пользователя доступа нет.
Если же наоборот, в настройках поля выбрать фильтр "по умолчанию" то отобразятся все строки Услуг, доступные пользователю, но без фильтрации по полю Категория. Мне нужно совместить оба эти условия.
Что в этом случае писать в фильтре вместо {стандартные настройки фильтра, задаваемые в поле связи} и где этот фильтр сохранять?
#9
Отправлено 20 Июль 2018 - 09:48
Цитата
Если в настройках поля связи выбрать фильтр "по полю Категория" то будут видны вообще все строки Услуг с выбранной категорией. При этом будут отображаться даже те строки, к которым у пользователя доступа нет.
Возможно это как раз баг, т.к. по идее такого быть не должно (пользователь в любом случае не должен видеть строки, к которым у него доступа нет). Если такое действительно имеет место, напишите заявку в техподдержку с ссылкой на мое сообщение. Даже если вы выбрали фильтр по полю (а не "по умолчанию"), кроме фильтрации по полю должна также идти и фильтрация по доступу, автоматически.
#10
Отправлено 20 Июль 2018 - 13:25
CbCoder (20 Июль 2018 - 09:48) писал:
Если такое действительно имеет место, напишите заявку в техподдержку с ссылкой на мое сообщение.
CbCoder (20 Июль 2018 - 09:48) писал:
Даже если вы выбрали фильтр по полю (а не "по умолчанию"), кроме фильтрации по полю должна также идти и фильтрация по доступу, автоматически.
#11
Отправлено 20 Июль 2018 - 17:08
Так не создать такой фильтр, в том и дело. Это на уровне движка только можно реализовать.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных