#ibm-doors
#ibm-doors
Вопрос:
Я пытаюсь получить значения в столбце «ID» DOORS, и в настоящее время я делаю это
string ostr=richtext_identifier(o)
Когда я пытаюсь напечатать ostr, в некоторых модулях я получаю только идентификатор (это то, что я хочу). Но в других модулях я получу значения типа «{rtf1 ansi ansicpg1256deff0 nouicompat{fonttbl{f0 fnilfcharset0 Times New Roman;}{f1fromanfcharset0 Times New Roman;}} {*generator Riched20 10.0.17134}viewkind4uc1 pard f0 fs20lang1033 SS_f1 fs24 100 par } » Это значение RTF, и мне интересно, какой наилучший способ удалить это форматирование и получить только значение.
Возможно, есть другой способ сделать это, о котором я тоже не думаю. Будем признательны за любую помощь.
Ответ №1:
Таким образом, столбец ID DOORS на самом деле является составным — DOORS создает его из атрибута уровня модуля ‘Prefix’ и атрибута уровня объекта ‘Absolute Number’.
Если вы хотите сохранить это значение в будущем, я бы сделал следующее (используя ваши переменные)
string ostr = ( module ( o ) )."Prefix" o."Absolute Number" ""
Это противоречит следующему, которое (несмотря на кажущийся допустимым атрибут в диалоговом окне вставки столбца) НЕ БУДЕТ РАБОТАТЬ.
string ostr = o."Object Identifier" ""
Надеюсь, это поможет!
Ответ на комментарий: Вам не должно требоваться имя модуля для работы кода. Я успешно протестировал следующее в DOORS 9.6.1.10:
Object o = current
string ostr = ( module ( o ) )."Prefix" o."Absolute Number" ""
print ostr
Ответ №2:
Другим решением является использование функции identifier, которая принимает объект в качестве входного параметра и возвращает идентификатор в виде простой (не RTF) строки:
Операция объявления идентификатора строки (Object o) Возвращает идентификатор объекта o в виде строки, который представляет собой комбинацию абсолютного числа и префикса модуля.
Оптимальное решение в некоторой степени зависит от вашего базового требования к получению идентификатора объекта.