0
Голосовать

Фильтр по реквизиту, статус Выбран или Не выбран

Создано:
Метки записи:

Как организовать фильтр в динамической группе "Не выбран реквизит Страна" раздела "Компании"?

Сделать динамическую группу "Выбран реквизит Страна" получается, вот так:

Компания: Страна равно Россия или
Компания: Страна равно Украина или
Компания: Страна равно Казахстан или
Компания: Страна равно Туркменистан и т.п.

Но это не дело...

Помогите! Как в фильтре пользоватся статусом Выбран, не Выбран?

Комментарии

Кихтенко Андрей
Дмитрий Кропачев пишет:
Как организовать фильтр в динамической группе "Не выбран реквизит Страна" раздела "Компании"?

Сделать динамическую группу "Выбран реквизит Страна" получается, вот так:

Компания: Страна равно Россия или
Компания: Страна равно Украина или
Компания: Страна равно Казахстан или
Компания: Страна равно Туркменистан и т.п.

Но это не дело...

Помогите! Как в фильтре пользоватся статусом Выбран, не Выбран?

Создайте булевый фильтр с таким текстом:

(((cm_Company.Country_id is null) and (0 #SIGNVALUE#)) or
((cm_Company.Country_id is not null) and (1 #SIGNVALUE#)))

Non noceo.

Дмитрий Кропачев
Кихтенко Андрей пишет:
[
Создайте булевый фильтр с таким текстом:
(((cm_Company.Country_id is null) and (0 #SIGNVALUE#)) or
((cm_Company.Country_id is not null) and (1 #SIGNVALUE#)))

Спасибо со странами работает.

А как это будет выглядеть для Отрасли?

Я пробую вот так , не получается... :(

(((cm_Company.id in (Select Company_id From cm_CompanyActivity where industry_id is null)
) and (0 #SIGNVALUE#)) or
((cm_Company.id in (Select Company_id From cm_CompanyActivity where industry_id is not null))
and (1 #SIGNVALUE#)))

P.S.: Может я и бред написал, но мы только учимся... ;)

Кихтенко Андрей

Может поменять на:
(((cm_Company.id in (Select Company_id From cm_CompanyActivity where industry_id is null)
) and (0 #SIGNVALUE#)) or
((cm_Company.id not in (Select Company_id From cm_CompanyActivity where industry_id is null))
and (1 #SIGNVALUE#)))
?

Non noceo.

Дмитрий Кропачев
Кихтенко Андрей пишет:
Может поменять на:
(((cm_Company.id in (Select Company_id From cm_CompanyActivity where industry_id is null)
) and (0 #SIGNVALUE#)) or
((cm_Company.id not in (Select Company_id From cm_CompanyActivity where industry_id is null))
and (1 #SIGNVALUE#)))
?

Спасибо, так работает. :)

Дмитрий Кропачев
Кихтенко Андрей пишет:
Может поменять на:
(((cm_Company.id in (Select Company_id From cm_CompanyActivity where industry_id is null)
) and (0 #SIGNVALUE#)) or
((cm_Company.id not in (Select Company_id From cm_CompanyActivity where industry_id is null))
and (1 #SIGNVALUE#)))
?

Уже ошибки не говорит.
Но! Сейчас True работает, все у которых выбрана отрасль фильтрует, а вот False не фильтрует. :(

Дмитрий Кропачев
Кихтенко Андрей пишет:
Может поменять на:
(((cm_Company.id in (Select Company_id From cm_CompanyActivity where industry_id is null)
) and (0 #SIGNVALUE#)) or
((cm_Company.id not in (Select Company_id From cm_CompanyActivity where industry_id is null))
and (1 #SIGNVALUE#)))
?

Как оказалось не фильтрует даже выбранные, т.е. не True не False не работают.
При True выводит все записи и с выбраными отраслями и не выбраными, при False нет ни одной записи вообще.

Кихтенко Андрей

Используйте такой фильтр:

((
(not exists (SELECT company_id FROM cm_companyactivity WHERE company_id = cm_company.id))
and (0 #SIGNVALUE#)) or
(
(exists (SELECT company_id FROM cm_companyactivity WHERE company_id = cm_company.id))
and (1 #SIGNVALUE#)))
 

Non noceo.

Головин Леонид Викторович

Давно пора сделать системную возможность отбирать поля с пустыми записями! А то я тоже сексом занимаюсь :( с подобными выборками и написанием спецфильтров.

Ничто не является хорошим или плохим, все зависит от того, как мы смотрим на вещи

Валентин Феденюк

Ребята! Делайте фильтр по настраиваемому списку. А список формируйте так:

select id, Name from cm_Country
union
select 0 as id, 'Не выбрано' as Name

И фильтруйте
IsNull(Country_id, 0) #SIGNVALUE#

Головин Леонид Викторович

Отлично! Спасибо, Валентин, совет работает! То что давно ждали большевики свершилось :) И Как просто.

Но нет предела совершенству. После модификации фильтра предложенным способом записи в списке стран выводятся в физическом порядке :(, хотел их отсортировать в алфавитном и сдела так

select 0 as id, ' Не выбрано' as Name
union
select id, Name from cm_Country order by Name

вроде работает! Спасибо за совет!

Ничто не является хорошим или плохим, все зависит от того, как мы смотрим на вещи

Ольга Молчанова

Рады, что проблема решилась! :)

)