我尝试使用另一个属性对象的某些条件来设置具有预先设置的枚举值{“”,“1”,“2”,“3”}的属性,类似于:
if ( o."attr1" = "AA" ) {
o."enumeratedAttr" = "1"
} else if (o."attr1" = "BB" ) {
o."enumeratedAttr" = "1"
} else {
o."enumeratedAttr" = "" //no change as default
}
但是,由于枚举属性将其元素作为DBE返回。我上面的脚本不起作用。那么如何在每种条件下设置/选择一个枚举值。感谢。
答案 0 :(得分:0)
好的,我会对此采取行动,我希望它有所帮助。
if ( o."attr1" = "AA" ) {
o."enumeratedAttr" = "1"
} else if (o."attr1" = "BB" ) {
o."enumeratedAttr" = "1"
} else {
o."enumeratedAttr" = "" //no change as default }
这不会将枚举作为您想要的类型。如果你想将Enum与一个字符串进行比较,你需要这样的东西:
if ( o."attr1" "" == "AA" ) {
o."enumeratedAttr" = "1"
} else if (o."attr1" "" == "BB" ) {
o."enumeratedAttr" = "1"
} else {
o."enumeratedAttr" = "" //no change as default }
您需要确保不将o。“enumeratedAttr”分配给对枚举类型无效的值 - 这将导致DXL错误。
在对象/属性调用之后添加引号(“”)可确保DOORS正在进行字符串到字符串比较。