Добавив фільтр типу IN і в підзапиті чотири фільтри.

З головним фільтром все OK, а от до фільтрів підзапиту доступу отримати не вдається,-
говорить, що TestExpression.ExpressionSelectQuery null або не об'єкт.

Дивився поради в темі
Включение фильтра типа Exists.Достучаться до фильтров в Подзапросе :-)

Вставив "Dataset.SelectQuery.LoadUserFilters();"
очікуваного ефекту не отримав.

function edtContactIDOnPrepareSelectWindow(LookupDataControl, SelectWindow) {
        var Dataset             = LookupDataControl.DataField.LookupDataset;
        var UserType    = CIUEdit.UserType;
        var UserKind    = CIUEdit.UserKind;
//
        Dataset.SelectQuery.LoadUserFilters();
//
        var SelectQuery         = Dataset.SelectQuery;
        var     CIUFilter               =
                SelectQuery.Items(0).Filters.ItemsByCode('ConfigurationItemUser');
        EnableFilter(CIUFilter  ,'ConfigurationItemUser'        ,true);
       
        var SubSelectFilters =
                CIUFilter.TestExpression.ExpressionSelectQuery.Items(0).Filters;
        for (var i = 0; i SubSelectFilters.Count; i++) {
                MessageBox(SubSelectFilters.Items(i).Code);
        }
}

Нравится

2 комментария

Здається знайшов, - треба використовувати дещо інші члени для фільтра типу 'Include':

var ValuesExpressions = CIUFilter.ValuesExpressions;
var SubSelectFilters =
ValuesExpressions.Items(0).ExpressionSelectQuery.Items(0).Filters;

тоді конструкція

for (var i = 0; i < SubSelectFilters.Count; i++) {
     MessageBox(SubSelectFilters.Items(i).Code);
}

показує всі фільтри підзапиту і без виконання

Dataset.SelectQuery.LoadUserFilters();

Игорь, как раз работали над Вашим обращением. Рад что все получилось. Если будут дополнительные вопросы обращайтесь

Показать все комментарии