动态调用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Win10搭建ftp(含设置用户名和密码)测试成功!!!

    Win10搭建ftp(含设置用户名和密码)测试成功!!!Win10搭建ftp(含设置用户名和密码)测试成功1、打开ftp服务方法:win+R输入control打开控制面板点击程序与功能→启动或关闭Windows功能,选择一下选项,打开ftp服务2、打开ISS管理器方法:win+R输入inetmgr打开iss管理器1)、网站—>添加FTP站点…—>站点信息2)、输入IP和端口号,IP就是自己电脑的ip,端口号最好改一下,21…

    2022年7月15日
    18
  • 常见SQL面试题_sql索引面试题

    常见SQL面试题_sql索引面试题之前面试遇到一个sql题。当时没写出sql语句,把题目记下。现在分享给大家(知识贵在精,学会举一反三)。这里采用的是mysql.sql语句如下。DROPTABLEIFEXISTS`depart_month`;CREATETABLE`depart_month`(`id`int(11)NOTNULLAUTO_INCREMENT,//id自增长`depa…

    2022年8月29日
    2
  • verilog调用vhdl模块_verilog和vhdl哪个更好

    verilog调用vhdl模块_verilog和vhdl哪个更好初学FPGA,记录一些个人的探索历程和心得。本文的初衷是为了验证VHDL和Verilog文件互相调用功能。以一个简单的二选一选择器为例,分别用两种方法实现功能。一、用Verilog文件调用VHDL以Verilog文件为顶层文件,调用VHDL模块,testbench为Verilog文件。1、新建project2、编写.vhd文件,FPGA_VHDL.vhd,文件名与模块名称一致;3、编写FPGA_Verilog.v文件,文件名与模块名称一致,且设为top文件。4、编写testbench文件

    2022年9月21日
    4
  • MFC学习——如何在MFC对话框中添加一个显示网页的窗口(用vs2017以下版本,vs2017不支持)

    MFC学习——如何在MFC对话框中添加一个显示网页的窗口(用vs2017以下版本,vs2017不支持)(用vs2017以下版本,vs2017不支持)标题这个要用到 ActiveX 控件了,向对话框里面插入一个 WebBrowser控件,之后使用就可以了!=============================利用Web Browser控件创建自己的浏览器①新建一个基于对话框的工程,命名为test,然后在对话框上单击右键,选择Insert ActiveX Control…在弹出的对话…

    2022年8月18日
    6
  • python3.9多线程_python多线程原理

    python3.9多线程_python多线程原理什么是线程?线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其

    2022年8月6日
    8
  • 2022年面试必问的Python面试题&答案

    2022年面试必问的Python面试题&答案Python新手在谋求一份Python编程工作前,必须熟知Python的基础知识。这里我为大家准备了一份2022年最常见Python面试题合集,既有基本的Python面试题,也有高阶版试题来指导你准备面试,试题均附有答案。面试题内容包括编码、数据结构、脚本撰写等话题。

    2025年5月28日
    2

发表回复

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

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