...

Фильтрация объектов

Тема в разделе "Разработчикам", создана пользователем inteco, 18 апр 2018.

  1. inteco

    inteco Member

    Добрый день!

    Есть блок (BlockName) в контексте экземпляра процесса. У этого блока, среди прочих, есть поле объектного типа (FieldName).
    При интерактивном заполнении блока на форме задачи нужно ограничить выбор элементов по фильтру "Parent <> null".

    Как это сделать?
     
  2. arkarimov

    arkarimov Member

    Когда то с подобным сталкивался, вот как решил
    Код:
    //Фильтр свойства блока RouteOrder имя блока T3SBA1_03 имя переменной фильтруемой
    var cc1Settings = context.ForTablePart (x => x.RouteOrder).GetSettingsFor (x=>x.T3SBA1_03).As<EntitySettings> ();                   
    string sys = "41";
    string tip = "03";
    cc1Settings.FilterQuery = string.Format ("Tip ='{0}' and Sistema ='{1}'", tip, sys);
    cc1Settings.Save ();
     
  3. inteco

    inteco Member

    Вот так сделал:

    Код:
                var cc1Settings = context.ForTablePart (x => x.StatjyaZatrat).GetSettingsFor (x=>x.Zadachi).As<EntitySettings> ();                   
                cc1Settings.FilterQuery = "Parent <> null";
                cc1Settings.Save ();       
    
    Получил ошибку:
    "EleWise.ELMA.Model.Entities.ProcessContext.P_Test" не содержит определение для "StatjyaZatrat". Не удалось найти метод расширения "StatjyaZatrat", принимающий первый аргумент типа "EleWise.ELMA.Model.Entities.ProcessContext.P_Test" (пропущена директива using или ссылка на сборку?)

    Блок называется Zadachi, свойство в блоке StatjyaZatrat.
     
  4. arkarimov

    arkarimov Member

    Так я же наоборот писал в примере - в ForTablePart передавать блок, а в GetSettingsFor передавать статью.
     
  5. inteco

    inteco Member

    УРА!!!! Заработало!!!!
    Спасибо огромное!

    P.S. Эх, Семён Семёныч...
     
  6. inteco

    inteco Member

    И снова здрасте!
    Та же тема, но колонка теперь имеет булев тип. И свойства FilterQuery для нее нет.

    Кто подскажет как сделать фильтр по такой колонке для все строк где true?
     
  7. arkarimov

    arkarimov Member

    Боюсь что тема не та же, в предыдущих сообщениях мы делали так, чтобы человек из всего пула вариантов мог выбрать только определенные. Для булева типа делать фильтр вариантов ответа странно.
    Если хотите на пользовательской задаче дать ему возможность фильтровать таблицу, то тут у меня плохие новости, в блоке методов управления отображением строк нет, придется удалять все строки, оставлять только нужные, а те что были до фильтрации где-то сохранять
     
  8. inteco

    inteco Member

    Уточню.
    В первой зоне ответственности, в контекстном блоке, юзер расставляет "флажки" и отправляет задачу в следующую зону ответственности. А в следующей зоне ответственности, при открытии задачи, в блоке нужно показать только те строки, у которых были установлены флажки.
    Можно, конечно, копировать данные в новую таблицу и уже ее показать, но это как-то "криво", хотелось бы наложить фильтр.
     
  9. arkarimov

    arkarimov Member

    Как я уже писал, так наложить фильтр чтобы данные в таблице остались, но не показывались, невозможно, во всяком случае типовыми способами известными мне.
    Самое оптимальное в этом случае это как раз "кривое" решение с копированием данных из таблицы в таблицу.
     
  10. inteco

    inteco Member

    Спасибо.
     

Поделиться: