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

abap 动态编程 dynamic programming in abap

    博客分类:
  • ABAP
阅读更多

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的使用,因为动态编程中只有到运行期才确定,所以会带来性能上的下降并且会避开语法检查阶段,如果不是特别需要,不要使用。

2
0
分享到:
评论

相关推荐

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

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

    SAP ABAP编程实战基础

    ABAP中的DYNPRO(Dynamic Programming)是用于定义屏幕和对话框的工具。通过DYNPRO可以创建用户界面,并进行流程控制。学习如何建立DYNPRO程序、使用子屏幕、放置光标、控制屏幕流程以及设置屏幕字段属性等都是用户...

    Programming dynamic ALV in WebDynpro for ABAP

    ### 编程动态 ALV 在 WebDynpro for ABAP 中的应用 #### 概述 本文旨在探讨如何在 WebDynpro for ABAP 中编程实现动态 ALV(Application List Viewer)。通过本教程,您将学会如何根据用户的选择动态地构建 ALV 的...

    web dynpro abap programming guidelines

    #### 三、动态编程(Dynamic Programming) **3.1 动态布局操作(Dynamic Layout Manipulation)** - **动态处理参数映射**: 允许在运行时根据条件动态调整UI元素的布局。 - **动态上下文操作**: 动态改变视图上下文的...

    ECC ABAP NEW CHRACTER

    #### 动态编程与 RTTS (Dynamic Programming & RTTS) 动态编程与 RTTS 是 ECC 6 中另一项重要的技术革新,它增强了 ABAP 语言的灵活性和动态性。 - **动态编程**:允许开发者在运行时创建和执行代码,这为实现高度...

    ABAP 调用 DLL文件

    在IT行业中,SAP ABAP(Advanced Business Application Programming)是一种专为SAP系统设计的编程语言,用于开发和定制企业级应用。而调用DLL(Dynamic Link Library)文件是Windows操作系统中常见的一种技术,允许...

    abap速查手册

    - **定义**:ABAP(Advanced Business Application Programming)是一种高级业务应用编程语言,由SAP公司开发并主要用于SAP系统的应用程序开发。 - **特点**: - 集成性强:ABAP与SAP系统紧密结合,支持多种SAP组件...

    ABAP语法详解教程

    九、ABAP动态编程 1. EXEC SQL...ENDEXEC:用于执行SQL语句。 2. Open SQL:简化了与数据库的交互,如SELECT、INSERT、UPDATE和DELETE。 通过以上基础知识的学习,你将能够理解ABAP的基本概念,并能开始编写简单...

    ABAP_Program_Tips

    - **3.3.10 动态选择屏幕 (Dynamic Selection Screens)** - **概述**:根据用户的输入动态调整选择屏幕。 - **用途**:提高选择屏幕的灵活性和智能化。 ##### 3.4 文件处理 (File Processing) - **3.4.1 下载到 ...

    Floor Plan Manager - ABAP Webdynpro

    - **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.pdf

    **BC490_ABAP Performance Tuning** 这份文档主要聚焦于SAP系统中的ABAP(Advanced Business Application Programming)语言的性能优化技巧和技术。文档强调了在R/3 Release 4.6C版本中对ABAP程序进行性能调优的方法...

    ABAP简介(SAP)

    ABAP(Advanced Business Application Programming),作为SAP的核心编程语言之一,自1980年代末期以来不断发展完善,成为构建SAP R/3系统应用程序的主要工具。ABAP属于第四代编程语言,其语法简洁且易于理解,接近...

    ABAP Program Tips

    ABAP(Advanced Business Application Programming)是一种专为SAP系统设计的编程语言,广泛应用于SAP系统的开发与维护中。下面,我们将从几个主要方面来探讨这些ABAP编程技巧。 ### 一、有用的事物处理...

    SAP BC402 课程中文自学笔记

    - **课程编号与名称**: BC402 - ABAP Programming Techniques - **适用对象**: 主要面向希望深入学习ABAP编程语言的初学者及有一定经验的开发人员。 - **主要内容**: 通过11个单元的学习,涵盖了ABAP编程的基础概念...

    Webdynrpo cases

    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)

    标题与描述中的关键词“BC410 Programming User Dialog with Classical Screen (Dynpros)”指向了SAP ABAP中一个核心的课程主题,该主题聚焦于使用传统的屏幕(Dynpros)进行用户对话编程。在SAP ABAP环境中,...

    ABAP Program Tips.pdf

    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 ...

    ABAP面试大全

    - **Dynamic Text**: 显示动态文本。 - **Push Button**: 按钮控件。 - **Radio Button**: 单选按钮。 - **Check Box**: 复选框。 #### 五、BDC **5.1 BDC录屏的事务代码** - `BDC`: BDC事务代码。 **5.2 BDC与...

    SAP Web Dynpro .pdf

    #### 五、控制器与上下文编程(Unit 5: Controller and Context Programming) **5.1 控制器与上下文交互** - **数据读取:**从上下文中获取数据,并显示在UI上。 - **数据写入:**将用户输入的数据更新到上下文中...

Global site tag (gtag.js) - Google Analytics