endat中的时候,工作区中的值除了key字段,其他字段会全部变为默认值,字符型字段值全变为*,数值全部变为0: 而当跳出AT … END AT.语法块后,工作区内容恢复原样: 如图,由于这种特性,我们不将插入语句或赋值语句写在at endat之中,而是通过标记变量的方式解决,因为影响的只是工作区中的内容。 二、AT NEW、AT LA...
AT END OF comp2. ... ENDAT. AT LAST. ... ENDAT. ENDLOOP. AT FIRST :循环内表的第一行时触发执行的代码。只执行一次。 AT LAST :循环内表的最后一行数据时执行代码。即在LOOP 里把该执行的都执行完了才执行它。 AT NEW F :如果字段F 及F 的左侧全部字段的数据,与上一行数据不一致,则执行代码。
At first :仅内表的第一行. AT last:仅内表的最后一行. AT new <field>:以该field为标记,加上前面的字段,如果是新的记录,则进行; AT end of <field>:以该field为标记,加上前面的字段,如果它的下一行是新的记录,则进行. http://scnblogs.techweb.com.cn/tcsapbw/archives/386.html...
AT LAST. ... ENDAT. ENDLOOP. AT FIRST :循环内表的第一行时触发执行的代码。只执行一次。 AT LAST :循环内表的最后一行数据时执行代码。即在LOOP 里把该执行的都执行完了才执行它。 AT NEW F :如果字段F 及F 的左侧全部字段的数据,与上一行数据不一致,则执行代码。 就比如: AAA AAA AAB 那么在第...
3 使用at new, at first, at last, at end of的时候要注意:loop的时候不能加条件;at和endat之间不能使用loop into的working area。手动实现at new, at end of的时候,需要注意,容易出错,尤其是在at end of的时候。 4 一般情况下,更新数据库需要commit,但debug会自动commit,程序结束也会自动commit。
AT FIRST 是内表第一条数据执行 AT NEW F1 字段F1值与上一条数据比较有变化时执行 AT END OF F1 字段F1值与下一条数据比较有变化时执行 AT LAST 是内表最后执行一条数据执行 MODIFY语法: DELETE 和 WHERE语句一起用: ADJACENT DUPLICATE语句删除重复: ...
4、lt;f> ASSIGN LOCAL COPY OF MAIN TABLE FIELD (f) TO <f> ASSIGN LOCAL COPY OF INITAL LINE tabla TO <f>*-AT: AT END OF v1 AT NEW v1 AT FIRST AT LAST AT fg WITH fg1 AT LINE-SELECTION AT USER-COMMAND AT PFx AT SELECTION-SCREEN ON ps1 ON END OF s1 ON VALUE-REQUEST FOR ...
WRITE [AT [/][<pos>][(<len>)]] SY-ULINE. AT 后的格式规范,与在屏幕上定位 WRITE 输出中为 WRITE 语句说明的格式规范完全一样。如果没有格式规范,系统则开始新的一行,并用水平线填充该行。否则,只按指定输出水平线。 生成水平线的另一种方法,是在 WRITE 语句中键入恰当数量的连字符,如下所示: ...
at last.和 at first相反, at last是在读取最后一条记录的时候触发at new of p1.当一条记录指定字段的值和上一条记录的相应字段的值有改变时,触发该事件at end of p1.当一条记录指定字段的值和下一条记录的相应字段的值有改变时,触发该事件on change of it-p1 or it-p2.当指定字段与上一条字段有...
AT level<statementblock>ENDAT. 该语句只能在LOOP语句内部使用,其中行条件level有下列选项 FIRST 当前循环内表的第一行 LAST 当前循环内表的最后一行 NEW f 行组的开头,行组指的是字段f和f前面(即左边)的全部字段,如果行组中的任何字段内容不同于上一行,执行语句块中内容 ...