Здравствуйте, пожалуйста помогите как можно отфильтровать схему Employee.
Надо вывести все Сотрудники которые являются Supervisor - ом?
Я пробовал с помощью filtrGroup но к сожалению у меня не получился.
Нравится
Здравствуйте,
Рекомендуем вам ознакомиться с этой статьей на Академии, в которой должны быть инструкции по вашему запросу.
Если данная статья не предоставит нужного ответа, просьба более детально описать, что именно и где вы пытаетесь отфильтровать (желательно со скриншотами), чтобы мы смогли предоставить наиболее подходящее решение.
Mira Dmitruk,
На карточке у меня есть два справочника Подразделение (SysAdminUnit) и Сотрудник (Employee). Когда из Подразделение выбираем значение например Administrator, справочник Сотрудник надо отфильтровать и отображалась все сотрудники которые являются Администратором.
В SQL Я сделал это:
select * from "Employee" c join "SysAdminUnit" s on
c."ContactId" = s."ContactId" join "SysAdminUnitInRole" sys on
sys."SysAdminUnitRoleId" = '4b513fa7-40e9-40e7-8fbb-085f90ea2423' and
sys."SysAdminUnitId" = s."Id"
Теперь надо всё это реализовать через атрибут и Terrasoft.filtrGroup но к сожалению не получился.
На карточке у меня есть два справочника Подразделение (SysAdminUnit) и Сотрудник (Employee). Когда из Подразделение выбираем значение например Administrator, справочник Сотрудник надо отфильтровать и отображалась все сотрудники которые являются Администратором.
В SQL Я сделал это:
select * from "Employee" c join "SysAdminUnit" s on
c."ContactId" = s."ContactId" join "SysAdminUnitInRole" sys on
sys."SysAdminUnitRoleId" = '4b513fa7-40e9-40e7-8fbb-085f90ea2423' and
sys."SysAdminUnitId" = s."Id"
Теперь надо всё это реализовать через атрибут и Terrasoft.filtrGroup но к сожалению не получился.
Добрый день.
Я реализовывала подобную функциональность следующим образом (в моем примере фильтруются данные из таблицы Contact):
attributes: {
"Responsible": {
"dataValueType": Terrasoft.DataValueType.LOOKUP,
"lookupListConfig": {
"filter": function() {
return this.responsibleManagersFilters();
}
}
}
}
methods: {
responsibleManagersFilters: function() {
var filterGroup1 = new Terrasoft.createFilterGroup();
filterGroup1.add("Account", Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL,
"Account",
EWBConfigurationConstants.Accounts.AccountId.EastWestBiopharma));
var filterGroup2 = new Terrasoft.createFilterGroup();
filterGroup2.logicalOperation = Terrasoft.LogicalOperatorType.OR;
filterGroup2.add("EmployeeDatabaseAndPathologist", Terrasoft.createColumnInFilterWithParameters(
"Department",
[EWBConfigurationConstants.Contacts.Department.Database,
EWBConfigurationConstants.Contacts.Department.Pathologists]));
filterGroup2.add("ExistsInSysRole", Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL,
"[SysAdminUnit:Contact].[SysUserInRole:SysUser].SysRole",
EWBConfigurationConstants.Users.SysRole.ResponsibleForPatientInfo));
filterGroup1.add(filterGroup2);
return filterGroup1;
}
}
Creatio,
В данном случае EWBConfigurationConstants не имеет значения, это всего лишь способ получить нужные данные.
В вашем случае вы можете использовать всё что нужно, от this.get("ColumnValue") до хардкода нужного значение "value"
Creatio,
Дима Вам выше уже ответил.
В моем случае - это схема, которая содержит константные значения. Вынесла в отдельную схему, потому что они используются в разных скриптах. Также, если потом нужно будет поменять это значение, удобно изменить в одном месте централизовано.