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. 201521123054《Java程序设计》第8周学习总结

    1. 本周学习总结 2. 书面作业 List中指定元素的删除(题目4-1) 1.1 实验总结 每次删除时下标需要-1:原理如图 统计文字中的单词数量并按出现次数排序(题目5-3) 2.1 伪代码(简单 ...

  2. 201521123104《JAVA程序设计》第三周学习总结

    1. 本周学习总结 2. 书面作业 Q1. 代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  3. 201521123092《java程序设计》第二周学习总结

    1. 本周学习总结 (1)学习了string的类型: (2)学习了java数组的使用: (3)学习了容器的概念: (4)解决一些pta编程时遇到的困难. 2. 书面作业 (1)使用Eclipse关联j ...

  4. 201521123044 《Java程序设计》第10周学习总结

    1. 本章学习总结 2. 书面作业 本次PTA作业题集异常丶多线程 1.finally题目4-2 1.1 截图你的提交结果 1.2 4-2中finally中捕获异常需要注意什么? 1.无论try-ca ...

  5. Mysql数据库文件、表、记录的增删改查

    一.数据库文件夹的的操作 create database db1 charset utf8; 增加db1文件夹 show databases ; 查看所有数据库 show create databas ...

  6. @SuppressWarnings抑制警告

    @SuppressWarnings(“XXXX”) 来抑制编译时的警告信息.参数如下: 关键字 用途 all to suppress all warnings boxing  to suppress ...

  7. MongoDB 分布式架构 复制 分片 适用性范围

    转载自 http://www.mongoing.com/archives/3573

  8. 反转字符串的几种实现(Java)

    反转字符串的几种实现(Java) 首先第一种是利用Java中的类库对象进行反转 //第一种 使用Java类库的diam实现反转 public String reverse(String str){ S ...

  9. 深入浅出数据结构C语言版(20)——快速排序

    正如上一篇博文所说,今天我们来讨论一下所谓的"高级排序"--快速排序.首先声明,快速排序是一个典型而又"简单"的分治的递归算法. 递归的威力我们在介绍插入排序时 ...

  10. Linux 内核模块程序结构

    1.内核加载函数 即我们常说的内核入口函数,当内核被加载的时候调用,在内核入口函数中多进行设备的注册和初始化,其中最常用的莫过于module_init().insmod xxx.ko的时候调用. 通常 ...