我想为check表创建一个循环。
如果其中一个Col3包含" 否"变量 a 将被填充" 否"
如果Col3的所有值=是,则变量a将是返回值是
Col1 depend isResolved
im1 SD10349 yes
im2 SD10349 no
im3 SD10349 yes
我的代码如下
var frel = new SCFile("screlation");
var q = "depend=\"SD10349\"";
var rc = frel.doSelect(q);
var a="";
while(rc==RC_SUCCESS){
switch(true){
case frel.isResolved=="yes":
a="yes";break;
case frel.isResolved=="no":
a="no";break;
}
rc=frel.getNext();
}
print(a);
但变量 a 始终返回是。欣赏任何有用的东西:)
此致 Okik
答案 0 :(得分:2)
在switch
语句中,switch
包含表达式参数,而不是表达式的可能输出。
尝试颠倒相同的
switch(frel.isResolved){ //expression as the parameter to switch
case "yes": //check the
a="yes";break;
case "no":
a="no";break;
default:
break;
}
或者只是将frel.isResolved
的值分配给a
(因为这是你正在做的事情)
a = frel.isResolved;
修改强>
如果你想在遇到no时立即停止
while( rc == RC_SUCCESS && a != "no" )
{
a = frel.isResolved;
rc = frel.getNext();
}
答案 1 :(得分:2)
这应该这样做:
var frel = new SCFile("screlation");
var q = "depend=\"SD10349\"";
var rc = frel.doSelect(q);
var a="";
while(rc==RC_SUCCESS){
a = (frel.isResolved=="yes")?"yes":"no"
if(a=="no")break;
rc=frel.getNext();
}
print(a);
}
答案 2 :(得分:0)
这里的问题是你没有清除以前的值。清除以前的值。在第一种情况下,将一个值设为null或为空。
在rc = frel.getNext()之后;语句在进入下一个循环之前清除变量值。
a.val( '');