美文网首页
动态内表

动态内表

作者: abapCiCi | 来源:发表于2022-05-07 23:50 被阅读0次

由于今天碰了这个问题所以特此学习了动态内表。变成自己的知识。
总结: 网上面的只是告诉我们怎么做。
为什么这么做的底层原因是
大量使用类的反射,
什么是类的反射 ,请参考
(76条消息) 为什么要反射?江上渔者21号的博客-CSDN博客为什么需要反射

1创建动态表类的调用

*取出表结构的字段目录
CALL FUNCTION 'NAMETAB_GET'
EXPORTING
langu = sy-langu
tabname = p_name
TABLES
nametab = lt_table
EXCEPTIONS
no_texts_found = 1.
*根据取出的字段目录生成参考字段目录
LOOP AT lt_table INTO ls_table.
ls_alv_cat-fieldname = ls_table-fieldname.
ls_alv_cat-ref_table = p_name.
ls_alv_cat-ref_field = ls_table-fieldname.
APPEND ls_alv_cat TO lt_alv_cat.
CLEAR ls_alv_cat.
ENDLOOP.

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

2根据动态结构创建动态内表

*根据字段目录创建动态结构类型
CALL METHOD cl_abap_structdescr=>create
EXPORTING
p_components = lt_comp
RECEIVING
p_result = lr_struc.
*根据动态结构创建动态内表类型
CALL METHOD cl_abap_tabledescr=>create
EXPORTING
p_line_type = lr_struc
RECEIVING
p_result = lr_table.
*参照动态结构类型和动态内表类型创建内表与工作区
CREATE DATA dyn_wa TYPE HANDLE lr_struc.
CREATE DATA dyn_table TYPE HANDLE lr_table.
*指定内表与工作区到字段符号
ASSIGN dyn_wa->* TO <dyn_wa>.
ASSIGN dyn_table->* TO <dyn_table>.

3 直接创建

*创建动态表结构
CREATE DATA dyn_table TYPE TABLE OF (p_name).
*创建动态内表
ASSIGN dyn_table->* TO <dyn_table>.
*创建动态工作区结构
CREATE DATA dyn_wa LIKE LINE OF <dyn_table>.
*创建动态工作区
ASSIGN dyn_wa->* TO <dyn_wa>.

获得动态表数据

SELECT * INTO CORRESPONDING FIELDS OF TABLE <dyn_table> UP TO 100 ROWS FROM (p_name).

相关文章

  • 动态内表

    动态内表相当于从一张表里捞数据,filecat是不固定的,想用什么传什么。 例子: assign componen...

  • 动态内表

    由于今天碰了这个问题所以特此学习了动态内表。变成自己的知识。总结: 网上面的只是告诉我们怎么做。为什么这么做的底层...

  • ABAP动态内表

    使用了动态内表的方法,参考了网上的案例,具体如下

  • SAP ABAP动态内表

    动态内表的创建和使用主要有以下几点,其中方法三最简单。: 1.动态内表的创建,首先要定义动态结构,然后再根据定义的...

  • ABAP动态内表实战

    1、取数表 数据如下: 2、上代码 3、运行结果

  • 通过FIELDCAT构建动态内表

    ALV界面根据选择界面输入值的变化而变化,所以用动态内表比较方便 循环多少次,这个根据不同的项目进行计算,最好把限...

  • sqlalchmy动态创建表和动态反向映射获取model

    根据表名动态创建表 动态获取模型

  • abap系列-动态创建内表或结构

    封装了个动态创建对象的类,可以参考ddic对象创建,也可以根据程序内的本地变量创建.- 使用方法1:根据ddic对...

  • iOS Sqlite数据库的使用

    总体内容1、sqlite基本操作封装2、动态建表-基本创建3、动态建表-忽略字段4、动态更新表-迁移数据5、保存/...

  • 2018-09-21

    目录 1、制作销售人员表动态 2、制作日期销售表动态 一、制作销售人员表动态 选择A1:B7单元格→公式→根据所选...

网友评论

      本文标题:动态内表

      本文链接:https://www.haomeiwen.com/subject/prycurtx.html