作业帮 > 综合 > 作业

abap里面的AT USER-COMMAND事件到底怎么用啊.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 15:41:36
abap里面的AT USER-COMMAND事件到底怎么用啊.
SELECTION-SCREEN PUSHBUTTON /1(20) PUBU1 USER-COMMAND ABCD.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN PUSHBUTTON /1(20) PUBU2 USER-COMMAND ABCE.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'ABCD'.
MESSAGE I005(MsgClass) WITH '111'.
WHEN 'ABCE'.
MESSAGE I005(MsgClass) WITH '222'.
WHEN OTHERS.
MESSAGE I005(MsgClass) WITH '333'.
ENDCASE.
上面两个按钮怎么点都没反应啊,上面的代码怎么改一下可以执行CASE和WHEN里面的语句?
把AT USER-COMMAND.换成AT SELECTION-SCREEN .
AT SELECTION-SCREEN .是选择屏幕的PAI事件.
再问: 嗯,AT SELECTION-SCREEN 的用法我知道,我只是想知道这个AT USER-COMMAND到底应该怎么用的?
再答: AT USER-COMMAND 是列表交互事件,它实现的前提条件是自定义的GUI状态和用户行为的接收;给你一个列表交互示例,自己多DEBUG就明白了: 注:SET PF-STATUS 'TEST' EXCLUDING 'PICK'.这句话中的TEST是GUI状态(就是你指的工具栏和菜单栏)的名字,需要新建,然后在GUI状态-应用工具条中添加五个按钮,功能代码分别为FC01~FC05. REPORT Z_LIST_AT_USER_COMMAND. START-OF-SELECTION. WRITE: 'Basic List', / 'SY-LSIND: ', sy-lsind. TOP-OF-PAGE. WRITE: 'Top-of-Page'. ULINE. TOP-OF-PAGE DURING LINE-SELECTION. CASE sy-pfkey. WHEN 'TEST'. WRITE 'Self-defined GUI for Function Codes'. ULINE. ENDCASE. AT LINE-SELECTION. SET PF-STATUS 'TEST' EXCLUDING 'PICK'. PERFORM out. sy-lsind = sy-lsind - 1. AT USER-COMMAND. CASE sy-ucomm. WHEN 'FC01'. PERFORM out. WRITE / 'Button Fun 1 was pressed'. WHEN 'FC02'. PERFORM out. WRITE / 'Button Fun 2 was pressed'. WHEN 'FC03'. PERFORM out. WRITE / 'Button Fun 3 was pressed'. WHEN 'FC04'. PERFORM out. WRITE / 'Button Fun 4 was pressed'. WHEN 'FC05'. PERFORM out. WRITE / 'Button Fun 5 was pressed'. ENDCASE. sy-lsind = sy-lsind - 1. *&---------------------------------------------------------------------* *& Form out *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM out. WRITE: 'Secondary List', / 'SY-LSIND: ', sy-lsind, / 'SY-PFKEY: ', sy-pfkey. ENDFORM. "out
再问: 谢谢回答!我现在就把这个问题搞清楚。。