DATA: DY_TABLE TYPE REF TO DATA,
DY_WA TYPE REF TO DATA. FIELD-SYMBOLS: <DYN_TABLE> TYPE TABLE, "是一个标志,可以理解为一个指针,将来创建的内表就要通过它们来访问
<DYN_WA> TYPE ANY,
<FS> TYPE ANY.
  DATA: L_SCRFNAME  TYPE SCRFNAME,
LS_LAYOUT TYPE LVC_S_LAYO,
LT_FIELDCAT TYPE LVC_T_FCAT,
LT_EXCLUDE TYPE UI_FUNCTIONS.
*  此方法用于构建动态内表,输入=构建的结构,输出=dy_table
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = LT_FIELDCAT
IMPORTING
EP_TABLE = DY_TABLE. ASSIGN DY_TABLE->* TO <DYN_TABLE>.
CREATE DATA DY_WA LIKE LINE OF <DYN_TABLE>.
ASSIGN DY_WA->* TO <DYN_WA>. DATA FIELDNAME().
SORT IT_DAT_KY[] BY MATNR.
LOOP AT IT_DAT_KY.
"这里把日期类型定义为char型,因为用DATS报错。
FIELDNAME = IT_DAT_KY-DATUM.
ASSIGN COMPONENT FIELDNAME OF STRUCTURE <dyn_wa> TO <FS>.
<FS> = IT_DAT_KY-MENGE.
ASSIGN COMPONENT 'MGSUM' OF STRUCTURE <dyn_wa> TO <FS>.
<FS> = <FS> + IT_DAT_KY-MENGE.
AT END OF MATNR.
"分配结构里的物料号,用FS字段 指向它
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <dyn_wa> TO <FS>.
<FS> = IT_DAT_KY-MATNR.
ASSIGN COMPONENT 'MAKTX' OF STRUCTURE <dyn_wa> TO <FS>.
SELECT SINGLE MAKTX INTO @DATA(L_MAKTX) FROM MAKT
WHERE MATNR = @IT_DAT_KY-MATNR AND SPRAS = @SY-LANGU.
<FS> = L_MAKTX.
APPEND <dyn_wa> TO <dyn_table>.
CLEAR <dyn_wa>.
ENDAT.
ENDLOOP.
*& 102
DEFINE FCAT.
CLEAR : LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = &.
LS_FIELDCAT-COLTEXT = &.
LS_FIELDCAT-SELTEXT = &.
LS_FIELDCAT-SCRTEXT_L = &.
LS_FIELDCAT-INTLEN = &.
LS_FIELDCAT-INTTYPE = 'C'.
LS_FIELDCAT-OUTPUTLEN = .
IF & = 'MATNR'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-REF_TABLE = 'MARA'.
LS_FIELDCAT-REF_FIELD = 'MATNR'.
ENDIF.
IF & = 'MAKTX'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-OUTPUTLEN = .
ENDIF.
IF & = 'MGSUM'.
LS_FIELDCAT-JUST = 'R' .
LS_FIELDCAT-EMPHASIZE = 'C310' .
ENDIF.
APPEND LS_FIELDCAT TO P_LT_FIELDCAT.
END-OF-DEFINITION. CLEAR P_LS_LAYOUT.
P_LS_LAYOUT-BOX_FNAME = 'SEL'.
P_LS_LAYOUT-ZEBRA = 'X'. CLEAR P_LT_FIELDCAT.
LS_FIELDCAT-CHECKBOX = 'X'.
LS_FIELDCAT-FIELDNAME = 'SEL'.
LS_FIELDCAT-SCRTEXT_L = '选择'.
LS_FIELDCAT-NO_OUT = 'X'.
LS_FIELDCAT-EDIT = 'X'.
APPEND LS_FIELDCAT TO P_LT_FIELDCAT. SORT TDATE[].
LOOP AT TDATE.
CLEAR L_DATUM.
CALL FUNCTION 'FORMAT_DATE_4_OUTPUT'
EXPORTING
DATIN = TDATE
FORMAT = 'YYYY.MM.DD'
IMPORTING
DATEX = L_DATUM .
FCAT TDATE L_DATUM ''.
ENDLOOP.

ABAP 动态内表 动态ALV的更多相关文章

  1. ABAP 动态内表添加单元格颜色字段

    *动态内表alv显示时要求某些单元格显示颜色 *wa_fldcat-datatype不能添加LVC_T_SCOL类型,在创建好内表之后,再添加颜色列. DATA: wa_fldcat TYPE lvc ...

  2. 转载: ABAP动态内表操作

    顾名思义,动态表的列是可以根据数据的变化而变化的,会使报表显示更简洁漂亮. 以下是实现方法. ------------------------------------------- 1, 创建动态内表 ...

  3. 转ABAP将内表行列转换实例(动态内表) .

    把内表的行列转换,网上的例子很多,但是新人想看懂,几乎很难,所以总结下我是怎么完成的. 比如:你的内表如图: 你想让内表最后展示成这样:如图: 那么完成之后会是这样: 完成这个过程,得用到动态内表.看 ...

  4. SAP ABAP: 把内表数据以excel或csv格式,通过前台或者后台的方式上传至FTP服务器

    今天接到一个FTP的需求,就是每天晚上把当天某个报表的数据自动保存excel上传到FTP服务器. SAP已经有现成的FTP函数使用,可以通过函数的方式来实现,实现前先准备一些数据: User:登录FT ...

  5. SAP ABAP ALV构建动态输出列与构建动态内表(包留备用),包含操作abap元类型表及类

    https://blog.csdn.net/zhongguomao/article/details/51095946

  6. abap将内表数据导出为excel文件

    一个不错的方案: WHEN 'EXPORT'. "导出数据 DATA : GT_TEMP TYPE TABLE OF TY_ITEM WITH HEADER LINE. LOOP AT GT ...

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

    最近要写个程序,既有更新的,也有删除的,需要涉及到很多系统表,如果一个表一个表进行更新或者删除太慢了,于是就想通过创建动态内表来实现这些功能,在网上找了一些资料,经过多次尝试,终于测试成功了.网上讲述 ...

  8. ABAP 动态内标排序

     动态内表怎样排序动态内表怎样排序 动态内表要排序时,因为不知道内表中的字段名字,所以不能直接用SORT table BY field1 field2... 可以使用下面的方法来实现:SORT tab ...

  9. [SAP ABAP开发技术总结]动态语句、动态程序

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. java 多线程(0) Java线程

    线程 线程是系统调度的基本单元,每当创建一个进程时,会有许多的线程,也叫轻量级进程,在一个进程中拥有多个线程,各自都有自己的计数器,堆和局部变量属性,并且能够分享内存变量. 为什么要使用多线程  1. ...

  2. 老板让我们去陪睡!-It高管的焦虑

    老板是我非常敬重的前领导之一,他的一些管理风格,也影响了后来我对技术团队的管理.就是这样一个非常令人尊敬的领导,为什么会有这么过分的要求,请允许我先卖个关子,接下来就会知道. 理想企业 什么是程序员理 ...

  3. 2016-2017-2 《Java 程序设计》课堂实践项目

    目录 基本工具 基础内容 Hello World 和 模块分解 数组的使用 命令行参数 递归 分支语句 String类的使用 类的定义与测试 多态 IO与异常 数据库 网络与安全 数据结构应用 And ...

  4. 团队作业8——第二次项目冲刺(Beta阶段)--第三天

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 学号 成员 贡献比 201421123001 廖婷婷 16% 201421123002 翁珊 16% 201421123004 ...

  5. Java-反射机制学习

    反射机制是Java的一个重要性,它使得Java语言具有了动态特性.比如说,可以在代码中动态地获取某个类的信息,生成它的实例.获取其成员变量.调用它的方法.下面通过几个示例来演示反射机制的作用与用法. ...

  6. 201521123053《Java设计与程序》第六周学习总结

    ---恢复内容结束--- 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结.   注1:关键词与内容不求多,但 ...

  7. 201521123058 java第六次作业

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1.clone方法 1.1 Object对 ...

  8. 201521123024 《Java程序设计》第4周学习总结

    1. 本周学习总结 2. 书面作业 1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2.面向对象设计(大作业1,非常重要) 2.1 将在网上商 ...

  9. websphere部署 hibernate jpa & Error 500: javax/persistence/OneToOne.orphanRemoval()Z

    WebSphere 7 & Javax/Persistence/OneToMany.OrphanRemoval() Error 文章出处:http://www.mkyong.com/websp ...

  10. Jenkins使用-windows机器上的文件上传到linux

    一.背景 最近的一个java项目,使用maven作包管理,通过jenkins把编译打包后war部署到另一台linux server上的glassfish(Ver3.1)中,在网上搜索的时候看到有人使用 ...