奥,是报表文件移动了指针,明白.
以下是引用fgk在2015-4-29 19:34:46的发言:
我测试的代码如下,报表预览窗口关一个出来一个,死循环了,而且达不到预期的效果,请指正,谢谢!
SELECT rmTemp
SCAN
t_num = rmTemp.t_quantity
FOR i=1 TO t_num
REPORT FORM frx\frxtest.frx PREVIEW
ENDFOR
ENDSCAN
我测试的代码如下,报表预览窗口关一个出来一个,死循环了,而且达不到预期的效果,请指正,谢谢!
SELECT rmTemp
SCAN
t_num = rmTemp.t_quantity
FOR i=1 TO t_num
REPORT FORM frx\frxtest.frx PREVIEW
ENDFOR
ENDSCAN
“死”循环是这样形成的:
1、report form ........中没有指定报表打印条件,所以VFP就会从第一条记录开始打印了记录末尾;
2、上述语句又在for.........endfor循环中,至少会被执行一次,假设t_num大于1,则会多次执行;
3、scan......endscan是从表的第一条记录开始循环执行到最后一条记录,所以其中的报表被打印了(记录数*t-num*记录数)次,造成了假“死”的现象。