我想为检查表创建一个循环。
如果Col3中的一个包含“no”变量,则将填充“no”
如果Col3的所有值= yes,则变量a将返回值yes
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总是返回yes。感谢任何帮助:)
此致,Okik
这应该这样做:
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);
}
在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();
}
这里的问题是你没有清除以前的值。清除以前的值。在第一种情况下,将值设为null或为空。
在rc = frel.getNext()之后;语句在转到下一个循环之前清除变量值。
a.val( '');