首页 > 其他分享 >SAP:观察I_CALLBACK_USER_COMMAND 参数(按钮点击事件)

SAP:观察I_CALLBACK_USER_COMMAND 参数(按钮点击事件)

时间:2024-05-29 21:55:01浏览次数:13  
标签:STATUS CALLBACK COMMAND USER 按钮 ALV SAP

1、从函数级SLVC_FULLSCREEN里复制 一个在 ”GUI状态“ 下的 “STANDARD_FULLSCREEN”标准全屏幕到 程序Z16_04里。

 

标准工具添加 定义按钮(关闭、保存)

主程序代码:

*&---------------------------------------------------------------------*
*& Report  Z16_04
*& 利用 REUSE_ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
*& 添加"结束"按钮,
*&  1、关闭按钮的关闭程序事件
*& 2、 从函数组 SLVC_FULLSCREEN里复制 GUI状态下的STANDARD_FULLSCREEN .
*&---------------------------------------------------------------------*

REPORT Z16_04.

TYPE-POOLS: SLIS.
DATA: GT_EVENTS TYPE SLIS_T_EVENT.
DATA: GS_EVENT TYPE SLIS_ALV_EVENT. " ALV 事件

DATA gt_itab TYPE TABLE OF sflight.

SELECT * FROM SFLIGHT INTO table GT_ITAB UP TO 25 ROWS.

MOVE 'PF_STATUS_SET'  TO GS_EVENT-NAME.
MOVE 'ALV_STATUS_SET' TO GS_EVENT-FORM.
APPEND GS_EVENT TO GT_EVENTS.




*& 调用函数 REUSE_ALV_GRID_DISPLAY   ,比较 例子 Z16_01
*&  的 REUSE_ALV_LIST_DISPLAY 函数。
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
   I_CALLBACK_PROGRAM                = sy-repid  "程序名称 ,
   I_CALLBACK_PF_STATUS_SET          = ' '  " 'alv_status_set'
   I_CALLBACK_USER_COMMAND           = 'ALV_USER_COMMAND'  " 按钮事件命令
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
   I_STRUCTURE_NAME                  = 'SFLIGHT'
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
*   IT_FIELDCAT                       =
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
   IT_EVENTS                         = gt_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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    T_OUTTAB                          = gt_itab
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.


*&-------------------------------------------------
*&  Form alv_status_set
*&-------------------------------------------------
*& ALV 自定义工具栏
*&------------------------------------------------
FORM ALV_STATUS_SET USING PT_EXTAB TYPE SLIS_T_EXTAB.
  CLEAR: PT_EXTAB[].
  " 注释在画面上追加'ALV_STATUS'的语句,追加标准ALV_STATUS语句。
  "SET PF-STATUS 'ALV_STATUS'.
  SET PF-STATUS 'STANDARD_FULLSCREEN'. " 追加标准工具栏"
ENDFORM. "ALV_STATUS_SET

*&-------------------------------------------------
*&  Form ALV_USER_COMMAND
*&-------------------------------------------------
*& ALV  "关闭" 按钮的点击事件
*&------------------------------------------------
FORM ALV_USER_COMMAND USING p_ucomm LIKE SY-ucomm
       p_selfield TYPE slis_selfield.

  "BREAK-POINT. " 单击按钮时传递的命令追加设断点的语句。
  CASE p_ucomm.
    WHEN 'CLOSE'.  " 当点击关闭时,退出程序 。
      LEAVE PROGRAM.  "离开程序(退出程序)
    WHEN 'SAVE'.
      MODIFY sflight FROM TABLE gt_itab.  " 内表数据保存到数据库表
    WHEN OTHERS.
  ENDCASE. "  CASE条件结束。

ENDFORM.  "  ALV_USER_COMMAND

alv_user_command:

*&-------------------------------------------------
*&  Form ALV_USER_COMMAND
*&-------------------------------------------------
*& ALV  "关闭" 按钮的点击事件
*&------------------------------------------------
FORM ALV_USER_COMMAND USING p_ucomm LIKE SY-ucomm
       p_selfield TYPE slis_selfield.

  "BREAK-POINT. " 单击按钮时传递的命令追加设断点的语句。
  CASE p_ucomm.
    WHEN 'CLOSE'.  " 当点击关闭时,退出程序 。
      LEAVE PROGRAM.  "离开程序(退出程序)
    WHEN 'SAVE'.
      MODIFY sflight FROM TABLE gt_itab.  " 内表数据保存到数据库表
    WHEN OTHERS.
  ENDCASE. "  CASE条件结束。

ENDFORM.  "  ALV_USER_COMMAND

  

  运行效果:

 

标签:STATUS,CALLBACK,COMMAND,USER,按钮,ALV,SAP
From: https://www.cnblogs.com/samrv/p/18221171

相关文章

  • C++中以类的成员函数作为Windows callback函数需要设置成static函数
    在看代码时,发现很多CALLBACK函数,所以仔细研究了一下C++中的CALLBACK函数首先,我们来理解一下,什么是C++中的CALLBACK函数 =>凡是由你设计,但是由Windows操作系统调用的函数,我们把它统称为CALLBACK函数,这些函数都有一定的类型,以方便配合Windows的调用动作某些WindowsAPI函数会要......
  • ASAP7nm PDK介绍
    ASAP7nmPDK介绍概述最近在调研后面教学用的PDK,考虑到需要给学生发的PDK尽量绕开版权问题,因此FoundryPDK是不敢用的,大概把Synopsys家的SAED28_32nm,Cadence家的GPDK45nm,以及几个开源PDK都大概看了一下,目前倾向于用ASAP7nm这个PDK。来说一下主要的分析和考量,首先C家和S家给的PDK......
  • 4 SAP前台操作手册-MM模块-采购管理-采购申请创建、修改、显示-ME51N ME52N ME53N
    0总体说明SAP实施项目中,到了第3个阶段-系统实现,在这个阶段,因为蓝图汇报已经结束,配置也差不多完成了,自开发还在进行中,SAP标准功能下,可以进行基础业务的前台操作了,在实现阶段的尾端,客户指定的关键用户(俗称KU-KeyUser)会进行前台业务操作和练习,提高熟练程度,同时需要在外部SAP顾......
  • 2 SAP前台操作手册-MM模块-采购管理-(标准/委外/寄售)采购信息记录创建、修改、显示、
    0总体说明SAP实施项目中,到了第3个阶段-系统实现,在这个阶段,因为蓝图汇报已经结束,配置也差不多完成了,自开发还在进行中,SAP标准功能下,可以进行基础业务的前台操作了,在实现阶段的尾端,客户指定的关键用户(俗称KU-KeyUser)会进行前台业务操作和练习,提高熟练程度,同时需要在外部SAP顾......
  • SAP:REUSE_ALV_LIST_DISPLAY 函数实现此类型ALV
    *&Report-1类型程序的主要功能是通过WRITE语句为用户提供方便的报表数据.*&与此功能类似的就是利用FUNCTIONALV创建的报表。利用*&REUSE_ALV_LIST_DISPLAY函数实现此类型ALV。*&---------------------------------------------------------------------**&Report......
  • SAP: REUSE_ALV_GRID_DISPLAY 函数实现此类型ALV
     *&Report-1类型程序的主要功能是通过WRITE语句为用户提供方便的报表数据.*&与此功能类似的就是利用FUNCTIONALV创建的报表。利用*&REUSE_ALV_GRID_DISPLAY函数实现此类型ALV。*----------------------------------------------------------------------**&-----......
  • SAP: ALV GRID 控制之 单元格按钮
    工作区域(或内部表)“GT_SFLIGHT”不是扁平的,或者包含参考或内部表作为组件。Isnotflat,orcontainsReferenceorinternaltablesascomponentsorinternaltablesascomponents.Ascomponents.解决方式:将SELECT*FROMSFLIGHTINTOTABLEgt_sflightUPTO......
  • React中何时使用memo、useCallback、useMemo以及useRef进行性能优化
    react无法做到像vue一样自动收集依赖更新(期待react19的ReactCompiler),需要开发人员手动的进行性能优化,此时memo、useCallback、useMemo、useRef就是性能优化中的重要API本文虽然介绍可应用场景,但是正常开发中,尤其是useCallback。除非遇到性能问题或者组件库封装,亦或......
  • 踩坑记录: nohup: failed to run command ‘java‘: No such file or directory
    执行一个shell脚本直接在终端可以执行但是在云效流水线上就会出现这个问题 先查看一下java-version 已经安装好了的话还是出现这个问题解决方案1:在执行Java包的前面加上这个 source/etc/profile还是不可以的话 解决方案2:先查看自己的jdk安装路径 which......
  • pnpm安装依赖出现ELIFECYCLE  Command failed with exit code 1 Build failed
    这种情况一般是安装了nvm的情况下会出现,错误提示一般如下Progress:resolved1713,reused1633,downloaded0,added1632,donenode_modules/.pnpm/[email protected]/node_modules/core-js:Runningpostinstallscript,donein118msnode_modules/.pnpm/[email protected]/nod......