JS循环中第15行的宏语句似乎没有注册到extract语句。当它返回带有所有三个帧号的#EANF#时,循环在17处循环结束并传递给POS_LOOP。 但是,如果我注释掉第11行(//),取消注释第10行,则将循环开始设置为16(第6行)并结束为16(第19行)。换句话说,通过传递for循环并强制帧到16号,提取返回$ 449,000(意味着我有正确的帧号),将帧号传递给POST_LOOP宏。 POST_LOOP继续从页面中提取所需的所有信息。 有一段时间我收到此错误消息“BadParameter:预期F =作为参数1,第2行(错误代码:-911)”。 所以我添加了第6行和第16行来强制一个数字并将!errorignore设置为YES。 我强制循环将所有变量打印到屏幕以及POST_LOOP中的PROMPTS。所有警报显示循环通过15-17循环,Frame_valid包含#EANF#。 PRE_LOOP将我带到网页,JS循环找到“工作”帧号,然后将其传递给POS_LOOP宏以进行提取。 Soooo为什么当我在语句“FRAME F = {{Frame_nb}}”+“\ n”中使用变量时它不起作用; ?
iimPlay('++AATEST_PRE_LOOP.iim');
//declarations
var framenumber;
var retcode;
var Frame_nb;
var fnb=(15*1);
var find_number = "CODE:";
find_number += "SET !ERRORIGNORE YES" + "\n";
find_number += "SET !EXTRACT NULL" + "\n";
//find_number += "FRAME F=16" + "\n";
find_number += "FRAME F={{Frame_nb}}" + "\n";
find_number += "TAG POS=1 TYPE=TD ATTR=TXT:High" + "\n";
find_number += "TAG POS=R1 TYPE=TD ATTR=ID:hiLP EXTRACT=TXT" + "\n";
for(; fnb <= 17; fnb++){
alert(fnb);
var Frame_nb = eval(fnb*1);
retcode=iimPlay(find_number);
var frame_valid = iimGetLastExtract(1);
alert(iimGetLastExtract(1));
alert(Frame_nb);
alert(frame_valid);
iimSet("framenumber",fnb);
iimSet("RetCode",retcode);
iimSet("extract",frame_valid);
//if extract was frame number than save frame number and play rest of macro
if (frame_valid !== "#EANF#")
{
var framenumber=fnb;
break;
}
}
iimPlay('++AATEST_POST_LOOP.iim');
由于