由于某种原因,DXL解释器没有考虑到我在for循环结束时递减i的事实。我试图通过更改" i"的值来浏览arrObj []数组。我有一些按钮增加(对于下一个对象)和减少(对于前一个对象)该值分别。使用while循环执行相同操作会导致应用程序崩溃。
是否有任何方法可以控制索引,或者DXL是否始终记住之前的值并将其递增(即使用户在代码中更改了它的值)。
这是我代码中的一个片段:
for i in 0:(iTotalObj-1) do
{
sAuxType = arrObj[i]."ObjectType"
sAuxNr = number(arrObj[i]) " "
sAuxObjTxt = arrObj[i]."Object Text"
print "\nAfter FOR:"i ""
if sAuxType == "Test-Case" then
{
set(testContent,"Index number: (" number(arrObj[i]) ") -> " arrObj[i]."Object Heading" "")
set(expectedResults, " ")
fillRow(sTesterName,sCfgSW,sCfgHW,arrObj[i])
block(dtbox)
}
if sAuxType == "Test-Step" then
{
set(testContent,"Index number: (" number(arrObj[i]) ") -> " arrObj[i]."Object Text" "")
set(expectedResults,richTextWithOle(arrObj[i]."ExpectedResult"))
fillRow(sTesterName,sCfgSW,sCfgHW,arrObj[i])
block(dtbox)
}
if sAuxType == "Test-Case-Description" then
{
set(testContent,"Index number: (" number(arrObj[i]) ") -> " arrObj[i]."Object Text" "")
set(expectedResults, "Please check the description throroughly")
fillRow(sTesterName,sCfgSW,sCfgHW,arrObj[i])
block(dtbox)
arrObj[i].("TestResult " iTR "") = "n/a"
arrObj[i].("FR " iTR "") = "n/a"
}
i--
print "\nAfter DECREMENT:"i ""
}
在输出框中,我将获得以下内容:
After FOR:0
After DECREMENT:-1
After FOR:1
After DECREMENT:0
After FOR:2
After DECREMENT:1
答案 0 :(得分:0)
对于那种类型的for循环,我相信DOORS强制i
到集合中的下一个值。你应该能够使用这种类型的循环:
for(i=0; i<(iTotalObj-1); i++) {
...
}
此循环允许您在循环内操作i
。