首页 > 解决方案 > 如何在 DOORS 中使用 DXL 获取条形 RTF 格式并获取实际字符串值?

问题描述

我正在尝试获取 DOORS 的“ID”列中的值,我目前正在执行此
字符串 ostr=richtext_identifier(o)

当我尝试打印 ostr 时,在某些模块中我只得到 ID(这就是我想要的)。但在其他模块中,我会得到类似 "{\rtf1\ansi\ansicpg1256\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}{\f1\froman\fcharset0 Times New Roman;}} { *\generator Riched20 10.0.17134}\viewkind4\uc1 \pard\f0\fs20\lang1033 SS_\f1\fs24 100\par } " 这是 RTF 值,我想知道最好的方法是去除这种格式并得到只是价值。

也许还有另一种方法可以解决这个问题,我也没有想到。任何帮助,将不胜感激。

标签: ibm-doors

解决方案


所以 DOORS 的 ID 列实际上是一个组合——DOORS 是由模块级属性“前缀”和对象级属性“绝对编号”构建的。

如果您希望将来获取此值,我会执行以下操作(使用您的变量)

string ostr = ( module ( o ) )."Prefix" o."Absolute Number" ""

这与以下内容相反,后者(尽管在插入列对话框中似乎是一个有效的属性)WILL NOT WORK

string ostr = o."Object Identifier" ""

希望这可以帮助!

评论回复:您不应该需要模块名称才能使代码正常工作。我在 DOORS 9.6.1.10 上成功测试了以下内容:

Object o = current

string ostr = ( module ( o ) )."Prefix" o."Absolute Number" ""

print ostr

推荐阅读