ABAP如何在选择屏幕上定义按钮

在选择屏幕上定义三个按钮,分别功能是显示自定义数据,删除自定义数据,显示数据库表数据,当选择数据库表数据时,选中行,将该行能够保存到自定义的表中。当选中删除按钮时,选中该... 在选择屏幕上定义三个按钮,分别功能是显示 自定义数据,删除自定义数据 ,显示 数据库表数据 ,
当选择数据 库表数据 时,选中行,将该行能够保存到自定义的表中。
当选中删除按钮时,选中该 行,从自定义表中删除。
应该如何实现????在ALV的STATUS里定义还是在选择屏幕里?
展开
 我来答
百度网友a04975e
2013-08-02 · TA获得超过777个赞
知道小有建树答主
回答量:698
采纳率:0%
帮助的人:310万
展开全部

普通的按钮是在GUI STATUS里完成的 要去SE80找到程序创建新的GUI进行创建,比如设置GUI名为‘0010’。创建如图:


设置GUI按钮如图:

你可以在项目1-7里面填写要设置的按钮代码,在图中EXTRACT的位置填写描述,按照你的要求是:显示自定义数据,删除自定义数据 ,显示 数据库表数据;在上图分别填写DISPLAY1,DELE1和DISPLAY2,保存后传输。具体的调用有两种形式,楼主你问的是ALV的调用,但是这里我两种都列出来供参考。

1.进行普通调用的时候(具体怎么调用下面详细说明),代码如下:

     END-OF-SELECTION.
        SET PF-STATUS ‘0010’

成功的话屏幕上会有三个按钮,分别显示DISPLAY1,DELETE1和DISPLAY,你可以在AT USER-COMMAND 里面使用 以下语句进行功能定义:

AT USER-COMMAND.
CASE SY-UCOMM.
  WHEN 'DISPLAY1'.
  "执行显示自定义数据的代码
  WHEN 'DELETE1'.
  "执行删除自定义数据的代码
  WHEN 'DISPLAY2'.
  "执行显示数据库表数据的的代码
ENDCASE.

2.与普通调用不同,ALV要建立FORM动态调用,如下:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM = SY-REPID
       I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS' "设定使用的GUI STATUS
       I_CALLBACK_USER_COMMAND = 'USER_COMMAND'   "用户触发命令定义
       I_STRUCTURE_NAME = 'MAKT'
    TABLES
       T_OUTTAB = ITAB
    EXCEPTIONS
       PROGRAM_ERROR = 1
       OTHERS = 2.

上述代码关于GUI STATUS的说明如下:

   I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

这里的SET_PF_STATUS就是需要你动态建立的FORM名,FORM如下:

FORM set_pf_status USING rt_extab TYPE slis_t_extab.
  SET PF-STATUS '0010'.   "0010为创建了三个定义按钮的GUI STATUS
ENDFORM. "Set_pf_status

关于按钮触发的定义:

  I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

 其动态调用的FORM如下:

FORM user_command USING p_ucomm TYPE sy-ucomm
                          p_rs_selfield TYPE slis_selfield .
 CASE SY-UCOMM.
  WHEN 'DISPLAY1'.
  "执行显示自定义数据的代码
  WHEN 'DELETE1'.
  "执行删除自定义数据的代码
  WHEN 'DISPLAY2'.
  "执行显示数据库表数据的的代码
 ENDCASE.                    
ENDFORM

 以上大致描述了GUI STATUS的创建和两种调用方法,详细的请见参考资料。


参考资料:

http://blog.sina.com.cn/s/blog_90c6985b01011fyx.html

http://blog.csdn.net/gloria_64/article/details/2030418

http://blog.sina.com.cn/s/blog_6632b9a90100ujrk.html    

       

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式