sap选择完表中数据后为什么还要清空表
select single * from makt where matnr = wa_items-matnr.
if sy-subrc = 0.
wa_items-maktx = makt-maktx.
endif.
clear makt. "这条语句,为什么要这样用,看别人的写法都是这样,但不知道不用又会出现什么状况,请详细点,谢谢
1、tables:makt的作用
如果程序里有 TABLES:MAKT.表示声明一个名字为MAKT的工作区,这样select single时就不需要加into,默认会把查询结果放入和表同名的工作区中(也就是事先声明的tables:makt),当然,用了tables:makt,也可以在select时加into,(into的作用就不解释了)。
2、clear makt的作用。
至于clear makt.,makt是一个工作区,它包含很多属性,先前已用select给makt的属性赋值了,clear就是清空makt工作区里所有属性的值。
3、什么时候需要用clear makt。
同一个工作区,可以被重复使用,重复赋值。
当一个工作区使用完了的时候,或者需要重新给其赋值时,就需要clear它(如clear makt.),但clear不是必需的,只是编程时一个好的习惯而已,如果你不clear它,在给makt重新赋值时,新值也会覆盖旧值。
需要注意的是我第3点的解释,说的不是很全面,但在大部分情况下是这样用的,有时要视特殊需求来决定是否一定要clear或一定不能clear。