2016.4.26_动态内表【ABAP】

在最后一行加个断点,执行看<FS_DTAB>的值。在选择屏幕输多少,内表生成多少列。

DATA:  DY_TABLE TYPE REF TO DATA,
       DY_WA TYPE REF TO DATA,
       IT_STR TYPE LVC_T_FCAT,
       WA_STR TYPE LVC_S_FCAT.

FIELD-SYMBOLS: <FS_DTAB> TYPE STANDARD TABLE,
               <FS_DWA>  TYPE ANY,
               <FS_VALUE> TYPE ANY. 

DATA LV_SEQ TYPE I VALUE 1.
DATA LV_SEQ_C TYPE C LENGTH 2.

PARAMETERS: P_LINE TYPE I DEFAULT 8.

 DO P_LINE TIMES.
    LV_SEQ_C = LV_SEQ.
    CONCATENATE ‘C‘ LV_SEQ_C INTO WA_STR-FIELDNAME.

    WA_STR-COL_POS = LV_SEQ.
    WA_STR-INTTYPE = ‘CHAR‘.
    WA_STR-INTLEN = 1.
    APPEND WA_STR TO IT_STR.
    CLEAR WA_STR.

    LV_SEQ = LV_SEQ + 1.
  ENDDO.

  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
    EXPORTING
      IT_FIELDCATALOG = IT_STR
    IMPORTING
      EP_TABLE        = DY_TABLE. 

  ASSIGN DY_TABLE->* TO <FS_DTAB>.
  CREATE DATA DY_WA LIKE LINE OF <FS_DTAB>.
  ASSIGN DY_WA->* TO <FS_DWA>. 
时间: 2024-08-29 12:04:31

2016.4.26_动态内表【ABAP】的相关文章

BAP中创建动态内表的三种方法(转载)

BAP中创建动态内表的三种方法 第一种: 如果我们需要的动态内表字段或者动态工作区和数据字典中的类型一致,可以直接使用CREATE DATA生成,当然也可以是自定义类型. 比如要产生和数据表MARA结构一致的动态内表: DATA : DY_TABLE TYPE REF TO DATA, WA_LINE TYPE REF TO DATA. FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE . CREATE DATA DY_TABLE TYPE TABL

动态内表实例

REPORT ZTEST. FIELD-SYMBOLS:<DYN_TABLE> TYPE STANDARD TABLE, <DYN_WA>, <DYN_FIELD>. DATA: DY_TABLE TYPE REF TO DATA, DY_LINE  TYPE REF TO DATA, IT_STRUCTURE TYPE LVC_T_FCAT, WA_STRUCTURE TYPE LVC_S_FCAT. START-OF-SELECTION. PERFORM CREAT

ABAP动态内表运用

REPORT ztest. DATA: BEGIN OF wa_ets, vbeln LIKE lips-vbeln, posnr LIKE lips-posnr, END OF wa_ets. DATA: l_fname LIKE dd03l-fieldname, typedesr TYPE REF TO cl_abap_typedescr, gt_comp TYPE cl_abap_structdescr=>component_table, gs_comp LIKE LINE OF gt_c

ABAP 动态生成内表的几种方法

最近要写个程序,既有更新的,也有删除的,需要涉及到很多系统表,如果一个表一个表进行更新或者删除太慢了,于是就想通过创建动态内表来实现这些功能,在网上找了一些资料,经过多次尝试,终于测试成功了.网上讲述的创建动态内表的方法大致有两种.我做了一下测试,源代码附后.在这里提醒大家一点,在做动态更新程序的时候,要注意两点:      1.使用modify (p_tabname) from <dyn_wa>. 的时候,一定要确定要更新的字段是不是系统表的关键字段,如果是关键字段的话,需要先删除这条记录,

ABAP 内表 详解

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4293475.html 老式的内表类型定义... 214 基于基本类型内表类型... 214 基于结构体类型内表类型... 215 老式的内表对象创建... 215 参照现有内表类型或内表对象来创建... 215 参照现有结构类型或结构对象来

[ABAP技术总结]内表

目录导航 声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 3.      内表... 33 3.1.           LOOP AT循环内表... 33 3.1.1.        SUM.. 34 3.1.2.        AT... ENDAT. 34 3.1.3.        自已实现AT... ENDAT. 37 3.2.           在LOOP AT中修改当前内表行... 39 3.2.1.      

ABAP内表数据做层次XML输出

*&---------------------------------------------------------------------**& Report  Z_BARRY_TEST_XML*&---------------------------------------------------------------------**& 46C - ECC6 通用*&----------------------------------------------

ABAP 内表访问表达式的性能

内表访问表达式是ABAP 7.4中引入的重要特性,可以使语句变得更加简洁.美观.那么它的读写性能怎么样呢?我进行了一点点测试. 读取 测试代码,使用三种方式读取同一内表,分别是read table关键字.表达式和read table...binary search: REPORT ztest_read. DATA: BEGIN OF gs_test, index TYPE i, des TYPE string, END OF gs_test. DATA: gt_test LIKE STANDAR

SAP ABAP编程 FOR ALL ENTRIES IN使用指南 将表与内表串联

在ABAP开发中,对于不能使用join的聚集表或者需要使用SELECT 的内表,我们一般使用for all entries in 语句将该表与内表串联,查询出需要的数据,例如 TYPES: BEGIN OF t_asnum, asnum LIKE asmd-asnum, END OF t_asnum. DATA:gt_asnum TYPE TABLE OF t_asnum. CLEAR: g_matkl,gt_asnum. SELECT SINGLE matkl FROM zmm_ys_jsdl