首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖ALV中的函数

覆盖ALV中的函数
EN

Stack Overflow用户
提问于 2012-04-12 03:04:09
回答 1查看 1.7K关注 0票数 0

我想在ALV网格中重写一些函数。但是我不能通过回调用户命令来做到这一点。这只适用于非标准函数。有什么想法吗?我应该使用事件出口吗?我用它尝试了一些东西,但也做不到:

代码语言:javascript
复制
FORM event_exits.

  CLEAR wa_eventexit.
  wa_eventexit-ucomm = '&OUP'.
  wa_eventexit-before = 'X'.
  APPEND wa_eventexit TO it_eventexit.
  CLEAR wa_eventexit.
  wa_eventexit-ucomm = '&ODN'.
  wa_eventexit-before = 'X'.
  APPEND wa_eventexit TO it_eventexit.

ENDFORM.                     "event_exits

FORM user_command Using r_ucomm LIKE sy-ucomm
                    rs_selfield TYPE slis_selfield.
 CASE r_ucomm.
    WHEN '&OUP'.
      IF ck_del = 'X'.
        SORT gt_salord BY audat vbeln lfimg ASCENDING.
      ELSE.
        SORT gt_salord BY audat vbeln kwmeng ASCENDING.
      ENDIF.
    WHEN '&ODN'.
      IF ck_del = 'X'.
        SORT gt_salord BY audat vbeln lfimg DESCENDING.
      ELSE.
        SORT gt_salord BY audat vbeln kwmeng DESCENDING.
      ENDIF.
    WHEN 'D01'.
      BREAK-POINT.
  ENDCASE.
   CLEAR sy-ucomm.
ENDFORM.    "user_command

D01函数只是为了测试,所以当我访问它时,我可以看到它进入了user_command。但是当我访问这个函数&OUP时,它不再进入这个例子(我用调试来测试它)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-12 04:19:53

我不知道这是不是适合你,但是你可能想要ALV对象模型--它是better documented --例如查看this chapter关于处理函数和事件的内容。更重要的是,它得到了官方的支持--如果你使用它,但它不能正常工作,你会得到帮助,而不是习惯上的“你正在使用未发布的内部类/函数模块”。看一下演示程序(SALV_DEMO_*或DEMO_SALV_*,我记不住了)。

同样,如果你想定义一个自定义的排序机制,你可能只需要隐藏默认的按钮,并插入你自己的带有不同功能代码的按钮。谁知道呢,在42版本中,可能会有人想出再次启用默认排序的想法,然后您就不必再适应所有东西了……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10112270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档