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

Rational number 如何在DXL脚本中使用枚举?,rational-number,ibm-doors,Rational Number,Ibm Doors,我想测试DOORs对象的枚举属性的值。如何做到这一点?我在哪里可以找到描述这种基本功能的DXL文档 if (o."Progress" == 0) // This does NOT work { // do something } 所以在两个星期和过期的赏金之后,我终于成功了。 可以根据需要将枚举属性分配给int或string变量。但是您必须指定一个变量来执行这种转换。它不是像我的例子中那样进行简单的比较时铸造的。因此,解决方案来了: int tmp = o."Progress" if (t

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

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

所以在两个星期和过期的赏金之后,我终于成功了。 可以根据需要将枚举属性分配给int或string变量。但是您必须指定一个变量来执行这种转换。它不是像我的例子中那样进行简单的比较时铸造的。因此,解决方案来了:

int tmp = o."Progress"
if (tmp == 0)
{
  // do something
}
tmp
是字符串时,可以与枚举文本进行比较

那很容易。不是吗?我终于找到了有关DXL手册的所有您需要了解的信息。

您也可以这样做

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

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

进行比较。如果您谈论的是可从“编辑类型”框中分配的“相关编号”,则首先需要获取枚举字符串在枚举中的位置,然后检索
枚举名[k]。值


我不是DXL方面的专家,所以找到我知道的索引的唯一方法是循环使用
1:EnumName.size
,当您与枚举字符串匹配时,使用该循环索引值检索枚举“相关编号”。

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

哇,我从未想到会遇到一种如此奇特的语言,以至于stackoverflow无法闭上数千个嘴巴。不幸的是,dxl参考手册没有解释n非常详细。特别是,在尝试实现与您尝试的相同效果的同时,我在这里搜索并找到解决方案之前浏览了手册。如果手册包含提示,最好在其中添加章节号。无论如何,感谢您的问题和解决方案!这正是我要寻找的!谢谢。