如何在DXL脚本中使用枚举?

时间:2011-08-30 08:43:39

标签: rational-number ibm-doors

我想测试DOORs对象的枚举属性的值。如何才能做到这一点?我在哪里可以找到描述这样基本功能的DXL文档?

if (o."Progress" == 0) // This does NOT work
{
  // do something
}

4 个答案:

答案 0 :(得分:4)

所以经过两个星期和一个过期的赏金我终于成功了。 可以根据需要将枚举属性分配给int或字符串变量。但您必须分配给变量才能执行此类转换。当像我的例子中那样仅进行比较时,它不会被投射。所以这就是解决方案:

int tmp = o."Progress"
if (tmp == 0)
{
  // do something
}

tmp是一个字符串时,可以与枚举文字进行比较。

这很容易。不是吗? here我终于找到了所有你需要知道的DXL手册。

答案 1 :(得分:2)

您也可以

if(o."Progress" "" == "0")
{
   //do something
}

这会将属性值强制转换为字符串,并将其与字符串"0"

进行比较

答案 2 :(得分:2)

对于多值枚举,最佳方法是if (isMember(o."Progress", "0")) {。单枚举变量和多枚举变量的可能枚举被认为是字符串,因此Steve的解决方案是单枚举的最佳dxl方式。

答案 3 :(得分:-1)

如果您正在谈论"相关号码"可以从“编辑类型”框中分配,然后您需要首先获取枚举字符串在枚举中的位置,然后检索EnumName[k].value

我不是DXL的专家,所以找到我所知道的索引的唯一方法是循环1 : EnumName.size并且当你得到枚举字符串的匹配,使用该循环索引值来检索枚举"相关数字。"