REPORT Z_TEST_COL_TO_ROW.

TYPE-POOLS: slis.
TABLES: mseg,mkpf.
DATA: gd_fieldcat TYPE slis_t_fieldcat_alv.
DATA: sla TYPE slis_layout_alv ,
      ivariant LIKE disvariant,
      i_repid LIKE sy-repid ,
      i_excluding TYPE slis_t_extab.
TYPES: BEGIN OF ty_sum ,
        werks LIKE mseg-werks ,
        matnr LIKE mseg-matnr ,
        lgort LIKE mseg-lgort ,
        bwart LIKE mseg-bwart ,
        menge LIKE mseg-menge ,
END OF ty_sum.

DATA : itab TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
DATA : hs_sum TYPE HASHED TABLE OF ty_sum WITH UNIQUE KEY werks matnr lgort bwart WITH HEADER LINE .
DATA : itab_sum TYPE STANDARD TABLE OF ty_sum WITH HEADER LINE .
DATA: BEGIN OF itab_out OCCURS 0,
        werks LIKE mseg-werks ,
        matnr LIKE mseg-matnr ,
        lgort LIKE mseg-lgort ,
        menge01 TYPE i ,
        menge02 TYPE i ,
        menge03 TYPE i ,
        menge04 TYPE i ,
        menge05 TYPE i ,
        menge06 TYPE i ,
        menge07 TYPE i ,
        menge08 TYPE i ,
        menge09 TYPE i ,
        menge10 TYPE i ,
        menge11 TYPE i ,
        menge12 TYPE i ,
        menge13 TYPE i ,
        menge14 TYPE i ,
        menge15 TYPE i ,
        menge16 TYPE i ,
        menge17 TYPE i ,
        menge18 TYPE i ,
        menge19 TYPE i ,
        menge20 TYPE i ,
        menge21 TYPE i ,
        menge22 TYPE i ,
        menge23 TYPE i ,
        menge24 TYPE i ,
        menge25 TYPE i ,
        menge26 TYPE i ,
        line_sum TYPE i ,
END OF itab_out.

TYPES: BEGIN OF ty_bwart ,
      bwart LIKE mseg-bwart ,
END OF ty_bwart.

DATA : hs_bwart TYPE HASHED TABLE OF ty_bwart WITH UNIQUE KEY bwart WITH HEADER LINE .
DATA : itab_bwart TYPE STANDARD TABLE OF ty_bwart WITH HEADER LINE .
FIELD-SYMBOLS: <f_fs1> ,
<f_fs2>.
DATA: max_count TYPE i .
SELECT-OPTIONS:
      s_mblnr FOR mseg-mblnr ,
      s_budat FOR mkpf-budat .
PARAMETERS: p_sum AS CHECKBOX .

START-OF-SELECTION.
PERFORM getdata.
PERFORM fixdata.

IF p_sum = 'X'.
    PERFORM outdata.
ELSE.
    PERFORM outdata2.
ENDIF.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
FORM getdata.
SELECT werks matnr lgort bwart menge INTO TABLE itab
    FROM mkpf INNER JOIN mseg ON mkpf~mblnr = mseg~mblnr AND
          mkpf~mjahr = mseg~mjahr
    WHERE mkpf~mblnr IN s_mblnr AND
          mkpf~budat IN s_budat .
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form FIXDATA
*&---------------------------------------------------------------------*
FORM fixdata.
DATA: index LIKE sy-tabix .
LOOP AT itab.
      hs_sum = itab.
      COLLECT hs_sum.
            hs_bwart = itab-bwart .
      COLLECT hs_bwart.
ENDLOOP.

SORT hs_bwart.
      itab_bwart[] = hs_bwart[].
      itab_sum[] = hs_sum[].
LOOP AT itab_sum.
    itab_out-werks = itab_sum-werks .
    itab_out-matnr = itab_sum-matnr .
    itab_out-lgort = itab_sum-lgort .
READ TABLE itab_bwart WITH KEY bwart = itab_sum-bwart .
index = sy-tabix + 3.
ASSIGN COMPONENT index OF STRUCTURE itab_out TO <f_fs1>.
<f_fs1> = itab_sum-menge.
itab_out-line_sum = itab_sum-menge.
COLLECT itab_out.
CLEAR itab_out.
ENDLOOP.
ENDFORM. " FIXDATA
*&---------------------------------------------------------------------*
*& Form outdata
*&---------------------------------------------------------------------*
FORM outdata.
PERFORM fieldcat_init .
sla-colwidth_optimize = 'X'.
sla-zebra = 'X'.
i_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_repid
it_fieldcat = gd_fieldcat[]
i_save = 'A'
is_variant = ivariant
is_layout = sla
it_excluding = i_excluding
i_callback_user_command = 'USER_COMMAND'
TABLES
t_outtab = itab_sum
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " outdata
*---------------------------------------------------------------------*
* FORM fieldcat_init *
*---------------------------------------------------------------------*
FORM fieldcat_init .
PERFORM frm_catlg_set USING:
      'WERKS' 'WERKS' 'X' ,
      'MATNR' 'MATNR' 'X' ,
      'LGORT' 'LGORT' 'X' ,
      'BWART' 'BWART' 'X' ,
      'MENGE' 'MENGE' '' .
ENDFORM. "fieldcat_init
*---------------------------------------------------------------------*
* FORM frm_catlg_set *
*---------------------------------------------------------------------*
FORM frm_catlg_set USING p_field p_text  p_key.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      ls_fieldcat-fieldname = p_field.
      ls_fieldcat-seltext_l = p_text.
      ls_fieldcat-key = p_key.
      IF p_field = 'LINE_SUM'.
          ls_fieldcat-emphasize = 'C700'.
      ENDIF.
APPEND ls_fieldcat TO gd_fieldcat .
CLEAR ls_fieldcat .
ENDFORM. "frm_catlg_set
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
READ TABLE itab INDEX rs_selfield-tabindex.
CASE r_ucomm.
WHEN '&IC1'. "双击
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
rs_selfield-refresh = 'X'. "自动刷新
ENDFORM. "user_com

*---------------------------------------------------------------------*

* FORM outdata2 *

*---------------------------------------------------------------------*

FORM outdata2.

PERFORM fieldcat_init2 .
sla
-colwidth_optimize = 'X'.
sla
-zebra = 'X'.
i_repid 
= sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING
i_callback_program 
= i_repid
it_fieldcat 
= gd_fieldcat[]
i_save 
= 'A'
is_variant 
= ivariant
is_layout 
= sla
it_excluding 
= i_excluding
i_callback_user_command 
= 'USER_COMMAND'

TABLES
t_outtab 
= itab_out

EXCEPTIONS
program_error 
= 1

OTHERS = 2.

ENDFORM. " outdata

*---------------------------------------------------------------------*

* FORM fieldcat_init2 *

*---------------------------------------------------------------------*

FORM fieldcat_init2 .

DATA: c(2) TYPE n ,
txt
(20) TYPE c .

PERFORM frm_catlg_set USING:
      
'WERKS' 'WERKS' 'X' ,
      
'MATNR' 'MATNR' 'X' ,
      
'LGORT' 'LGORT' 'X' .

LOOP AT hs_bwart .

c = c + 1.

CONCATENATE 'MENGE' c INTO txt.

PERFORM frm_catlg_set USING: txt hs_bwart-bwart '' .

ENDLOOP.

PERFORM frm_catlg_set USING: 'LINE_SUM' 'SUM' '' .

ENDFORM. "fieldcat_init

ABAP 内表的行列转换-NEW的更多相关文章

  1. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW-(以运单号为单位显示ALV然后保存输出)

    *********************************************************************** * Title           : ZSDF003  ...

  2. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW

    *********************************************************************** * Title           : ZSDF002  ...

  3. ABAP 内表的行列转换-发货通知单-打印到Excel里

    需要传入数据到Excel里的模板如上图所示 ********************** *           设计主要逻辑与原理说明                                 ...

  4. ABAP 内表的行列转换-发货通知单2

    *&---------------------------------------------------------------------* *& Report  Z_TEST_C ...

  5. ABAP 内表的行列转换-发货通知单-SLIS

    REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: VTTP,LIPS,LIKP,KNA1 ,VTTK. DATA: gd_fieldcat TYP ...

  6. ABAP 内表的行列转换

    http://www.cnblogs.com/qlp1982/p/3370591.html

  7. ABAP 内表与XML转换

    1需求说明 在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表. 2创建转换编辑器 事务代码:STRANS 选择简单转换 以图形方式编辑 右键 ...

  8. Abap 内表的语法

    ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据 不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的  内表支持循环对每行数据进行操作,也支持整体操作 ...

  9. ABAP内表数据和JSON格式互转

    本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表. 注:json字符串格式如:jsonstr = '[ {flag: "0",message: &quo ...

随机推荐

  1. TP框架整合Swagger UI接口文档

    1.下载swagger ui:http://swagger.io/swagger-ui/: 2.在应用目录里新建一个目录xxx:如图 3.解压后把dist目录的所有文件拷贝到新建的目录里面: 4.在新 ...

  2. mock.js-无需等待,让前端独立于后端进行开发

    概述 首先啦,我不认识mock.js的作者,带着需求找到mock.js让我觉得很惊艳. 相对于其他同类的框架的实现,mock.js超出了我的意料. 基于 数据模板 生成模拟数据. 基于 HTML模板 ...

  3. .NET逻辑分层架构总结

    一.基础知识准备: 1.层的原则: (1)每一层以接口方式供上层调用. (2)上层只能调用下层. (3)依赖分为松散交互和严格交互两种. 2.业务逻辑分类: (1)应用逻辑. (2)领域逻辑. 3.采 ...

  4. noip2012 疫情控制

    [问题描述] H国有n个城市,这n个城市用n-1条双向道路相互连通构成一棵树,1号城市是首都,也是树中的根节点. H国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散到边境城市(叶子 ...

  5. 搭建 Linux 下 GitLab 服务器

    转自:http://blog.csdn.net/passion_wu128/article/details/8216086 目录: 平台需求 硬件需求 本安装指南已于 DebianUbuntu 测试通 ...

  6. 关于QString::toWCharArray 无法解析的外部符号

    1>CommManger.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall QString::toWCharArray(un ...

  7. 使用批处理(bat)脚本对目录树下同种性质的目录或文件进行处理

    问题起源:每次从svn管理的目录下面复制目录之后里面总是有很多.svn的目录,虽说不影响使用但看着很碍眼.同时自己也懒得使用svn的export功能. 因此一个简单的批处理脚本可以帮助我们搞定一切,当 ...

  8. 如何使用Android中hide的类和方法进行开发?

    1.获取Android源码并进行编译. 2.编译完毕后,取出out\target\common\obj\JAVA_LIBRARIES\framework_intermediates路径下的classe ...

  9. javascript 正则表达式使用

    切记:js 正则表达式无需用双引号,正则表达式不是字符串. 参考网址:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp 个人用于查找字条串匹配 ...

  10. C,C++经典笔试题(答案)转自:http://blog.163.com/jianhuali0118@126/blog/static/377499702008230104125229/

    一.请填写BOOL , float, 指针变量 与“零值”比较的 if 语句.(10分) 请写出 BOOL   flag 与“零值”比较的 if 语句.(3分) 标准答案:      if ( fla ...