在清单屏幕(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: carrier TYPE spfli-carrid,
connection TYPE spfli-connid.
虽然我们可以通过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: carrier TYPE spfli-carrid,
connection TYPE spfli-connid.
START-OF-SELECTION.
SELECT carrid connid
FROM spfli
INTO (carrier, connection).
WRITE: / carrier HOTSPOT, connection HOTSPOT.
HIDE: carrier, connection.
ENDSELECT.
AT LINE-SELECTION.
SET PARAMETER ID: 'CAR' FIELD carrier,
'CON' FIELD connection.
CALL TRANSACTION 'DEMO_TRANSACTION'.