第三代增强经典BADI-增强菜单栏和子屏幕

文章目录

  • 创建经典BADI
  • 实施BADI
  • 创建屏幕
    • 绘制屏幕
  • 定义GUI
  • 运行结果
  • 程序代码

创建经典BADI

在这里插入图片描述

实施BADI

在这里插入图片描述

创建屏幕

在这里插入图片描述

绘制屏幕

在这里插入图片描述

定义GUI

在这里插入图片描述

运行结果

在这里插入图片描述

程序代码

*&---------------------------------------------------------------------*
*& Report  ZRP_BADITEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZRP_BADITEST.

DATA: OK_CODE LIKE SY-UCOMM.
DATA: PROGRAM TYPE PROGRAM,
      DYNPRO TYPE DYNNR.

DATA: REF_BADI_INTERFACE TYPE REF TO ZIF_EX_BADI_DEFINED.

CALL SCREEN 100.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  DATA  ACT_IMP_EXISTING.
  SET PF-STATUS '100'.
*  SET TITLEBAR 'xxx'.
  IF REF_BADI_INTERFACE IS INITIAL.
    CALL METHOD CL_EXITHANDLER=>GET_INSTANCE
      EXPORTING
        EXIT_NAME              = 'ZBADI_DEFINED'
                              "如果未找到BADI实现或有实现但未激活时,ref_badi_interface是否可以接受NULL(即 INITIAL)
                              "一般设置为空,在为空时,如果未实现或未激活时,还是会返回一个代理实现,这样后面程序运行不
                              "会出错,否则设置为X时,在未实现或未激活时,ref_badi_interface不会有值,则如果通过它调用
                              "方法时,会抛异常
        NULL_INSTANCE_ACCEPTED = ' '
      IMPORTING
        ACT_IMP_EXISTING       = ACT_IMP_EXISTING "实现是否已激活
      CHANGING
        INSTANCE               = REF_BADI_INTERFACE.
  ENDIF.

  IF ACT_IMP_EXISTING <> 'X'.
    MESSAGE 'BADI实现没有被激活' TYPE 'I'.
    "EXIT.
  ENDIF.

  CALL METHOD CL_EXITHANDLER=>GET_PROG_AND_DYNP_FOR_SUBSCR
    EXPORTING
      EXIT_NAME       = 'ZBADI_DEFINED' "BADI 出口名,即BADI定义名
      CALLING_DYNPRO  = '0100'"主调屏幕号
      CALLING_PROGRAM = 'ZRP_BADITEST' "主调屏幕所属程序
*     FLT_VAL         =
      SUBSCREEN_AREA  = 'SUB_SCREEN'"主调屏幕中的增强子屏幕区域名
    IMPORTING
      CALLED_DYNPRO   = DYNPRO
      CALLED_PROGRAM  = PROGRAM.
  WRITE:''.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.

  CASE OK_CODE.
    WHEN 'FC1'.
      MESSAGE '普通菜单' TYPE 'I'.
      "只要BADI实现激活后,才会出现菜单,即可以点击,才可能走这里的逻辑
    WHEN '+BADI'.
      MESSAGE '增强菜单' TYPE 'I'.
    WHEN 'BUT1'.
      "如果BADI未实现或实现但未激活时,只要 cl_exithandler=>get_instance
      "时,设置输入参数 null_instance_accepted = ' ',ref_badi_interface
      "就会指向一个代理实现类,调用不会抛异常,但只是个空的方法,什么作用
      "也不会有
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945818.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

联通 路由器 创维SK-WR9551X 联通华盛VS010 组mesh 和 锐捷X32 PRO 无缝漫游

前言 联通路由器&#xff1a;联通创维SK-WR9551X&#xff0c;联通华盛VS010组mesh&#xff0c;并与锐捷X32 PRO混合组网&#xff0c;开启无限漫游。 1、mesh ≠ 无缝漫游 mesh是实现路由器快速组网的一种方式&#xff0c;通过mesh组网后可以实现无缝漫游。 mesh组网的设备要…

如何使用大语言模型进行事件抽取与关系抽取

诸神缄默不语-个人CSDN博文目录 文章目录 1. 什么是事件抽取与关系抽取&#xff1f;2. 示例&#xff1a;使用大语言模型进行事件抽取与关系抽取 1. 什么是事件抽取与关系抽取&#xff1f; 事件抽取是指从文本中识别出与某些“事件”相关的信息。这些事件通常包括动作、参与者、…

Mysql COUNT() 函数详解

简介 COUNT()函数定义 COUNT()函数是SQL中常用的 聚合函数 &#xff0c;用于统计满足特定条件的记录数。它可以灵活地应用于各种查询场景&#xff0c;帮助用户快速获取所需的数据统计信息。该函数不仅能够计算所有行的数量&#xff0c;还能针对特定列进行计数&#xff0c;并支…

SD卡恢复数据:快速找回丢失文件!

由于其小尺寸和便携性&#xff0c;SD卡作为外部存储设备在用户中广泛应用。它适用于各种设备&#xff0c;例如数码相机、摄像机、音乐播放器、手机、电视、无人机等。 但是&#xff0c;与其他类型的存储设备一样&#xff0c;SD卡很精致&#xff0c;使用一段时间后可能会出现程…

OpenStack系列第四篇:云平台基础功能与操作(Dashboard)

文章目录 1. 镜像&#xff08;Image&#xff09;添加镜像查看镜像删除镜像 2. 卷&#xff08;Volume&#xff09;创建卷查看卷删除卷 3. 网络&#xff08;虚拟网络&#xff09;创建网络查看网络删除网络 4. 实例类型创建实例类型查看实例类型删除实例类型 4. 密钥对&#xff08…

HTML——43.创建表格

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>表格</title></head><body><!--table标签用来定义表格&#xff0c;border属性表示边框--><!--tr标签表示表格中的一行--><!--th标签表示表…

Sony偏振传感器加持 Blackfly S工业相机突破视觉成像反光难题【51camera】

为什么采用传感器偏振? A: 视觉系统一直都在试图克服玻璃、塑料和金属等反光表面产生的动态或多余光线、反射、朦胧和眩光影响。Teledyne FLIR的Blackfly S 机器视觉工业相机具有 Sony 的传感器偏振和 Spinnaker SDK 内置的防眩光功能&#xff0c;提供便于实施、轻量化且可靠…

Linux上安装配置单节点zookeeper

直接先去官网下载安装包&#xff0c; https://downloads.apache.org/zookeeper/ 选择合适的版本&#xff0c;然后上传至服务器 解压&#xff1a; tar -zxvf apache-zookeeper-3.9.3-bin.tar.gz创建data和logs目录 mkdir data mkdir logs配置环境变量&#xff1a; vim /etc/p…

零基础入门指针的应用

对于我这个非计算机专业的人来说&#xff0c;指针真的很让我头疼&#xff0c;该如何理解指针、如何使用指针是我的痛点&#xff0c;但是在嵌入式中又会经常用的到&#xff0c;所以本文将介绍该如何求使用指针。 一、指针的概念 什么是指针&#xff1f;指针就是编程语言中的一个…

Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(1):Oracle Dataguard 概述

Oracle Dataguard&#xff08;主库为 Oracle 11g 单节点&#xff09;配置详解&#xff08;1&#xff09;&#xff1a;Oracle Dataguard 概述 目录 Oracle Dataguard&#xff08;主库为 Oracle 11g 单节点&#xff09;配置详解&#xff08;1&#xff09;&#xff1a;Oracle Data…

Java开发生态2024年度总结报告

1 关键要点 尽管数据显示 Java 17 是最常用 JDK&#xff0c;但其用户占比并未超过半数。根据 New Relic 2024 Java 生态系统状态报告&#xff0c;Java 17、11 和 8 的用户比例分别为 35%、33% 和 29%。New Relic 数据中所谓“快速采用”指 Java 21 的采用率仅为 1.4%。虽相较 J…

PlasmidFinder:质粒复制子的鉴定和分型

质粒&#xff08;Plasmid&#xff09;是一种细菌染色体外的线性或环状DNA分子&#xff0c;也是一种重要的遗传元素&#xff0c;它们具有自主复制能力&#xff0c;可以在细菌之间传播&#xff0c;并携带多种重要的基因(如耐药基因与毒力基因等)功能。根据质粒传播的特性&#xf…

277-基于八路256Ksps 24bit AD生物电震动检测FMC子卡

一、板卡概述 板卡基于AD7768 AD芯片设计的八路低速采集的FMC 子卡&#xff0c;支持直流耦合&#xff0c;产品应用于生物电、脑电波、声音&#xff0c;震动等信号采集。 二、板卡参数及性能 板卡功能 参数 内容 ADC 芯片型号 AD7768 路数 8路ADC&#xff0c; 采样率 2…

[TOTP]android kotlin实现 totp身份验证器 类似Google身份验证器

背景&#xff1a;自己或者公司用一些谷歌身份验证器或者microsoft身份验证器&#xff0c;下载来源不明&#xff0c;或者有广告&#xff0c;使用不安全。于是自己写一个&#xff0c;安全放心使用。 代码已开源&#xff1a;shixiaotian/sxt-android-totp: android totp authenti…

耳切法简述

耳切法简述 将简单多边形分解成三角形称为多边形的三角剖分。对n个顶点的简单多边形的任何三角剖分都有n-2个三角形。其中最简单的算法&#xff0c;称为耳切法&#xff08;EarClipping&#xff09;。 耳的定义 多边形的一个 “耳” 是由 V i 0 V_{i_{0}} Vi0​​、 V i 1 V_…

国内外大模型以及部署

国内15家AI大模型应用盘点 AI大模型 秘塔AI搜索 秘塔AI搜索免登录&#xff0c;免费的问答大模型。 开源大模型 Ollama Ollama是一个专注于提供 大语言模型&#xff08;LLM&#xff09; 本地化部署和运行的工具和资源的平台。它旨在帮助用户轻松地在自己的设备上运行和定制…

2024年终总结:非常充实的一年

一、业务方面 2024年是业务全面拓展与技术深耕的一年。从日常的开发维护到新产品研发&#xff0c;从降本增效到业务创新&#xff0c;每一步都在不断累积成长。以下是我的年度业务总结&#xff1a; 日常工作&#xff1a;聚焦于软件开发、维护、运营和售后工作&#xff0c;同时…

UE5材质节点VertexNormalWs/PixelNormalWS

VertexNormalWs顶点法线方向&#xff0c;此节点可以做物体上积雪、青苔等效果 PixelNormalWS像素法线方向

MAC环境安装(卸载)软件

MAC环境安装&#xff08;卸载&#xff09;软件 jdknode安装node&#xff0c;并实现不同版本的切换背景 卸载node从node官网下载pkg安装的node卸载用 homebrew 安装的node如果你感觉删的不够干净&#xff0c;可以再细分删除验证删除结果 jdk 1.下载jdk 先去官网下载自己需要的版…

玩具租赁系统设计与实现(文末附源码)

博主介绍&#xff1a;✌全网粉丝50W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HLM…