在清单屏幕(List)中,支持多级List,在AT LINE-SELECTION事件中,通过WRITE语句可以产生子List,在这个过程中,我们通常都需要判断用户是通过点击上级List中的哪个项目来引发AT LINE-SELECTION事件的。
虽然我们可以通过GET FIELD语句或是sy-cucol sy-curow等来得到用户点击的位置之后再使用READ LINE语句来取得需要的数据,但是最简单的方法还是使用HIDE语句。
HIDE语句会将指定的数据保存在一个全局数据区域中,当用户点击清单中的某行从而引发AT LINE-SELECTION事件时,系统会自动从全局数据区域中取得保存的数据放入变量中,从而在AT LINE-SELECTION事件中可以直接判断变量的值来进行处理。
需要注意的,HIDE语句保存的数据与行有关,所以,HIDE语句与相关的WRITE语句之间不能有换行出现,否则会导致错误。例如:
WRITE: wa-werks, /.
HIDE: wa-werks, wa-name1.
下面是一个使用HIDE的简单示例:
DATA: it_tab TYPE STANDARD TABLE OF t001w WITH HEADER LINE.
START-OF-SELECTION.
SELECT * INTO TABLE it_tab FROM t001w.
LOOP AT it_tab.
WRITE: / it_tab-werks.
HIDE: it_tab-werks, it_tab-name1(20).
ENDLOOP.
AT LINE-SELECTION.
WRITE: it_tab-werks, it_tab-name1, /.
虽然我们可以通过GET FIELD语句或是sy-cucol sy-curow等来得到用户点击的位置之后再使用READ LINE语句来取得需要的数据,但是最简单的方法还是使用HIDE语句。
HIDE语句会将指定的数据保存在一个全局数据区域中,当用户点击清单中的某行从而引发AT LINE-SELECTION事件时,系统会自动从全局数据区域中取得保存的数据放入变量中,从而在AT LINE-SELECTION事件中可以直接判断变量的值来进行处理。
需要注意的,HIDE语句保存的数据与行有关,所以,HIDE语句与相关的WRITE语句之间不能有换行出现,否则会导致错误。例如:
WRITE: wa-werks, /.
HIDE: wa-werks, wa-name1.
下面是一个使用HIDE的简单示例:
DATA: it_tab TYPE STANDARD TABLE OF t001w WITH HEADER LINE.
START-OF-SELECTION.
SELECT * INTO TABLE it_tab FROM t001w.
LOOP AT it_tab.
WRITE: / it_tab-werks.
HIDE: it_tab-werks, it_tab-name1(20).
ENDLOOP.
AT LINE-SELECTION.
WRITE: it_tab-werks, it_tab-name1, /.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/634491/viewspace-211653/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/634491/viewspace-211653/