Я нашел здесь обсуждение

Моя задача из выпадающего списка быстрого фильтра убрать редко используемые нами фильтры по отображаемым колонкам.

Прошу прощения за глупый вопрос, но без этого не пройти вперед.

Я понимаю логику работы так. 

С разделом связан некоторый объект который обращается к таблице БД.

Он имеет внутри выгрузку данных таблицы бд, информацию какие поля выгружаемы и прочие свойства. Все эти параметры хранятся в DataGrid объекта. 

Теперь возвращаемся к обсуждению. Редко используемым полям советуют убрать свойство "Filtering Field" в DataGrid, но такого свойства в классе столбца EntitySchemaColumn нету. В дизайнере объекта через функцию "Исходный код" примера вызова свойства нет. 

  1. Есть ли моя ошибка в рассуждении?
  2. Как посоветуете сделать данную задачу?
  3. Есть ли актуальное обсуждение на данный момент?

Нравится

1 комментарий

То обсуждение относиться к версии 3.Х, которая с нынешней 7.Х не связана практически никак. Более актуальное обсуждение похожих вопросов было тут или тут. Скорее всего, нужно будет найти в коде место формирования списка колонок и для конкретного раздела внести туда дополнительную логику. См. в CustomFilterViewModelV2, похоже, это оно:

  function getSimpleFilterColumnList(filters, list) {
   list.clear();
   var columnList = {};
   var columnNames = [];
   var columns = this.entitySchema.columns;
   Terrasoft.each(columns, function(column) {
    if (column.dataValueType !== Terrasoft.DataValueType.GUID &&
     column.dataValueType !== Terrasoft.DataValueType.TIME &&
     column.dataValueType !== Terrasoft.DataValueType.BLOB &&
     column.dataValueType !== Terrasoft.DataValueType.IMAGELOOKUP &&
     column.usageType !== ConfigurationEnums.EntitySchemaColumnUsageType.None) {
     if (this.isColumnDeprecated(column)) {
      return;
     }
     columnNames.push({
      name: column.name,
      caption: column.caption
     });
    }
   }, this);
   var sortedColumnNames = columnNames.sort(function(a, b) {
    if (a.caption === b.caption) {
     return 0;
    } else {
     return a.caption > b.caption ? 1 : -1;
    }
   });
   Terrasoft.each(sortedColumnNames, function(item) {
    var column = columns[item.name];
    columnList[column.name] = {
     value: column.name,
     displayValue: column.caption,
     dataValueType: column.dataValueType,
     referenceSchemaName: column.referenceSchemaName
    };
   });
   list.loadAll(columnList);
  }

 

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

Добрый день!

Необходимо отфильтровать из кода, по кастомному полю раздел. Нашел QuickFilterModuleV2, но не могу никак разобраться как его использовать. Во время дебага из браузера удалось при вызове метода showQuickFilter отобразилось поле редактирования фильтра. Но в QuickFilterModuleV2 все методы являются protected или private, и к ним нет доступа.

Подскажите, пожалуйста, как правильно пользоваться данным функционалом.

Нравится

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

Здравствуйте, есть две темы, фильтрация раздела из другого раздела:
http://www.community.terrasoft.ru/forum/topic/12640

Фильтрация текущего раздела из текущего раздела:
http://www.community.terrasoft.ua/forum/topic/15943

"Мотков Илья" написал:

Здравствуйте, есть две темы, фильтрация раздела из другого раздела:
http://www.community.terrasoft.ru/forum/topic/12640

Фильтрация текущего раздела из текущего раздела:
http://www.community.terrasoft.ua/forum/topic/15943


Спасибо, обе темы видел.
Во вторую только сегодня добавили новый ответ, решение подходит, еще раз спасибо!

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