1. 获取DDIC中的table,view.structure的结构的每个字段。
FORM get_components_ddic USING p_name TYPE any
CHANGING pt_component TYPE abap_component_tab.
DATA : lrf_linetype TYPE REF TO cl_abap_structdescr.
lrf_linetype ?= cl_abap_structdescr=>describe_by_name( p_name ).
pt_component = lrf_linetype->get_components( ).
ENDFORM . "get_components_ddic
知道了字段名后,则可以动态访问这个字段的值。以名称:值形式输出如:
FORM handle_detail_item_data USING p_ddic_name TYPE any
p_list TYPE ANY TABLE .
FIELD -SYMBOLS: <l_comp> TYPE ANY ,
<l_component> TYPE abap_componentdescr,
<l_comp_value> TYPE ANY .
DATA :lt_component TYPE abap_component_tab,
l_str TYPE string,
l_pos TYPE i .
PERFORM get_components_ddic USING p_ddic_name
CHANGING lt_component.
LOOP AT lt_component ASSIGNING <l_component>.
WRITE :/ , AT 5 (10 ) <l_component>-name LEFT -JUSTIFIED.
CLEAR l_pos.
LOOP AT p_list ASSIGNING <l_comp>.
l_pos = l_pos + 20 .
CONCATENATE '<l_comp>-' <l_component>-name INTO l_str.
ASSIGN (l_str) TO <l_comp_value>.
WRITE : AT l_pos
<l_comp_value> LEFT -JUSTIFIED .
ENDLOOP .
ENDLOOP .
ENDFORM . " hadle_detail_item_data
注意<l_comp_value>这个field symbol中即为字段的值。
2. OPEN SQL
data : itab type STANDARD TABLE OF sflight with HEADER LINE .
select *
into TABLE itab
from ('sflight' )
.
loop at itab.
WRITE : / itab-carrid.
ENDloop .
表名可以动态化,条件也可以动态化。如
select *
into TABLE itab
from ('sflight' )
where ( where_str).
注意where_str是个内表,行类型是字符串。
而且结合上例中取得表中的各个字段名,可以实现如SE16的效果。
PS: 主要为field symbol与RTTS的使用,因为动态编程中只有到运行期才确定,所以会带来性能上的下降并且会避开语法检查阶段,如果不是特别需要,不要使用。
分享到:
相关推荐
在"ABAP351高级编程-动态编程.rar"这个压缩包中,我们聚焦于ABAP的高级主题——动态编程。动态编程是ABAP中的一个重要概念,它允许开发者在运行时创建和执行代码,提供了更大的灵活性和可扩展性。 动态编程的核心...
ABAP中的DYNPRO(Dynamic Programming)是用于定义屏幕和对话框的工具。通过DYNPRO可以创建用户界面,并进行流程控制。学习如何建立DYNPRO程序、使用子屏幕、放置光标、控制屏幕流程以及设置屏幕字段属性等都是用户...
### 编程动态 ALV 在 WebDynpro for ABAP 中的应用 #### 概述 本文旨在探讨如何在 WebDynpro for ABAP 中编程实现动态 ALV(Application List Viewer)。通过本教程,您将学会如何根据用户的选择动态地构建 ALV 的...
#### 三、动态编程(Dynamic Programming) **3.1 动态布局操作(Dynamic Layout Manipulation)** - **动态处理参数映射**: 允许在运行时根据条件动态调整UI元素的布局。 - **动态上下文操作**: 动态改变视图上下文的...
#### 动态编程与 RTTS (Dynamic Programming & RTTS) 动态编程与 RTTS 是 ECC 6 中另一项重要的技术革新,它增强了 ABAP 语言的灵活性和动态性。 - **动态编程**:允许开发者在运行时创建和执行代码,这为实现高度...
在IT行业中,SAP ABAP(Advanced Business Application Programming)是一种专为SAP系统设计的编程语言,用于开发和定制企业级应用。而调用DLL(Dynamic Link Library)文件是Windows操作系统中常见的一种技术,允许...
- **定义**:ABAP(Advanced Business Application Programming)是一种高级业务应用编程语言,由SAP公司开发并主要用于SAP系统的应用程序开发。 - **特点**: - 集成性强:ABAP与SAP系统紧密结合,支持多种SAP组件...
九、ABAP动态编程 1. EXEC SQL...ENDEXEC:用于执行SQL语句。 2. Open SQL:简化了与数据库的交互,如SELECT、INSERT、UPDATE和DELETE。 通过以上基础知识的学习,你将能够理解ABAP的基本概念,并能开始编写简单...
- **3.3.10 动态选择屏幕 (Dynamic Selection Screens)** - **概述**:根据用户的输入动态调整选择屏幕。 - **用途**:提高选择屏幕的灵活性和智能化。 ##### 3.4 文件处理 (File Processing) - **3.4.1 下载到 ...
- **Development Skills:** Knowledge of ABAP programming and experience with ABAP Web Dynpro are essential. Familiarity with UI design principles is also beneficial. - **System Requirements:** The ...
**BC490_ABAP Performance Tuning** 这份文档主要聚焦于SAP系统中的ABAP(Advanced Business Application Programming)语言的性能优化技巧和技术。文档强调了在R/3 Release 4.6C版本中对ABAP程序进行性能调优的方法...
ABAP(Advanced Business Application Programming),作为SAP的核心编程语言之一,自1980年代末期以来不断发展完善,成为构建SAP R/3系统应用程序的主要工具。ABAP属于第四代编程语言,其语法简洁且易于理解,接近...
ABAP(Advanced Business Application Programming)是一种专为SAP系统设计的编程语言,广泛应用于SAP系统的开发与维护中。下面,我们将从几个主要方面来探讨这些ABAP编程技巧。 ### 一、有用的事物处理...
- **课程编号与名称**: BC402 - ABAP Programming Techniques - **适用对象**: 主要面向希望深入学习ABAP编程语言的初学者及有一定经验的开发人员。 - **主要内容**: 通过11个单元的学习,涵盖了ABAP编程的基础概念...
5. "Working with Dynamic Tables in Interactive Adobe Forms and WebDynpro ABAP.pdf":此文件讲解了如何在Web Dynpro ABAP和SAP Interactive Forms by Adobe之间协同工作,处理动态表格,这在创建灵活的表单和...
标题与描述中的关键词“BC410 Programming User Dialog with Classical Screen (Dynpros)”指向了SAP ABAP中一个核心的课程主题,该主题聚焦于使用传统的屏幕(Dynpros)进行用户对话编程。在SAP ABAP环境中,...
ABAP Programming Tips Page 1 of 151 7.2 SENDING AN IDOC------------------------------52 7.3 CHANGING AN IDOC---------------------------52 7.4 CHANGING AN IDOC’S STATUS-----------53 7.5 READING AN ...
- **Dynamic Text**: 显示动态文本。 - **Push Button**: 按钮控件。 - **Radio Button**: 单选按钮。 - **Check Box**: 复选框。 #### 五、BDC **5.1 BDC录屏的事务代码** - `BDC`: BDC事务代码。 **5.2 BDC与...
#### 五、控制器与上下文编程(Unit 5: Controller and Context Programming) **5.1 控制器与上下文交互** - **数据读取:**从上下文中获取数据,并显示在UI上。 - **数据写入:**将用户输入的数据更新到上下文中...