`
王三
  • 浏览: 173699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ABAP动态编程---动态创建数据类型

    博客分类:
  • ABAP
阅读更多
代码演示了如何创建structure类型,并以其为行类型创建内表.
DATA: lrf_result_descr TYPE REF TO cl_abap_structdescr,
      lt_comp          TYPE cl_abap_structdescr=>component_table,
      l_comp           LIKE LINE OF lt_comp.

DATA: lrf_res_tabledescr TYPE REF TO cl_abap_tabledescr.

DATA: lrf_datadescr TYPE REF TO cl_abap_datadescr.

  lrf_datadescr     ?= cl_abap_datadescr=>describe_by_name( 'WERKS_D' ).
  l_comp-name       = 'WERKS'.
  l_comp-type       = lrf_datadescr.
  l_comp-as_include = abap_false.
  l_comp-suffix     = ''.
  APPEND l_comp TO lt_comp.

  lrf_datadescr     ?= cl_abap_datadescr=>describe_by_name( 'ARBPL' ).
  l_comp-name       = 'ARBPL'.
  l_comp-type       = lrf_datadescr.
  l_comp-as_include = abap_false.
  l_comp-suffix     = ''.
  APPEND l_comp TO lt_comp.

  lrf_result_descr   = cl_abap_structdescr=>create( lt_comp ).
  lrf_res_tabledescr = cl_abap_tabledescr=>create( lrf_result_descr  ).

  DATA: lw_result TYPE REF TO data,
        lt_result TYPE REF TO data.

  CREATE DATA lw_result TYPE HANDLE lrf_result_descr.
  CREATE DATA lt_result TYPE HANDLE lrf_res_tabledescr.

  FIELD-SYMBOLS: <lt_res> TYPE STANDARD TABLE,
                 <lw_res> TYPE ANY,
                 <lw_any> TYPE ANY.

  ASSIGN lt_result->* TO <lt_res>.
  ASSIGN lw_result->* TO <lw_res>.

  ASSIGN COMPONENT 'WERKS' OF STRUCTURE <lw_res>
    TO <lw_any>.
  <lw_any> = '0000000'.
  APPEND <lw_res> TO <lt_res>.

  ASSIGN COMPONENT 'WERKS' OF STRUCTURE <lw_res>
  TO <lw_any>.
  <lw_any> = '9999999'.
  APPEND <lw_res> TO <lt_res>.

  LOOP AT <lt_res> INTO <lw_res>.
    ASSIGN COMPONENT 'WERKS' OF STRUCTURE <lw_res>
      TO <lw_any>.

    WRITE: / <lw_any>.

  ENDLOOP.

动态编程是运行时才开始创建类型, 对程序的运行有影响,不建议经常使用.但在一些像比较通用功能的实现中, 如查询ABAP Dictionary中的透明表的数据内容,就可以采用动态编程实现.


分享到:
评论

相关推荐

    ABAP351高级编程-动态编程.rar

    在"ABAP351高级编程-动态编程.rar"这个压缩包中,我们聚焦于ABAP的高级主题——动态编程。动态编程是ABAP中的一个重要概念,它允许开发者在运行时创建和执行代码,提供了更大的灵活性和可扩展性。 动态编程的核心...

    实战SAP程序开发——从实例学SAP.ABAP编程1-12

    本教程“实战SAP程序开发——从实例学SAP.ABAP编程1-12”旨在引导初学者和中级开发者深入了解ABAP的基本概念和实践技巧。 1. **ABAP基本语法**:ABAP语法是学习ABAP的基础,包括数据类型、变量声明、控制结构(如...

    ABAP经典教学-PPT

    内部表是ABAP中的动态数组,可以存储任意类型的数据。它们在处理大量数据时非常有用,可以通过APPEND、INSERT、DELETE等操作进行数据操作。 结构化程序设计是ABAP的核心,包括程序、方法、类等。其中,类是面向对象...

    ABAP源代码-初学者参考 abap source codes.rar

    这个名为"ABAP源代码-初学者参考 abap source codes.rar"的压缩包为初学者提供了一些基础的ABAP代码示例,帮助他们更好地理解和学习ABAP编程。 1. **S_FLIGHT_MODEL_DATA_GENERATOR.txt**:这可能包含一个用于生成...

    \实战SAP程序开发——从实例学SAP ABAP编程7-12章

    1. 表控制是ABAP编程中用于展示动态数据的一种界面元素,它允许用户根据需要滚动、排序和选择数据。 2. 学习如何创建和使用不同类型的表控制,如Simple Table Control和Interactive Table Control。 3. 掌握如何定义...

    实战SAP程序开发-从实例学ABAP编程.rar

    - 数据类型:ABAP提供了丰富的内置数据类型,如I(整型)、N(数值型)、F(浮点型)、C(字符型)、D(日期型)等,用于声明变量。 - 变量与常量:变量用于存储数据,常量则一旦定义就不能修改。 - 表达式与...

    abap新手资料-[sapscript编程指南-].doc

    此外,熟悉ABAP的类型系统和数据处理,以及如何将业务逻辑与SAPscript结合,也是成为SAPscript专家的重要步骤。 在实际应用中,SAPscript经常与Form Painter工具一起使用,这是一个图形化界面,允许开发者直观地...

    ABAP动态内表的收集

    2. 创建数据类型为`ref to data`的变量`dy_table`和`dy_line`,它们将用于存储动态内表的引用。 3. 使用`call method cl_alv_table_create=&gt;create_dynamic_table`方法创建动态内表,传入列结构`ifc`,并导入动态表`...

    SAP-ABAP培训总结-v0.4.doc

    在SAP ABAP编程中,ABAP/4是SAP R/3系统的主要开发语言,用于定制和扩展标准业务流程。以下是对SAP ABAP基础知识的详细解释: 1. **ABAP概述** - ABAP(Advanced Business Application Programming)是SAP系统中的...

    ABAP动态内表使用的例子

    在ABAP编程语言中,动态内表(Dynamic Internal Tables)是一种非常灵活的数据结构,它允许程序员在运行时定义和操作内表。与静态内表相比,动态内表提供了更多的灵活性,尤其是在处理不确定的数据结构时更为实用。...

    ABAP4编程宝典中文版(word完整版)

    ABAP4编程宝典中文版,是一份详细深入的教程,涵盖了ABAP/4语言的基础到高级应用,旨在帮助开发者全面掌握ABAP编程技术。ABAP(Advanced Business Application Programming)是SAP公司的一种编程语言,主要用于开发...

    实战SAP程序开发——从实例学SAP ABAP编程

    - ABAP基础语法:涵盖变量声明、数据类型、流程控制语句(如IF-THEN-ELSE、SELECT-OPTIONS)、函数调用等。 - 注释与调试:学习如何在代码中添加注释,以及如何使用SAP的调试工具进行程序调试。 3. **第四章 数据...

    ABAP基础教程-系统地介绍了ABAP的应用

    2. **ABAP语法基础**:这包括数据类型、变量声明、控制结构(如IF、CASE)、循环(WHILE、FOR)、注释等基本编程元素。这些是编写任何程序的基础。 3. **内部表**:ABAP中的内部表是一种动态数组,用于存储和处理...

    实战SAP程序开发——从实例学SAP.ABAP编程

    - ABAP数据类型:理解基本数据类型如CHAR、INT、FLOAT等,以及结构化数据类型如TABLES、STRING、FIELD-SYMBOLS。 - ABAP语句结构:掌握IF...ENDIF、SELECT...INTO...FROM、LOOP...AT等基本控制流语句。 - ABAP...

    SAP ABAP动态内表构建与例子

    在SAP ABAP编程中,动态内表是一种非常重要的数据结构,它允许程序根据运行时的需求灵活地处理数据。动态内表不同于静态内表,后者在编写代码时就已经定义了结构,而动态内表的结构是在程序运行时通过变量或表达式...

    从实例学SAP ABAP编程(1-19章).zip

    这个"从实例学SAP ABAP编程(1-19章)"的教程是一个全面的入门指导,适合对SAP ABAP感兴趣的初学者。以下是对该教程各章节可能涉及的知识点的详细解析: 1. **ABAP基础**:这一部分通常会介绍ABAP的基本语法,包括...

    ABAP SQL 语句 动态 操作

    总之,"ABAP SQL语句动态操作"涉及了ABAP编程中的高级技术,包括动态SQL构建、用户界面交互、数据展示和异常处理。通过理解这些概念,开发者可以创建更灵活和强大的ABAP应用程序,但同时也要注意数据安全和程序稳定...

    ABAP4编程宝典中文版(完整版)

    ABAP4编程宝典中文版是一本全面介绍ABAP编程语言的专业书籍,旨在帮助读者深入理解和掌握SAP系统中的核心开发语言。ABAP,全称为Advanced Business Application Programming,是SAP公司开发的一种高级业务应用编程...

    三月精通ABAP--快速入门

    《三月精通ABAP——快速入门》是一本旨在帮助初学者快速掌握ABAP编程语言的教程。ABAP,全称Advanced Business Application Programming,是SAP系统中的主要编程语言,用于开发企业级应用,特别是在供应链管理(SCM...

    实战SAP程序开发--从实例学SAP ABAP编程

    "实战SAP程序开发--从实例学SAP ABAP编程"这本书无疑为我们提供了一个深入学习和实践SAP ABAP的机会。 ABAP是SAP NetWeaver平台的核心部分,它允许开发者创建业务应用程序、报表、用户接口以及与其他系统的接口。...

Global site tag (gtag.js) - Google Analytics