`
jgtang82
  • 浏览: 402080 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Dynamic ITAB, SQL, and retrieving itab definition

    博客分类:
  • ABAP
阅读更多

REPORT  z_dyn_test                            .

TYPE-POOLS : abap.
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
               <dyn_wa>,
               <dyn_field>.
DATA: dy_table TYPE REF TO data,
      dy_line  TYPE REF TO data,
      xfc TYPE lvc_s_fcat,
      ifc TYPE lvc_t_fcat.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_table(30) TYPE c DEFAULT 'T001'.
SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.
  PERFORM get_structure.
  PERFORM create_dynamic_itab.
  PERFORM get_data.
  PERFORM write_out.
*---------------------------------------------------------------------*
*       FORM get_structure                                            *
*---------------------------------------------------------------------*
FORM get_structure.
  DATA : idetails TYPE abap_compdescr_tab,
         xdetails TYPE abap_compdescr.
  DATA : ref_table_des TYPE REF TO cl_abap_structdescr.

  ref_table_des ?=
        cl_abap_typedescr=>describe_by_name( p_table ).
  idetails[] = ref_table_des->components[].
  LOOP AT idetails INTO xdetails.
    CLEAR xfc.
    xfc-fieldname = xdetails-name .
*    xfc-datatype = xdetails-type_kind.
    xfc-inttype = xdetails-type_kind.
    xfc-intlen = xdetails-length + xdetails-decimals.
    xfc-decimals = xdetails-decimals.
    APPEND xfc TO ifc.
  ENDLOOP.
ENDFORM.                    "get_structure
*---------------------------------------------------------------------*
*       FORM create_dynamic_itab                                      *
*---------------------------------------------------------------------*
FORM create_dynamic_itab.

  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = ifc
    IMPORTING
      ep_table        = dy_table.
  ASSIGN dy_table->* TO <dyn_table>.

  CREATE DATA dy_line LIKE LINE OF <dyn_table>.
  ASSIGN dy_line->* TO <dyn_wa>.
ENDFORM.                    "create_dynamic_itab

*---------------------------------------------------------------------*
*       FORM get_data                                                 *
*---------------------------------------------------------------------*
FORM get_data.
  DATA: BEGIN OF itab OCCURS 0 .
          INCLUDE STRUCTURE spfli.
  DATA: END OF itab.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE <dyn_table>
             FROM (p_table).
ENDFORM.                    "get_data
*---------------------------------------------------------------------*
*       FORM write_out                                                *
*---------------------------------------------------------------------*
FORM  write_out.
  LOOP AT <dyn_table> INTO <dyn_wa>.
    DO.
      ASSIGN COMPONENT  sy-index
         OF STRUCTURE <dyn_wa> TO <dyn_field>.
      IF sy-subrc <> 0.
        EXIT.
      ENDIF.
      IF sy-index = 1.
        WRITE:/ <dyn_field>.
      ELSE.
        WRITE: <dyn_field>.
      ENDIF.
    ENDDO.
  ENDLOOP.
ENDFORM.                    "write_out

 

More discussion about this please refer to the thread: https://www.sdn.sap.com/irj/scn/message?messageID=5851487

分享到:
评论

相关推荐

    itabis入门实例

    ITABIS(集成化自动化测试基础架构)是一个用于软件测试自动化和持续集成的框架,尤其在企业级应用中被广泛采用。本实例是为初学者准备的,旨在帮助理解ITABIS的基本用法和核心概念。已调试成功的状态表明这个实例...

    itab chrome谷歌浏览器crx插件 适合大学生和工作党

    "itab chrome谷歌浏览器crx插件"是专为大学生、工作党和追求简洁桌面体验的用户设计的一款工具。这款插件旨在优化用户的浏览体验,提供更加高效、个性化的功能。 CRX是Chrome扩展的文件格式,全称为Chrome ...

    谷歌浏览器itab离线版插件

    iTab,一个标签页美化插件,安装之后,可以取代浏览器默认的标签页,效果如下。 iTab 最大的特色在于,加入了 iOS 上的小组件的设计,让它在众多标签页美化插件中显得与众不同,而且拖动小组件可以重新调整小组件的...

    itab_chrome.crx

    itab_chrome.crx

    ABAP SQL使用技巧

    ### ABAP SQL 使用技巧详解 在 SAP 系统开发中,ABAP 语言与 SQL 查询紧密结合,通过优化 SQL 查询方式可以显著提升程序性能。本文将详细介绍 ABAP 中 SQL 查询的各种技巧,帮助开发者更好地掌握这些技能。 #### 1...

    itab_firefox.xpi

    itab_firefox.xpi

    SAP SQL语句样例

    在SAP系统中,SQL(Structured Query Language)用于管理和处理数据库。以下是一些关于SAP SQL语句样例的详细解释: 1. 这个示例是一个简单的选择查询,从VBAK表中选取所有与VBAP表中的VBELN相等的记录。这通常用于...

    itab插件,适用于chrome浏览器

    itab插件,适用于chrome浏览器

    基于struts和itabis的图书管理系统

    《基于Struts和iTaBiS的图书管理系统详解》 图书管理系统是信息技术在图书领域广泛应用的产物,它通过数字化手段,极大地提高了图书管理的效率和便捷性。本系统以Struts框架为基础,结合iTaBiS(可能为一个特定的...

    itab_chrome@1.3.26.2.crx

    itab_chrome@1.3.26.2.crx

    ITAB「iTab」-crx插件

    iTab是一款基于Html5的Chrome浏览器扩展应用。它提供了网站快速拨号、扩展应用快捷访问等功能来增强 Chrome 原生新标签页(New Tab)。 ============================== 版本:1.2.3 更新日期: 2017-04-14 1. 每日...

    iTab-crx插件

    iTab是一款基于Html5的Chrome浏览器扩展应用。它提供了网站快速拨号、扩展应用快捷访问等功能来增强 Chrome 原生新标签页(New Tab)。==============================版本:1.2.3 更新日期: 2017-04-141. 每日更新...

    abap内表使用方法

    fills an internal table with data from a database table using Open SQL statements. 例如: ```abap DATA: BEGIN OF ITAB OCCURS 10, COL1 TYPE C, COL2 TYPE I, END OF ITAB. DO 3 TIMES. APPEND INITIAL...

    itab-chome插件

    添加chrome标签页插件,拖进使用

    iTab - Awesome Tab Manager-crx插件

    语言:English 浏览器的强大功能扩展。...iTab是一款用于浏览器的简单免费的标签管理器,可在标签和窗口之间快速切换。 快捷键Alt + Space在选项卡中打开搜索栏。 搜索结果显示URL和标题与搜索词匹配的所有选项卡。

    ERP系统信息化资料:SAP专业培训教材Intro to ABAP - Chapter 07(itab).ppt

    ERP系统信息化资料:SAP专业培训教材Intro to ABAP - Chapter 07(itab).ppt

    ABAP数据库操作

    Open SQL 是一种通用的数据库语言,支持多种数据库管理系统,而 Native SQL 则是特定数据库自身的 SQL 语法。 2. 使用 Open SQL 的原则 使用 Open SQL 时,需要遵守以下原则: * 尽可能减少满足条件的数据条数。 ...

    ABAP报表开发实例.pdf

    然后,我们使用LOOP语句遍历内表ITAB,并从EKPO表中查询数据,并将其存储到内表ITAB中。相关代码如下: ```abap LOOP AT ITAB. SELECT SUM( MENGE ) INTO ITAB-MENGE FROM EKPO WHERE EBELN EQ ITAB-EBELN. ...

    ABAP的程序的类型

    AND bukrs = itab-bukrs. ``` 对于每条记录,再次查询`BSEG`表以获取更多信息,并更新`itab`数据结构。 ```abap WRITE:/'|',(8)itab-bukrs centered, '|',(10)itab-budat, '|',(8)itab-belnr centered, '|',(8)...

    ABAP 报表开发实例

    DATA: BEGIN OF ITAB OCCURS 0, EBELN LIKE EKKO-EBELN, MENGE LIKE EKPO-MENGE, WEMNG LIKE EKET-WEMNG, END OF ITAB. ``` 现在我们已经定义完了内表 ITAB。接着我们该定义数据了。数据就像 C 语言里的常量。其...

Global site tag (gtag.js) - Google Analytics