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


相关推荐

  • 词法分析程序 LEX和VC6整合使用的一个简单例子

    词法分析的理论知识不少,包括了正规式、正规文法、它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等。。。要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if

    2021年12月25日
    51
  • 学习JavaScript这一篇就够了

    学习JavaScript这一篇就够了目录第一章JavaScript简介1.1、JavaScript的起源1.2、JavaScript的组成1.3、JavaScript的特点1.4、JavaScript的使用1.4.1、标签引用1.4.2、文件引用1.5、JavaScript的输出1.5.1、页面输出1.5.2、控制台输出1.5.3、弹出窗口输出1.6、JavaScript的注释1.6.1、单行注释1.6.2、多行注释第二章JavaScript基础语法2.1、标识符2.2、字面量和变量2.2.1、字面量2.2.2、变量2.3、数据类型2.3

    2022年6月16日
    27
  • 查询各种数据的网站_中国最全的数据网站

    查询各种数据的网站_中国最全的数据网站1、国家数据——主要用户:社会情况研究人员国家统计局开设网站,公布我国各个领域的宏观经济情况,权威度高2、中国裁判文书网——主要用户:法律从业/学习/爱好者中国最高人民法院开设,权威可信,可用于查询国内裁判文书,可作数据统计来源3、中国互联网数据平台——主要用户:互联网研究人员经国家主管部门批准组建的管理和服务机构,经常发布一些有价值的互联网信息报告4、中国信通院——主要用户:互…

    2022年4月20日
    69
  • gmap绘制路径_cad画可见点

    gmap绘制路径_cad画可见点将在地图上用鼠标左键点击的点绘制出来(两点之间用直线连接),并且能够随地图一起实现等比例缩放和拖拽。GMap主要涉及到几个坐标的转换:经纬度与GPoint的转换:GPoint是gMapControl控件坐标,坐标原点(0,0)位于控件的左上角,这个转换用函数FromLatLngToLocal()完成。GPoint与经纬度的转换:将控件坐标转换成经纬度,用函数FromLocalToL

    2025年7月30日
    4
  • Python 获取时间戳_python精确到毫秒时间戳

    Python 获取时间戳_python精确到毫秒时间戳python获取当前时间戳的方法:1、使用time模块,语法为“time.time()”;2、使用datetime模块,语法为“datetime.datetime.now().timestamp()”。使用模块timeimporttimenow=time.time()print(now)1593580247.232345使用模块datetime模块datetime提供了以更面向对象的方式操作…

    2022年10月2日
    4
  • java全局变量和局部变量的区别「建议收藏」

    java全局变量和局部变量的区别「建议收藏」java全局变量和局部变量全局变量全局变量又称实例变量,属性,成员变量。位置定义在类中,属于类中的一个成员作用范围因为全局变量是定义在类中的,所以可以使用四种访问权限控制修饰符修饰,但是不论使用哪种,全局变量在当前类中的每一个方法中都可以被访问到,(static修饰的静态方法只能访问static修饰的属性)默认值全局变量有默认值基本类型的实例变量:整型 :默认值为0浮点型 :默认值为0.0布尔型 :默认值为false字符型 :默认值为0或者‘\u0000’引用类型的实

    2022年8月21日
    9

发表回复

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

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