Всем доброго времени суток.
Попробывала в разделе Проекты отфильтровать записи, чтобы получить список работ в состоянии "в планах" для Проектов в состоянии "в работе".
В результате в реестре стало пусто. Хотя такие работы есть.
Если попробовать мои две части фильтра отдельно, то я могу получить список проектов "в работе" и могу получить список всех работ "в планах". Но одновременно не получается.
В чем проблема?
Нравится
Видимо дело в том, что блок фильтрации воспринимает Проект и Работу как одну и ту же сущность, без учета того, что Работа есть подчиненный Проекту объект... поэтому выбрать можно или то, или другое, но никогда - вместе((
[update] в стандартных фильтрах в общем-то разграничены состояния проекта и состояния работ, например, но вместе действительно не удается профильтровать... интересная особенность дерева в реестре...
"Александр Кудряшов" написал:интересная особенность дерева в реестре
Да, интересная.
Но работать-то как, вот в чем вопрос? Ведь проектов целая куча, за ними необходимо следить!
В принципе, примерно понятно в каком направлении делать новый фильтр, но все же интересно, реализуется ли такой поиск стандартными средствами... так что присоединяюсь к вопросу;-)
Фильтр может выглядеть так:
Состояние = <Проект: В работе> или
Состояние = <Стадия: В планах>
Т.к. действительно состояния различны для различных типов элементов проекта. (Вас могут путать одинаковые названия, но если Вы обратитесь к справочнику "Состояния элементов..." - вам все станет понятно).
НО!
В случае если проект,например, в планах и стадия в планах, Вы все равно увидите этот проект, т.к. нам нужно отобразить стадию этого проекта, которая в планах.
Все это понятно: множества объединяются, а необходимо их пересекать. А вот само "пересечение" в имеющемся виде дает пустое множество.
Вот в области фильтрации есть возможность "группировать" фильтры.
Так если бы эта группировка означала "сначала выбираем проекты в работе", а потом из них "выбираем работы в состоянии в планах", вот тогда бы все у меня получилось.
А так как есть -никак.:sad:
Виктория, для решения конкретно этой задачи Вам необходимо создать в запросе sq_Project с помощью Terrasoft Администратор фильтр пользователя следующей структуры:
(exists (select ID from tbl_Project as ParentProjectFilter where ParentProjectFilter.EssenceType = :IsProject and ParentProjectFilter.ID = tbl_Project.ParentProjectID and ParentProjectFilter.StateID = :UserValue) )
Здесь последнее условие - это фильтр пользователя для справочника, который ссылается на ds_ProjectState.
Присоединяю пример подобного фильтра. Для удобства я создал запрос, идентичный sq_Project, который можно загрузить в базу без каких-либо негативных последствий: оригинальный sq_Project обновлен не будет. Нужный Вам фильтр имеет код StatesOfParentProject. Аналогичный фильтр необходимо создать в sq_Project.
Для применения нужной Вам фильтрации необходимо в созданном фильтре установить состояние родительского проекта и добавить стандартный фильтр по состоянию, в котором выбрать состояние для работы.
Единственное неудобство - из-за того, что в запросе используется UNION, в фильтрбилдере будет отображаться три одинаковых фильтра пользователя. Впрочем, на функциональность это не влияет, можно выбирать любой из них.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.