Terrasoft: переход в раздел с включением фильтра

В Terrasoft CRM есть встроенные функции для программного перехода в другой раздел, типа gotoworkspace(). Но эти функции используют фильтрацию только по одному или несколько ID.
Если после перехода в раздел требуется включение фильтрации по какому-то полю (фильтру), то это можно реализовать с помощью ниже приведенной функции FilterByFieldValue().

function amiPricesAllOnExecute(ActionMenuItem, Sender) {
var OfferingName = BaseGridArea.GridDataset.DisplayValues('OfferingID'); //сохраняем значение параметра, по которому будем фильтровать
var MainWindow = Connector.Attributes('MainWindow');
MainWindow.ScriptControl.Run('ShowWorkspace', 'wnd_OffMoveWorkspace'); //переходим в раздел wnd_OffMoveWorkspace
var WorkspaceWindow = MainWindow.ComponentsByName('wndWorkspace').Window;
FilterByFieldValue(WorkspaceWindow, 'OfferingName', OfferingName); //вызов функции фильтрации
var WorkspaceDataset = WorkspaceWindow.ComponentsByName('dlOffMove').Dataset;
RefreshDataset(WorkspaceDataset); //обновление раздела (аналог кнопки "Применить" в фильтрах)
}

function FilterByFieldValue(WorkspaceWindow, DataFieldName, DataFieldValue) {
var FBControl = WorkspaceWindow.ComponentsByName('fbcFilters');
var Dataset = FBControl.DatasetLink.Dataset;
FBControl.FiltersBuilder.ClearFilter();
var DataField = Dataset.DataFields.ItemsByName(DataFieldName);
var FBItem = FBControl.FiltersBuilder.RootItems.CreateItemByDataField(DataField);
FBItem.Value = DataFieldValue;
FBItem.Operator = totEqual;
FBControl.FiltersBuilder.RootItems.Add(FBItem);
EnableDatasetFilters(Dataset, false);
FBControl.ApplyFilter();
FBControl.Refresh();
}

Добавить комментарий

Ваш адрес email не будет опубликован.

Confirm that you are not a bot - select a man with raised hand: