根据名字获取结构
DATA: STRUCTTYPE TYPE REF TO CL_ABAP_STRUCTDESCR.
STRUCTTYPE ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( 'SPFLI' ).
根据变量获取结构
DATA: DATATYPE TYPE REF TO CL_ABAP_ELEMDESCR,W_CHAR TYPE CHAR5.
DATATYPE ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( W_CHAR ).
自定义数值结构
DATA: ELEMTYPE TYPE REF TO CL_ABAP_ELEMDESCR.
ELEMTYPE ?= CL_ABAP_ELEMDESCR=>GET_I( ).
ELEMTYPE ?= CL_ABAP_ELEMDESCR=>GET_C( 20 ).
定义动态长度的字符串
DATA: W_C10 TYPE CHAR10 VALUE 'HB',W_C20 TYPE CHAR20,W_CNT TYPE I.
W_CNT = STRLEN( W_C10 ).DATA: DREF  TYPE REF TO DATA,CTYPE TYPE REF TO CL_ABAP_ELEMDESCR.
FIELD-SYMBOLS:<FS>.CTYPE = CL_ABAP_ELEMDESCR=>GET_C( W_CNT ).CREATE DATA DREF TYPE HANDLE CTYPE.
ASSIGN DREF->* TO <FS>.
*ASSIGN DREF->* TO <FS> CASTING TYPE HANDLE CTYPE.<FS> = W_C10(W_CNT).
CONCATENATE '***' <FS> '***' INTO W_C20 RESPECTING BLANKS.
WRITE W_C20.动态读取系统表数据
PARAMETERS P_NAME TYPE TABNAME.DATA: LR_STRUC  TYPE REF TO CL_ABAP_STRUCTDESCR,LR_DATA   TYPE REF TO CL_ABAP_DATADESCR,LR_TABLE  TYPE REF TO CL_ABAP_TABLEDESCR,DYN_TABLE TYPE REF TO DATA,DYN_WA    TYPE REF TO DATA.FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,<DYN_WA>    TYPE ANY.LR_STRUC ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( P_NAME ).LR_TABLE ?= CL_ABAP_TABLEDESCR=>CREATE( P_LINE_TYPE = LR_STRUC ).*ASSIGN DYN_WA->*    TO <DYN_WA>    CASTING TYPE HANDLE LR_STRUC.
*ASSIGN DYN_TABLE->* TO <DYN_TABLE> CASTING TYPE HANDLE LR_TABLE.CREATE DATA DYN_WA    TYPE HANDLE LR_STRUC.
CREATE DATA DYN_TABLE TYPE HANDLE LR_TABLE.
ASSIGN DYN_WA->*    TO <DYN_WA>.
ASSIGN DYN_TABLE->* TO <DYN_TABLE>.SELECT * INTO CORRESPONDING FIELDS OF TABLE <DYN_TABLE>UP TO 100 ROWSFROM (P_NAME).*CALL METHOD LR_TABLE->GET_TABLE_LINE_TYPE
*  RECEIVING
*    P_DESCR_REF = LR_DATA
*    .CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_STRUCTURE_NAME = P_NAMETABLEST_OUTTAB         = <DYN_TABLE>EXCEPTIONSPROGRAM_ERROR    = 1OTHERS           = 2.
IF SY-SUBRC <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.动态定义表结构
TYPES:BEGIN OF TYP_PERSON,NAME TYPE CHAR10,SEX  TYPE CHAR1,AGE  TYPE I,END OF TYP_PERSON.DATA: ST_PERSON TYPE TYP_PERSON,TR_TABLE  TYPE REF TO CL_ABAP_TABLEDESCR,TR_STRUCT TYPE REF TO CL_ABAP_STRUCTDESCR,TR_TYPE   TYPE REF TO CL_ABAP_TYPEDESCR,FS_TABLE  TYPE REF TO DATA,FS_STRUCT TYPE REF TO DATA,TD_COMP   TYPE CL_ABAP_STRUCTDESCR=>COMPONENT_TABLE,TH_COMP   LIKE LINE OF TD_COMP.FIELD-SYMBOLS:<FS_TABLE>  TYPE STANDARD TABLE,<FS_STRUCT> TYPE ANY.TR_STRUCT ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA( ST_PERSON ).
TD_COMP = TR_STRUCT->GET_COMPONENTS( ).CALL METHOD CL_ABAP_STRUCTDESCR=>CREATEEXPORTINGP_COMPONENTS = TD_COMP
*    P_STRICT     = TRUE
  RECEIVINGP_RESULT     = TR_STRUCT.CALL METHOD CL_ABAP_TABLEDESCR=>CREATEEXPORTINGP_LINE_TYPE  = TR_STRUCTRECEIVINGP_RESULT     = TR_TABLE.CREATE DATA FS_STRUCT TYPE HANDLE TR_STRUCT.
CREATE DATA FS_TABLE  TYPE HANDLE TR_TABLE.
ASSIGN FS_STRUCT->* TO <FS_STRUCT>.
ASSIGN FS_TABLE->*  TO <FS_TABLE>.动态读取表结构
TYPES:BEGIN OF TYP_PERSON,NAME TYPE CHAR10,SEX  TYPE CHAR1,AGE  TYPE I,END OF TYP_PERSON.DATA: TH_PERSON TYPE TYP_PERSON,TD_PERSON TYPE TABLE OF TYP_PERSON.PERFORM FRM_SWAP_TABLE  TABLES TD_PERSON.
*&---------------------------------------------------------------------*
*&      Form  FRM_SWAP_TABLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PTD_PERSON  text
*----------------------------------------------------------------------*
FORM FRM_SWAP_TABLE  TABLES   PTD_PERSON.
DATA: FS_TABLE  TYPE REF TO DATA,FS_STRUCT TYPE REF TO DATA,TR_TABLE  TYPE REF TO CL_ABAP_TABLEDESCR,TR_STRUCT  TYPE REF TO CL_ABAP_STRUCTDESCR,TR_TYPE   TYPE REF TO CL_ABAP_TYPEDESCR.FIELD-SYMBOLS:<FS_TABLE>  TYPE STANDARD TABLE,<FS_STRUCT> TYPE ANY.TR_STRUCT ?=CL_ABAP_TABLEDESCR=>DESCRIBE_BY_DATA( P_DATA = PTD_PERSON ).CREATE DATA FS_STRUCT TYPE HANDLE TR_STRUCT.
ASSIGN FS_STRUCT->* TO <FS_STRUCT>.
CREATE DATA FS_TABLE  LIKE TABLE OF <FS_STRUCT>.
ASSIGN FS_TABLE->*  TO <FS_TABLE>.ENDFORM.                    " FRM_SWAP_TABLE

ABAP动态编程之功能实现相关推荐

  1. 【原创】ABAP动态编程之功能实现

    根据名字获取结构 DATA: STRUCTTYPE TYPE REF TO CL_ABAP_STRUCTDESCR. STRUCTTYPE ?= CL_ABAP_TYPEDESCR=>DESCR ...

  2. ABAP动态编程-动态生成子例程和本地类-GENERATE SUBROUTINE POOL

    目录 前言 1. 动态生成子例程并调用 2. 动态生成本地类并调用 前言 本文为ABAP编程中动态生成子例程/本地类的简单示例,依托语句GENERATE SUBROUTINE POOL实现. 1. 动 ...

  3. ABAP动态编程-动态生成报表、动态屏幕

    目录 前言 一.动态生成报表并调用 二.动态生成屏幕并调用 总结 前言 本文主要讲述ABAP编程中根据逻辑自动生成报表及屏幕(依托语句GENERATE DYNPRO)的实现示例及简单说明. 一.动态生 ...

  4. Processing互动编程开发实践之动态文字打乱功能(别嫌长,代码多,图片多)

    这篇文章有什么价值? 简单介绍Processing编程 提供一份基于鼠标响应的动画的Processing代码 重头戏:描述动态文字打乱功能实现的重要细节,并将源码公开 1.什么是Processing编 ...

  5. SAP ABAP 对话框编程教程:中的模块池-09

    SAP ABAP 对话框编程教程:中的模块池-09 SAP-ABAP 支持两种类型的程序 – 报告程序和对话程序. 如果您的 ABAP 程序需要用户输入 ,则使用对话框编程. 在本教程中,您将学习: ...

  6. SAP ABAP 报告编程-08

    SAP ABAP 报告编程-08 SAP-ABAP支持两种类型的程序 - 报告程序和对话程序.报表 程序在需要显示大量数据时使用 在本教程中,您将学习: 选择屏幕 ABAP 报告计划中的事件 设置报表 ...

  7. [.NET] 《Effective C#》快速笔记 - C# 中的动态编程

    <Effective C#>快速笔记 - C# 中的动态编程 静态类型和动态类型各有所长,静态类型能够让编译器帮你找出更多的错误,因为编译器能够在编译时进行大部分的检查工作.C# 是一种静 ...

  8. ABAP动态生成经典应用之Table数据Upload 程序

    开发说明:在CBO的程序开发过程中,需要为Table准备大量的测试数据,手动录入效率低,不专业,我们可以采用其他的高级编辑工具(例如:EXCEL,EditPlus)按照Table数据存储结构准备好数据 ...

  9. python初学者编程指南_动态编程初学者指南

    python初学者编程指南 编程辅导 (PROGRAMMING TUTORIAL) Dynamic programming is an art, the more problems you solve ...

最新文章

  1. CVPR2020检测类论文最全汇总:136篇论文方向细分(附代码和论文打包下载)
  2. 索尼计划出售电池业务 含中国制造业务
  3. 嵌入式中单任务程序典型架构
  4. HTTP中post方法提交不同格式的数据
  5. TCP/IP学习笔记(四)TCP超时重传及拥塞控制
  6. python敏感字替换_教学案例_Python处理敏感词汇方法
  7. python-描述符基本
  8. 阿里云短信接口,函数方法
  9. VS2012手动关联xaml与CS文件
  10. magento2 后台Grid点击column进行排序时会出现单个重复record
  11. php中curl、fsockopen的应用
  12. PotPlayer播放器在双屏扩展模式下,视频播放时所遇到的几个常见问题的专业解答
  13. MVC模式在Java web 应用程序的实现
  14. Arduino Atmega328P烧写bootloader及熔丝
  15. word如何弄成两竖列_word10版艺术字怎么弄成竖列 - 卡饭网
  16. C++核心准则C.164:避免隐式转换运算符
  17. t00ls.php,php学习心历(2)-中文分词
  18. redis集群搭建及管理命令
  19. JAVA性能测试脚本分析
  20. 何制作手机自适应网页

热门文章

  1. 如何判断一个创业公司是否有上市前景?
  2. 【pmcaff】2014互联网公司薪资排行榜
  3. Linux学习之用户管理和组管理
  4. vue2.0路由之编程式导航
  5. __get__,__getattr__和__getattribute方法
  6. 蚂蚁的难题(一) http://acm.nyist.net/JudgeOnline/status.php?pid=744
  7. RUP大讲堂(第四讲)-业务建模技术实践
  8. BZOJ1823:[JSOI2010]满汉全席(2-SAT)
  9. 9月21日云栖精选夜读 | 如何优雅地从四个方面加深对深度学习的理解
  10. 我很懒,什么都没留下系列 之 教你上手React服务端渲染(React SSR) HMR