ABAP将内表行列转换实例(动态内表)
来源:互联网 发布:口袋妖怪复刻要网络吗 编辑:程序博客网 时间:2024/04/30 14:43
把内表的行列转换,网上的例子很多,但是新人想看懂,几乎很难,所以总结下我是怎么完成的。
比如:你的内表如图:
你想让内表最后展示成这样:如图:
那么完成之后会是这样:
完成这个过程,得用到动态内表。看代码:
01.DATA:BEGIN OF itab8 OCCURS 0, 02. bezei LIKE zchannel-bezei, "销售办事处 03. zdate LIKE zchannel-zdate, "日期 04. salesamount LIKE zchannel-salesamount, "总额 05. END OF itab8.
先排序:
SORT itab8 BY bezei zdate DESCENDING.
要以日期作为列,得先取得唯一的日期。
DATA TDATE LIKE SY-DATUM OCCURS 0 WITH HEADER LINE.LOOP AT itab8. TDATE = ITAB8-ZDATE. COLLECT TDATE. ENDLOOP.
下面构建动态内表结构
DATA: dy_table TYPE REF TO data, dy_wa TYPE REF TO data, it_str TYPE lvc_t_fcat, "是Table Type wa_str TYPE lvc_s_fcat. "是一个Structure 用于存储即将构建的动态内表结构 FIELD-SYMBOLS: <dyn_table> TYPE table,"是一个标志,可以理解为一个指针,将来创建的内表就要通过它们来访问 <dyn_wa> TYPE ANY, <FS> TYPE ANY. wa_str-fieldname = 'BEZEI'. wa_str-col_pos = 1. wa_str-inttype = 'CHAR'. wa_str-intlen = 20. APPEND wa_str TO it_str. CLEAR wa_str. wa_str-fieldname = 'SELFI'. wa_str-col_pos = 1. wa_str-inttype = 'CHAR'. wa_str-intlen = 20. APPEND wa_str TO it_str. CLEAR wa_str. REFRESH fieldcat. PERFORM input_fieldcat USING 'BEZEI' '销售办事处' '' '' '' '' ''. LOOP AT TDATE. wa_str-fieldname = TDATE. wa_str-col_pos = 1. wa_str-inttype = 'CHAR'. wa_str-intlen = 20. APPEND wa_str TO it_str. CLEAR wa_str. PERFORM input_fieldcat USING TDATE TDATE '' '' '' '' ''. ENDLOOP.*此方法用于构建动态内表,输入=构建的结构,输出=dy_table CALL METHOD cl_alv_table_create=>create_dynamic_table EXPORTING it_fieldcatalog = it_str 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(20). LOOP AT ITAB8. ASSIGN COMPONENT 'BEZEI' OF STRUCTURE <dyn_wa> TO <FS>. "<SPAN style="FONT-FAMILY: 微软雅黑; COLOR: rgb(128,128,128); FONT-SIZE: 10pt">分配结构里的销售办事处,用FS字段 指向它</SPAN> <FS> = ITAB8-BEZEI. FIELDNAME = ITAB8-ZDATE. "这里把日期类型定义为char型,因为用DATS报错。 ASSIGN COMPONENT FIELDNAME OF STRUCTURE <dyn_wa> TO <FS>. "分配结构的日期,将FS指向它 <FS> = ITAB8-SALESAMOUNT. AT END OF BEZEI. APPEND <dyn_wa> TO <dyn_table>. ENDAT. ENDLOOP.
- ABAP将内表行列转换实例(动态内表)
- ABAP将内表行列转换实例(动态内表)
- 用abap实现内表的行列转换
- ABAP动态内表
- ABAP动态内表
- ABAP-动态内表
- 动态ABAP内表
- 内表的行列转换.
- 内表的行列转换.
- ABAP 创建动态内表
- ABAP 动态创建内表
- ABAP动态内表ALV
- ABAP 行列转换的方法
- ORACLE行列转换实例
- 行列转换实例
- 行列转换实例
- SQL行列转换实例
- mysql交叉表,行列动态转换
- PHP文件包含漏洞原理分析和利用方法
- 厕所里自动感应冲水的原理是什么呀
- 教你制作QQ空间超高连通率背景音乐链接。
- Win系统复制粘贴失效解决办法
- 解析WLAN、Zigbee和M2M无线网络技术
- ABAP将内表行列转换实例(动态内表)
- C++笔记六:static类成员总结,以及利用C++类static成员实现单例模式
- S3C2440地址空间的分配与启动
- 红外报警器
- 将内存中的对象写入到二进制文件,然后从文件中加载到内存
- jQuery对象与DOM对象之间的转换方法
- linux 环境变量和Bash
- 使用Java POI导入导出Excel数据
- css之相对定位与绝对定位