Добрый день, нужна помощь, есть трудности с построением такого фильтра:
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);
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать