2016-05-04 2 views
0

Мне нужно сделать фильтр в определенном модуле и получить отфильтрованные элементы и перебрать их и выполнить какую-то операцию. проблема заключается в фильтрации не будет сделано, то не так, как следует:Модуль с возвратным фильтром в DXL

Filter SwTest = includes(attribute "aVerificationStrategy" ,"SwTest") 
Filter Implemented = (attribute "aObjectStatus" < "inReview") 
Filter SwTestReqsCASTLE = SwTest && Implemented 
Module m = srs_doc 
set(m, SwTestReqsCASTLE, accepted , rejected) 
filtering on OR ApplyFiltering(m) , i tried each as don't know difference ! 

так, что не так?

ответ

0

Прежде чем ответить на ваш основной вопрос, сначала позвольте мне ответить на ваш предполагаемый вопрос о различии между «фильтрацией» и «ApplyFiltering (m)». Разница заключается в том, что «filtering on» отображает текущий фильтр в окне модуля, что означает, что объекты отображаются либо скрыты в зависимости от фильтра. «ApplyFiltering (m)» применяет текущие настройки фильтра к проводнику модуля (область слева от ваших объектов, которая показывает иерархию). «фильтрация» показывает и скрывает объекты, а «ApplyFiltering (m)» отражает статус этих объектов в проводнике модулей.

А почему ваши фильтры не применяются, может быть несколько причин:

  1. Это хорошая практика, чтобы включить отфильтровывая, прежде чем устанавливать фильтры. Добавьте строку «отфильтровывать» до остальной части вашего кода.
  2. Ваш фильтр «Реализован» определен неправильно. DOORS увидит «inReview» в виде строки и проведет прямое сравнение со строковым значением вашего атрибута «aObjectStatus», чтобы определить, принят или отклонен объект. Это то, что вы намеревались?
  3. Какая переменная srs_doc? Если это строка, то вам нужно сделать call read(), share() или edit(), чтобы фактически открыть модуль . Если это переменная модуля, то эта строка верна.
  4. Я предполагаю, что «принятые» и «отклоненные» являются целыми числами, но если они не объявлены ранее, то они должны быть.
  5. Основываясь на первом абзаце в моем комментарии, ваша последняя строка должна читать «фильтрация»
  6. Является ли модуль, который вы хотите фильтровать, отображаться? Я понимаю, что это, вероятно, очевидно, но я сделал эту ошибку раньше, поэтому я подумал, что должен упомянуть об этом. Фильтр не может быть применен к модулю, который в настоящее время не отображается.

В качестве примечания, вы можете соединение вашего SwTest и внедренные фильтров без создания дополнительного переменного фильтра следующим образом:

Filter SwTestReqsCASTLE = includes(attribute "aVerificationStrategy", "SwTest") && (attribute "aObjectStatus" < "inReview") 

Я надеюсь, что некоторые, что помогает! Удачи, и дайте мне знать, если ни одно из вышеперечисленных вопросов не решит вашу проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^