Добрый день, нужна помощь, есть трудности с построением такого фильтра:
Select * from "Contact"
LEFT JOIN "SysAdminUnit" ON "Contact"."Id" = "SysAdminUnit"."ContactId"
where "SysAdminUnit"."Id" IN
(Select "SysUserId" from "SysUserInRole" where "SysRoleId" IN
(Select FuncRoleId from SysFuncRoleInOrgRole))Для filterGroup, должно получится что-то вроде такого: (мой вариант не верный).
filterGroup.add("ContactList", Terrasoft.createExistsFilter("[SysAdminUnit:Contact].[SysUserInRole:SysUser].SysRole.[SysFuncRoleInOrgRole:FuncRole]"));
Нравится
1 комментарий
Лучший ответ
5 апреля 2019 17:49
Можно сначала вычитать все FuncRoleId из SysFuncRoleInOrgRole удовлетворяющие вашим условиям, а потом построить фильтр createColumnInFilterWithParameters, пример привел ниже (existsDocumentsCollection - массив с коллекциями которые нужно включить в запрос)
var filtersGroup = Terrasoft.createFilterGroup();
filtersGroup.logicalOperation = Terrasoft.LogicalOperatorType.AND;
var existsFilter = this.Terrasoft.createColumnInFilterWithParameters("Id",
existsDocumentsCollection);
existsFilter.comparisonType = this.Terrasoft.ComparisonType.EQUAL;
existsFilter.Name = "existsFilter";
filtersGroup.addItem(existsFilter);
filtersGroup.addItem(discontListFilter);
5 апреля 2019 17:49
Можно сначала вычитать все FuncRoleId из SysFuncRoleInOrgRole удовлетворяющие вашим условиям, а потом построить фильтр createColumnInFilterWithParameters, пример привел ниже (existsDocumentsCollection - массив с коллекциями которые нужно включить в запрос)
var filtersGroup = Terrasoft.createFilterGroup();
filtersGroup.logicalOperation = Terrasoft.LogicalOperatorType.AND;
var existsFilter = this.Terrasoft.createColumnInFilterWithParameters("Id",
existsDocumentsCollection);
existsFilter.comparisonType = this.Terrasoft.ComparisonType.EQUAL;
existsFilter.Name = "existsFilter";
filtersGroup.addItem(existsFilter);
filtersGroup.addItem(discontListFilter);
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать