首页 > 其他分享 >OO ALV 强制触发 data_change事件

OO ALV 强制触发 data_change事件

时间:2024-04-09 23:24:07浏览次数:28  
标签:OO PR SY PROTOCOL data CHANGED ALV DATA METHOD

参考博客

https://community.sap.com/t5/application-development-blog-posts/trigger-alv-data-change-event-manual/ba-p/13003658

https://blog.csdn.net/qq_40977705/article/details/104599677

https://blog.csdn.net/qq_40977705/article/details/108880331

data_change 写log

相关类 CL_GUI_ALV_GRID ,CL_ALV_CHANGED_DATA_PROTOCOL
事件 DATA_CHANGED
首先PROTOCOL只能写在DATA CHANGED事件里面,在其它地方是无效的,所以在需要PROTOCOL的时候,一般需要强制的去触发DATA_CHANGED事件(比如点保存按钮的时候,强制触发DATA_CHANGED)

一 强制触发DATA_CHANGED的写法

  CALL METHOD GO_ALVGRID_RIGHT->IF_CACHED_PROP~SET_PROP 
        EXPORTING
          PROPNAME           = 'GridModified' "单元格假修改
          PROPVALUE          = '1'
        EXCEPTIONS
          PROP_NOT_FOUND     = 1
          INVALID_NAME       = 2
          ERROR_SET_PROPERTY = 3
          OTHERS             = 4
              .
      IF SY-SUBRC <> 0.
*       Implement suitable error handling here
      ENDIF.
      CALL METHOD GO_ALVGRID_RIGHT->CHECK_CHANGED_DATA
*        IMPORTING
*          E_VALID   =
*        CHANGING
*          C_REFRESH = 'X'
          .

 二、添加protocol,调用方法ADD_PROTOCOL_ENTRY,消息类可以在SE91去创建,然后加在这里

FORM FRM_HANDLE_DATA_CHANGED USING PR_DATA_CHANGED
                              TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL
                              P_UCOMM TYPE SY-UCOMM.
 
  DATA LS_MODCELL TYPE LVC_S_MODI .
  READ TABLE PR_DATA_CHANGED->MT_MOD_CELLS INTO LS_MODCELL INDEX 1 .
  IF SY-UCOMM EQ GC_SAVE.
   LOOP AT GT_TABLE_RIGHT WHERE ZPJBH IS INITIAL OR ZWRBTR IS INITIAL
                          AND ZXZ EQ GC_X  .
     IF GT_TABLE_RIGHT-ZPJBH  IS INITIAL  .
 
        CALL METHOD PR_DATA_CHANGED->ADD_PROTOCOL_ENTRY
         EXPORTING
            I_MSGID     = 'ZSSFDZ'
            I_MSGTY     = 'E'
            I_MSGNO     = '000'
*            I_MSGV1     = 'ZPJBH is required'
*            I_MSGV2     =
*            I_MSGV3     =
*            I_MSGV4     =
            I_FIELDNAME = 'ZPJBH'
*            I_ROW_ID    =
             I_TABIX     = SY-TABIX
        .
      ENDIF.
      IF  GT_TABLE_RIGHT-ZWRBTR IS INITIAL.
 
        CALL METHOD PR_DATA_CHANGED->ADD_PROTOCOL_ENTRY
          EXPORTING
            I_MSGID     = 'ZSSFDZ'
            I_MSGTY     = 'E'
            I_MSGNO     = '001'
*            I_MSGV1     =
*            I_MSGV2     =
*            I_MSGV3     =
*            I_MSGV4     =
            I_FIELDNAME = 'ZWRBTR'
*            I_ROW_ID    =
             I_TABIX     = SY-TABIX
            .
       ENDIF.
     ENDLOOP.
   ENDIF.
  CALL METHOD PR_DATA_CHANGED->DISPLAY_PROTOCOL
*  EXPORTING
*    I_CONTAINER        =
*    I_DISPLAY_TOOLBAR  =
*    I_OPTIMIZE_COLUMNS =
    .
ENDFORM.

 

  

标签:OO,PR,SY,PROTOCOL,data,CHANGED,ALV,DATA,METHOD
From: https://www.cnblogs.com/wangzuoer/p/18125103

相关文章

  • 你真会判断DataGuard的延迟吗?
    这是一个比较细节的知识点,但必须要理解这个才能准确判断OracleADG的延迟情况。以前做运维工作时,记得是要同时重点关注v$dataguard_stats视图中的几个字段的值,分别是:NAME、VALUE、TIME_COMPUTED、DATUM_TIME。本文先不考虑v$dataguard_stats视图没有数值显示的特殊情况,只针对当v......
  • 快速集成和使用 drools 规则引擎
    规则引擎技术的主要思想是将应用程序中的业务规则分离出来,业务规则不再以程序代码的形式驻留在系统中,而是存储在独立的文件或者数据库中,完全独立于程序。业务人员可以像管理数据一样对业务规则进行管理。业务规则在程序运行时被加载到规则引擎中供应用系统调用。drools是当前比......
  • CMD 批处理脚本自定义 UEFI 启动项,您需要使用 bcdedit 命令来操作 Windows 引导管理器
    CMD批处理脚本自定义UEFI启动项,您需要使用bcdedit命令来操作Windows引导管理器(BootConfigurationData,BCD)。BCD存储了计算机启动时所需的信息,包括可用的操作系统和启动选项。以下是一个简单的示例,演示如何使用CMD批处理脚本添加、修改和删除启动项:1.添加启动项要添......
  • 解决hadoop的namenode和datanode结点启动不起来的问题
    首先介绍一下本人的情况:我的虚拟机最开始是可以启动的,后来删除了主节点,重新创建了一个主节点,并保持相同的主机名,并把从结点上的hadoop打包发到了主节点(前提已经弄好ssh和相关映射)tar-zcf~/hadoop.master.tar.gz./hadoop//将hadoop目录下的内容打包复制到~/hadoop.master.ta......
  • Redis Sentinel 哨兵模式 故障转移失败 -failover-abort-no-good-slave master mymast
    根据网上的解决方案:1.我核对了sentinel.config和redis.configbind绑定的端口。2.三台redismasterauth都设置了密码3.sentinel.config的sentinelmonitormymaster和sentinelauth-passmymaster也没有错。但在我测试主从复制的时候,发现主从主机无法相连,我在网上找的解决......
  • OOP 面向对象
    转载自https://zhuanlan.zhihu.com/p/524264177并做部分内容上的补充和修改在前一章,我们学习了抽象数据类型(ADT)理论,这一章,我们学习ADT的具体实现技术:OOP类与对象什么是对象?对象都有两个特征:状态(states)和行为(behaviors)我们可以从真实世界中的对象来理解这两个特征:......
  • 基于JAVA Springboot + Vue 前端后分离 实现【考研资讯平台】(内附设计LW + PPT+ 源码
    项目名称项目名称:考研资讯平台项目技术栈该项目采用了以下核心技术栈:后端框架/库:SpringBoot数据库:MySQL前端技术:Vue.js(前后端分离)项目展示5.1学生前台功能模块5.1.2首页在系统首页可以查看以下内容:首页考研资讯报考指南资料信息论坛信息我的跳转到后台购物......
  • 基于JAVA Springboot + Vue 前端后分离 实现【教师人事档案管理系统】(内附设计LW + PP
    项目名称项目名称:教师人事档案管理系统项目技术栈该项目采用了以下核心技术栈:后端框架/库:Java数据库:MySQL前端技术:Vue.js(前后端分离)开发工具:Eclipse项目展示5.1前台功能模块前台首页在教师人事档案管理系统首页可以查看以下内容:首页培训信息系统公告个人中心......
  • Springboot文件上传
    packagecom.example.springboot.controller;importcn.hutool.core.io.FileUtil;importcn.hutool.core.util.IdUtil;importcn.hutool.core.util.StrUtil;importcom.example.springboot.enity.Files;importcom.example.springboot.mapper.FileMapper;importcom.ex......
  • Java基础知识-面向对象编程(OOP)-Java集合框架-多线程和并发-Spring框架
    Java基础知识:Java的四种基本数据类型是:byte、short、int、long(整数类型)、float、double(浮点类型)、char(字符类型)、boolean(布尔类型)。它们之间的区别主要在于占用的内存大小和表示范围不同。Java中的String是不可变的意味着一旦String对象被创建,它的值就不能被修改。这意味着St......