代码演示了如何创建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"这个压缩包中,我们聚焦于ABAP的高级主题——动态编程。动态编程是ABAP中的一个重要概念,它允许开发者在运行时创建和执行代码,提供了更大的灵活性和可扩展性。 动态编程的核心...
本教程“实战SAP程序开发——从实例学SAP.ABAP编程1-12”旨在引导初学者和中级开发者深入了解ABAP的基本概念和实践技巧。 1. **ABAP基本语法**:ABAP语法是学习ABAP的基础,包括数据类型、变量声明、控制结构(如...
内部表是ABAP中的动态数组,可以存储任意类型的数据。它们在处理大量数据时非常有用,可以通过APPEND、INSERT、DELETE等操作进行数据操作。 结构化程序设计是ABAP的核心,包括程序、方法、类等。其中,类是面向对象...
这个名为"ABAP源代码-初学者参考 abap source codes.rar"的压缩包为初学者提供了一些基础的ABAP代码示例,帮助他们更好地理解和学习ABAP编程。 1. **S_FLIGHT_MODEL_DATA_GENERATOR.txt**:这可能包含一个用于生成...
1. 表控制是ABAP编程中用于展示动态数据的一种界面元素,它允许用户根据需要滚动、排序和选择数据。 2. 学习如何创建和使用不同类型的表控制,如Simple Table Control和Interactive Table Control。 3. 掌握如何定义...
- 数据类型:ABAP提供了丰富的内置数据类型,如I(整型)、N(数值型)、F(浮点型)、C(字符型)、D(日期型)等,用于声明变量。 - 变量与常量:变量用于存储数据,常量则一旦定义就不能修改。 - 表达式与...
此外,熟悉ABAP的类型系统和数据处理,以及如何将业务逻辑与SAPscript结合,也是成为SAPscript专家的重要步骤。 在实际应用中,SAPscript经常与Form Painter工具一起使用,这是一个图形化界面,允许开发者直观地...
2. 创建数据类型为`ref to data`的变量`dy_table`和`dy_line`,它们将用于存储动态内表的引用。 3. 使用`call method cl_alv_table_create=>create_dynamic_table`方法创建动态内表,传入列结构`ifc`,并导入动态表`...
在SAP ABAP编程中,ABAP/4是SAP R/3系统的主要开发语言,用于定制和扩展标准业务流程。以下是对SAP ABAP基础知识的详细解释: 1. **ABAP概述** - ABAP(Advanced Business Application Programming)是SAP系统中的...
在ABAP编程语言中,动态内表(Dynamic Internal Tables)是一种非常灵活的数据结构,它允许程序员在运行时定义和操作内表。与静态内表相比,动态内表提供了更多的灵活性,尤其是在处理不确定的数据结构时更为实用。...
ABAP4编程宝典中文版,是一份详细深入的教程,涵盖了ABAP/4语言的基础到高级应用,旨在帮助开发者全面掌握ABAP编程技术。ABAP(Advanced Business Application Programming)是SAP公司的一种编程语言,主要用于开发...
- ABAP基础语法:涵盖变量声明、数据类型、流程控制语句(如IF-THEN-ELSE、SELECT-OPTIONS)、函数调用等。 - 注释与调试:学习如何在代码中添加注释,以及如何使用SAP的调试工具进行程序调试。 3. **第四章 数据...
2. **ABAP语法基础**:这包括数据类型、变量声明、控制结构(如IF、CASE)、循环(WHILE、FOR)、注释等基本编程元素。这些是编写任何程序的基础。 3. **内部表**:ABAP中的内部表是一种动态数组,用于存储和处理...
- ABAP数据类型:理解基本数据类型如CHAR、INT、FLOAT等,以及结构化数据类型如TABLES、STRING、FIELD-SYMBOLS。 - ABAP语句结构:掌握IF...ENDIF、SELECT...INTO...FROM、LOOP...AT等基本控制流语句。 - ABAP...
在SAP ABAP编程中,动态内表是一种非常重要的数据结构,它允许程序根据运行时的需求灵活地处理数据。动态内表不同于静态内表,后者在编写代码时就已经定义了结构,而动态内表的结构是在程序运行时通过变量或表达式...
这个"从实例学SAP ABAP编程(1-19章)"的教程是一个全面的入门指导,适合对SAP ABAP感兴趣的初学者。以下是对该教程各章节可能涉及的知识点的详细解析: 1. **ABAP基础**:这一部分通常会介绍ABAP的基本语法,包括...
总之,"ABAP SQL语句动态操作"涉及了ABAP编程中的高级技术,包括动态SQL构建、用户界面交互、数据展示和异常处理。通过理解这些概念,开发者可以创建更灵活和强大的ABAP应用程序,但同时也要注意数据安全和程序稳定...
ABAP4编程宝典中文版是一本全面介绍ABAP编程语言的专业书籍,旨在帮助读者深入理解和掌握SAP系统中的核心开发语言。ABAP,全称为Advanced Business Application Programming,是SAP公司开发的一种高级业务应用编程...
《三月精通ABAP——快速入门》是一本旨在帮助初学者快速掌握ABAP编程语言的教程。ABAP,全称Advanced Business Application Programming,是SAP系统中的主要编程语言,用于开发企业级应用,特别是在供应链管理(SCM...
"实战SAP程序开发--从实例学SAP ABAP编程"这本书无疑为我们提供了一个深入学习和实践SAP ABAP的机会。 ABAP是SAP NetWeaver平台的核心部分,它允许开发者创建业务应用程序、报表、用户接口以及与其他系统的接口。...