小试牛刀,看看双击怎么产生次级报表
就拿VBPA来试水
代码如下:
REPORT ZSDR00123.
DATA :lt_vbpa type TABLE OF vbpa WITH HEADER LINE.
DATA :ls_vbpa type vbpa,
lv_chk type c.
START-OF-SELECTION.
SELECT * INTO TABLE lt_vbpa
FROM VBPA
WHERE VBELN LIKE '89000069%'.
END-OF-SELECTION.
LOOP AT lt_vbpa.
WRITE:/ lv_chk AS CHECKBOX,
sy-vline,lt_vbpa-vbeln,lt_vbpa-posnr.
HIDE:lt_vbpa-vbeln,lt_vbpa-posnr.
ENDLOOP.
AT LINE-SELECTION.
CHECK sy-lsind = 1.
WINDOW STARTING AT 23 10 ENDING AT 100 10.
WRITE : / '次级报表'.
WRITE : / lt_vbpa-vbeln,lt_vbpa-posnr.
在START-OF-SELECTION中读取要处理的数据到内表lt_vbpa
在END-OF-SELECTION中LOOP循环输出lt_vbpa-vbeln,lt_vbpa-posnr.
sy-vline:垂直线
HIDE:在报表中双击用HIDE定义的变量,则数据会保存到HIDE工作区中。HIDE不是输出到Output List中的WRITE语句,是紧跟在WRITE语句后面使用的语句。
AT LINE-SELECTION:双击报表中的一行或者按触发的事件。
sy-lsind:现有报表的索引,每当显示次级报表会加1.如果用sy-lsind = sy-lsind-1,则会次级报表会覆盖现有画面。
WINDOW STARTING AT 23 10 ENDING AT 100 10:
标准语句:WINDOW STARTING AT C1 R1 ENDING AT C2 R2
C1:次级报表屏幕距离现有画面左边距离
R1:次级报表屏幕距离现有画面上边距离
C2:次级报表屏幕长
R2:次级报表屏幕宽