动态调用function

动态调用function

转自Sariel兄

*&———————————————————————*
*&* write by Sariel
*&———————————————————————*
REPORT  Y_DYNAMIC_FUNC.

TYPE-POOLS: ABAP,SLIS.

TABLES: MARA.

DATA: V_FNAME TYPE STRING.
DATA: IT_PARM TYPE ABAP_FUNC_PARMBIND_TAB,
      IT_EXCP TYPE ABAP_FUNC_EXCPBIND_TAB,
      HE_PARM TYPE ABAP_FUNC_PARMBIND,
      HE_EXCP TYPE ABAP_FUNC_EXCPBIND.
DATA: IT_MARA TYPE STANDARD TABLE OF MARA.
DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.

PARAMETER: R1 RADIOBUTTON GROUP RB DEFAULT ‘X’,
           R2 RADIOBUTTON GROUP RB.

START-OF-SELECTION.
  PERFORM SET_FUNC_NAME.
  PERFORM GET_DATA_MARA.
  PERFORM SET_PARM_NAME.
  PERFORM SET_PARA_EXEP.
  PERFORM EXE_FUNC_DYNM.

*&———————————————————————*
*&      Form  SET_FUNC_NAME
*&———————————————————————*
FORM SET_FUNC_NAME .
  IF R1 = ABAP_TRUE.
    V_FNAME = ‘REUSE_ALV_GRID_DISPLAY’.
  ELSE.
    V_FNAME = ‘REUSE_ALV_LIST_DISPLAY’.
  ENDIF.
ENDFORM.                    ” SET_FUNC_NAME

*&———————————————————————*
*&      Form  get_data_MARA
*&———————————————————————*
FORM GET_DATA_MARA .
  SELECT *
    INTO TABLE IT_MARA
    FROM MARA
      UP TO 100 ROWS.
  HE_PARM-NAME = ‘T_OUTTAB’.
  HE_PARM-KIND = ABAP_FUNC_TABLES.
  GET REFERENCE OF IT_MARA INTO HE_PARM-VALUE.
  INSERT HE_PARM INTO TABLE IT_PARM.
ENDFORM.                    ” get_data_MARA

*&———————————————————————*
*&      Form  SET_PARM_NAME
*&———————————————————————*
FORM SET_PARM_NAME .
  CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE’
    EXPORTING
      I_STRUCTURE_NAME       = ‘MARA’
    CHANGING
      CT_FIELDCAT            = IT_FCAT
    EXCEPTIONS
      INCONSISTENT_INTERFACE = 1
      PROGRAM_ERROR          = 2
      OTHERS                 = 3.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  HE_PARM-NAME = ‘IT_FIELDCAT’.
  HE_PARM-KIND = ABAP_FUNC_EXPORTING.
  GET REFERENCE OF IT_FCAT INTO HE_PARM-VALUE.
  INSERT HE_PARM INTO TABLE IT_PARM.
ENDFORM.                    ” SET_PARM_NAME

*&———————————————————————*
*&      Form  SET_PARA_EXEP
*&———————————————————————*
FORM SET_PARA_EXEP .
  HE_EXCP-NAME = ‘PROGRAM_ERROR’.
  HE_EXCP-VALUE = 1.
  INSERT HE_EXCP INTO TABLE IT_EXCP.
ENDFORM.                    ” SET_PARA_EXEP

*&———————————————————————*
*&      Form  EXE_FUNC_DYNM
*&———————————————————————*
FORM EXE_FUNC_DYNM .
  CALL FUNCTION V_FNAME
    PARAMETER-TABLE
      IT_PARM
    EXCEPTION-TABLE
      IT_EXCP.
ENDFORM.                    ” EXE_FUNC_DYNM

转载于:https://www.cnblogs.com/johnson_yao/archive/2011/02/28/1966959.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110655.html原文链接:https://javaforall.net

(0)
上一篇 2021年8月10日 下午12:00
下一篇 2021年8月10日 下午1:00


相关推荐

  • f1 score计算_F1值

    f1 score计算_F1值F1分数(F1Score),是统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的精确率和召回率。F1分数可以看作是模型精确率和召回率的一种加权平均,它的最大值是1,最小值是0。1.TP、TN、FP、FN解释说明真实情况 预测结果 正例 反例 正例 TP(真正例) FN(假反例) 反例 FP(假正例) TN(真反例) 行表示预测的label值,列表示真实label值 TP:TruePositive,被判定为正样本,事实上也是

    2022年8月31日
    6
  • Deepseek AI 自动生成用例 +TMind3.0 在线思维导图用例管理,本地私有化部署教程

    Deepseek AI 自动生成用例 +TMind3.0 在线思维导图用例管理,本地私有化部署教程

    2026年3月16日
    3
  • MySQL删除表中内容

    MySQL删除表中内容1 删除表中所有数据 但保留表结构 可用以下两个语句 truncatetabl 表名 deletefrom 表名 2 删除表中部分数据 deletefrom 表名 where 条件 3 删除表结构及数据 droptable 表名

    2025年8月1日
    11
  • spring循环依赖为什么不是二级缓存_有效循环血量不依赖

    spring循环依赖为什么不是二级缓存_有效循环血量不依赖前置知识:所谓的三级缓存只是三个可以当作是全局变量的Map,Spring的源码中大量使用了这种先将数据放入容器中等使用结束再销毁的代码风格Spring的初始化过程大致有四步我们说的循环依赖就是第四步在给Bean属性注入的时候发生的一个问题循环依赖就是:假设有两个类A和B,A中需要注入B,B中需要注入A由于A注入B时B没有创建,B创建时A也无法创建导致的死循环问题我们都知道AOP是Spring的一个重要核心思想,其实现就是根据动态代理来实现的,也就是说我们的Bean其实很大概率都是要生成代理类,让

    2025年7月13日
    8
  • 编程语言与Python介绍

    编程语言与Python介绍一、编程语言的分类1.机器语言:计算机能直接理解的二进制指令(10101010101)优点:执行速度快缺点:开发效率非常低2.汇编语言:通过英文字符组成代表一组二进制指令优点:开发效率相较

    2022年7月6日
    22
  • 2026 Grok 4.2 & GPT5 实战:含 Grok 镜像站入口与国内使用教程

    2026 Grok 4.2 & GPT5 实战:含 Grok 镜像站入口与国内使用教程

    2026年3月15日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号