ALV函数应用-LIST

这是个简单的例子,我们现在分析一下函数的参数的作用:

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '

[@more@]

这是个简单的例子,我们现在分析一下函数的参数的作用:

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'SET_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_STRUCTURE_NAME =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = T_FIELDCAT[]
IT_EXCLUDING = T_EXTAB
IT_SPECIAL_GROUPS = T_SLIS_SP_GROUP_ALV[]
IT_SORT = T_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = T_EVENTS[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_OUTTAB
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

1。 I_CALLBACK_PF_STATUS_SET = 'SET_STATUS'
该项设定ALV LIST的菜单,具体方法: FORM SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD'.
ENDFORM. "set_status
上面的USING部分是必要的,否则会出现系统错误。

2。I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
该项是实现对应菜单项以及你的双击等事件的功能,具体方法:
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
WRITE: 'double click'.
......
ENDCASE.
ENDFORM.
上面的USING参数也是必要的,还有就是要捕捉到系统的SY-UCOMM的值, 自己定义的直接用就可以了,但是系统的就需要自己调查。例子中的双击时间的UCOMM好像有不确定性,因为我和其他人使用的是不同的,但是效果一样,思考中。

3。IS_LAYOUT = W_LAYOUT
该项很重要,是对LIST输出样式的设定,里面玄机很多,下一讲继续。

4。IT_FIELDCAT = T_FIELDCAT[]
该项也很重要,你要在LIST里面显示的项目的名称以及输出的设定要在这里 编辑,示例如下:
CLEAR W_FIELDCAT.
W_FIELDCAT-FIELDNAME = 'CARRID'.
W_FIELDCAT-SELTEXT_M = '航空会社コード'.
W_FIELDCAT-COL_POS = 1.
APPEND W_FIELDCAT TO T_FIELDCAT.

5。 IT_EVENTS = T_EVENTS[]
该项目前了解到的就是设置LIST的抬头和结尾,可以把你想要输出的内容进项编辑,更新到相应的内表,然后调用函数:REUSE_ALV_COMMENTARY_WRITE,示例如下:
CLEAR: W_EVENT, T_EVENTS.
REFRESH T_EVENTS[].W_EVENT-NAME = 'TOP_OF_PAGE'.
W_EVENT-FORM = 'TOP_OF_PAGE'.
APPEND W_EVENT TO T_EVENTS.

下面是TOP_OF_PAGE的设定:
FORM TOP_OF_PAGE.DATA: LS_LINE TYPE SLIS_LISTHEADER.
CLEAR T_LIST_TOP_OF_PAGE.
REFRESH T_LIST_TOP_OF_PAGE[].CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = 'TOP_OF_PAGE'.
APPEND LS_LINE TO T_LIST_TOP_OF_PAGE.CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = T_LIST_TOP_OF_PAGE. ENDFORM. "top_of_page这样在表头就会输出:“TOP_OF_PAGE”。

6。 T_OUTTAB = T_OUTTAB
该项是LIST输出数据的来源,从数据表中取得的数据都保存在这个内部表里面。

关于ALV LIST先总结到这里,还有几个项目没有具体研究,待续。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/547380/viewspace-885773/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/547380/viewspace-885773/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值