动态内表的俩栗子_SAP刘梦_新浪博客

货铺QQ群号:834508274

微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的。

进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合 

不修改昵称会被不定期踢除,谢谢配合


昨天提到创建动态内表,今天举两个栗子

动态内表的俩栗子

*&---------------------------------------------------------------------*
*& Report ZLM_DY01
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLM_DY01.

PARAMETERS P_NAME TYPE RSRD1-TBMA_VAL.

DATA: LR_STRUC  TYPE REF TO CL_ABAP_STRUCTDESCR,
      LR_DATA   TYPE REF TO CL_ABAP_DATADESCR,
      LR_TABLE  TYPE REF TO CL_ABAP_TABLEDESCR,
      DYN_TABLE TYPE REF TO DATA,
      DYN_WA    TYPE REF TO DATA.
DATA:L_TABNAME TYPE TABNAME.
FIELD-SYMBOLS:  TYPE STANDARD TABLE,
                   TYPE ANY.

L_TABNAME = P_NAME.
LR_STRUC ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( L_TABNAME ).

LR_TABLE ?= CL_ABAP_TABLEDESCR=>CREATE( P_LINE_TYPE = LR_STRUC ).

CREATE DATA DYN_WA    TYPE HANDLE LR_STRUC.
CREATE DATA DYN_TABLE TYPE HANDLE LR_TABLE.
ASSIGN DYN_WA->*    TO .
ASSIGN DYN_TABLE->* TO .

SELECT * INTO CORRESPONDING FIELDS OF TABLE 
       UP TO 100 ROWS
     FROM (L_TABNAME).

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_STRUCTURE_NAME = L_TABNAME
  TABLES
    T_OUTTAB         = 
  EXCEPTIONS
    PROGRAM_ERROR    = 1
    OTHERS           = 2.
IF SY-SUBRC <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


 

*&---------------------------------------------------------------------*
*& Report ZLM_DY02
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZLM_DY02.

DATA:  GT_FIELDCAT     TYPE LVC_T_FCAT.
DATA: GT_FILEDS       TYPE STANDARD TABLE OF DFIES.
DATA: GS_FILEDS       TYPE DFIES.
DATA:    GS_FIELDCAT     TYPE LVC_S_FCAT.
FIELD-SYMBOLS:  TYPE STANDARD TABLE.  " 内表指针
DATA: DY_TABLE TYPE REF TO DATA.

PARAMETERS P_NAME TYPE DDOBJNAME.

CALL FUNCTION 'DDIF_FIELDINFO_GET' "利用结构名取结构
  EXPORTING
    TABNAME        = P_NAME
  TABLES
    DFIES_TAB      = GT_FILEDS
  EXCEPTIONS
    NOT_FOUND      = 1
    INTERNAL_ERROR = 2
    OTHERS         = 3.

LOOP AT GT_FILEDS INTO GS_FILEDS."动态结构filecat
  CLEAR:GS_FIELDCAT.
  MOVE-CORRESPONDING GS_FILEDS TO GS_FIELDCAT.
  GS_FIELDCAT-REF_TABLE = P_NAME.
  GS_FIELDCAT-REF_FIELD = GS_FILEDS-FIELDNAME.
  GS_FIELDCAT-FIELDNAME = GS_FILEDS-FIELDNAME.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
ENDLOOP.

CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE "动态内表结构填充
  EXPORTING
    IT_FIELDCATALOG           = GT_FIELDCAT
  IMPORTING
    EP_TABLE                  = DY_TABLE
  EXCEPTIONS
    GENERATE_SUBPOOL_DIR_FULL = 1
    OTHERS                    = 2.


ASSIGN DY_TABLE->* TO .

SELECT * INTO CORRESPONDING FIELDS OF TABLE 
       UP TO 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值