*&---------------------------------------------------------------------*
*& Report  ZPP023
*&
*&---------------------------------------------------------------------*
*&    Author:****               DAta:****
*&    description: *****
*&---------------------------------------------------------------------*

Report  ZPP023.
tables:KEKO,KEPH,marc.

DATA: BEGIN OF F_KEKO_KEY.
      INCLUDE STRUCTURE CKIKEKOKEY.
DATA: END OF F_KEKO_KEY.

DATA: BEGIN OF F_KEKO.
      INCLUDE STRUCTURE KEKO.
DATA: END OF F_KEKO.

DATA: BEGIN OF GT_KEKO OCCURS 20.
      INCLUDE STRUCTURE KEKO.
DATA: END OF GT_KEKO.

DATA: BEGIN OF GT_EXCEL OCCURS 20.
DATA: MONTH(6) type C,
      MAKTX LIKE MAKT-MAKTX,
      MTART LIKE MARA-MTART.
data: MATNR LIKE KEKO-MATNR,
      KLVAR like KEKO-KLVAR,
      LOSGR like KEKO-LOSGR.
      INCLUDE STRUCTURE KEPH.
data: KST_HJ001(16) type p decimals 5,
      KST_HJ005(16) type p decimals 5,
      KST_HJ007(16) type p decimals 5,
      KST_HJ009(16) type p decimals 5,
      KST_HJ011(16) type p decimals 5,
      KST_HJ013(16) type p decimals 5,
      KST_HJ(16) type p decimals 5.
DATA: END OF GT_EXCEL.

DATA: BEGIN OF GW_EXCEL .
DATA: MONTH(6) type C,
      MAKTX LIKE MAKT-MAKTX,
      MTART LIKE MARA-MTART.
DATA: MATNR LIKE KEKO-MATNR,
      KLVAR like KEKO-KLVAR,
      LOSGR like KEKO-LOSGR.
      INCLUDE STRUCTURE KEPH.
data: KST_HJ001(16) type p decimals 5,
      KST_HJ005(16) type p decimals 5,
      KST_HJ007(16) type p decimals 5,
      KST_HJ009(16) type p decimals 5,
      KST_HJ011(16) type p decimals 5,
      KST_HJ013(16) type p decimals 5,
      KST_HJ(16) type p decimals 5.
DATA: END OF GW_EXCEL.

type-pools:slis.
data:f_pos type i,
     it_fieldcat type lvc_t_fcat,
      is_fieldcat type lvc_s_fcat,
     it_layout type lvc_s_layo.

selection-screen begin of block b1 with frame title text-001.

select-options:R_MATNR for marc-matnr.
select-options:R_KADKY for KEPH-KADKY."成本核算日期
select-options:R_DATS for KEKO-KADAT.
  selection-screen end of block b1.

at selection-screen.
   perform get_Data.
   perform dis_alv.

*----------------------------------------------------------------------*
*       FORM get_Data.
*----------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form get_Data.
  SELECT * INTO table GT_KEKO FROM KEKO WHERE matnr in R_MATNR and KADAT in R_DATS and BIDAT in R_DATS and KADKY in R_KADKY.

loop at GT_KEKO into F_KEKO.

move-corresponding F_KEKO to F_KEKO_KEY.
    perform KEPH_READ using F_KEKO_KEY F_KEKO.

clear:F_KEKO.
    endloop.

endform.

*----------------------------------------------------------------------*
*       FORM KEPH_READ.
*----------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
 form KEPH_READ using F_KEKO_KEY  type CKIKEKOKEY  F_KEKO  type KEKO.

data:Y_X type c value 'X'.
DATA: BEGIN OF T_KEPH OCCURS 20.
      INCLUDE STRUCTURE KEPH.
DATA: END OF T_KEPH.
DATA: BEGIN OF W_KEPH.
      INCLUDE STRUCTURE KEPH.
DATA: END OF W_KEPH.

CALL FUNCTION 'CK_F_KEKO_KEPH_DIRECT_READ'
         EXPORTING
              F_KEKOKEY = F_KEKO_KEY
              READ_KEKO = Y_X
              READ_KEPH = Y_X
         IMPORTING
              F_KEKO = F_KEKO
         TABLES
              I_KEPH = T_KEPH
         EXCEPTIONS
              DATA_NOT_FOUND = 01.

loop at T_KEPH into W_KEPH where KKZST <> 'X'.
        move-corresponding W_KEPH to gw_excel.
        gw_excel-matnr = F_KEKO-matnr.
        gw_excel-month = F_KEKO-KADKY+0(6).
        gw_excel-losgr = F_KEKO-LOSGR.
        gw_excel-klvar = F_KEKO-klvar.
        select single mtart into gw_excel-mtart from mara where matnr = gw_excel-matnr.
        select single maktx into gw_excel-maktx from makt where matnr = gw_excel-matnr.

"计算价格单位为1时的成本
        if  gw_excel-losgr is not initial.
        gw_excel-KST_HJ001 = gw_excel-KST001 / gw_excel-losgr.
        gw_excel-KST_HJ005 = gw_excel-KST005 / gw_excel-losgr.
        gw_excel-KST_HJ007 = gw_excel-KST007 / gw_excel-losgr.
        gw_excel-KST_HJ009 = gw_excel-KST009 / gw_excel-losgr.
        gw_excel-KST_HJ011 = gw_excel-KST011 / gw_excel-losgr.
        gw_excel-KST_HJ013 = gw_excel-KST013 / gw_excel-losgr.
        gw_excel-KST_HJ = gw_excel-KST001 + gw_excel-KST005 + gw_excel-KST007 + gw_excel-KST009 + gw_excel-KST011 + gw_excel-KST013.
        gw_excel-KST_HJ = gw_excel-KST_HJ / gw_excel-losgr.
        endif.

shift  gw_excel-matnr left deleting leading '0'.
        append gw_excel to gt_excel.
        clear:gw_excel,W_KEPH.
        endloop.

endform.
*&---------------------------------------------------------------------*
*&      Form  DIS_ALV
*&---------------------------------------------------------------------*
*       text

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

*  -->  p1        text

*  <--  p2        text

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

form DIS_ALV .
   
perform fill_fieldcat.
    
call function 'REUSE_ALV_GRID_DISPLAY_LVC'
    
exporting
      i_callback_program    
= sy-repid

"i_callback_pf_status_set = 'PF_status'
     
" i_callback_user_command  = 'USER_COMMAND'
      it_fieldcat_lvc          
= it_fieldcat
      
"is_layout_lvc            = it_layout
      
"i_save                  = 'A'
      
"it_sort_lvc                = it_sort_lvc

tables
       t_outtab                
= gt_excel

exceptions
      program_error            
= 1
      
others                   = 2.

endform.                    " DIS_ALV

*&---------------------------------------------------------------------*

*&      Form  FILL_FIELDCAT

*&---------------------------------------------------------------------*

*       text

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

*  -->  p1        text

*  <--  p2        text

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

form FILL_FIELDCAT .
  
define add_field.
     is_fieldcat
-fieldname = &1.
     is_fieldcat
-tabname = &2.
     is_fieldcat
-coltext  = &3.
     is_fieldcat
-key = &4.
     is_fieldcat
-col_pos = &5.

append is_fieldcat to it_fieldcat.
     
clear:is_fieldcat.
     
end-of-definition.

add_field

:'MONTH' 'gt_excel' '月份' 'X' '1',
           
'MATNR' 'gt_excel' '物料号' 'X' '2',
           
'MAKTX' 'gt_excel' '物料描述' 'X' '3',
           
'MTART' 'gt_excel' '物料类型' 'X' '4',
           
'KLVAR' 'gt_excel' '价格类型' 'X' '5',
           
'KST_HJ001' 'gt_excel' '原材料' '' '6',
           
'KST_HJ005' 'gt_excel' 'SMT加工成本' '' '7',
           
'KST_HJ007' 'gt_excel' '直接人工' '' '8',
           
'KST_HJ009' 'gt_excel' '制造费用' '' '9',
           
'KST_HJ011' 'gt_excel' '外协加工费' '' '10',
           
'KST_HJ013' 'gt_excel' '辅助部门费用分摊' '' '11',
           
'KST_HJ' 'gt_excel' '合计' '' '12'.

endform.                    " FILL_FIELDCAT

CK13物料价格评估的数据ALV显示的更多相关文章

  1. 程序间获取ALV显示数据(读取ALV GRID上的数据)

    程序间获取ALV数据的两种方法: 方法1:通过修改SUBMIT的目标程序,把内表EXPORT到内存,SUBMIT后IMPORT ,该方法需要修改目标程序,可以任意设置目标程序的中断点: * Execu ...

  2. 简单的ALV显示例子

    废话不多说,直接上傻瓜代码.归根结底,就是要将显示的字段一行一行的放入fieldcat的表里. "定义ALV数据变量 DATA: IT_FIELDCAT TYPE SLIS_T_FIELDC ...

  3. EXTJS中grid的数据特殊显示,不同窗口的数据传递

    //EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...

  4. input中空格后的数据不显示

    bug,input中空格后的数据不显示     昨天在修bug,有一个bug是用户修改的个人信息的地址栏,输入有空格的话,空格后面的内容存不上,而且没有报错,奇怪了,只好跟踪下. 页面上的输入框就是个 ...

  5. easyui datagrid 没数据时显示滚动条的解决方法

    今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不 ...

  6. ENVI软件操作之【数据的显示操作】

    数据的显示操作主要包括以下的一些简单窗口操作 1.文件列表管理 1)可用的波段列表Available Bands List,使用于存取ENVI图像文件和显示图像文件的主要控制对话框.无论何时何地打开一 ...

  7. 从多个XML文档中读取数据用于显示webapi帮助文档

    前言: 你先得知道HelpPageConfig文件,不知道说明你现在不需要这个,所以下文就不用看了,等知道了再看也不急.当然如果你很知道这个,下文也不用看了,因为你会了. 方法一: new XmlDo ...

  8. 实现easyui datagrid在没有数据时显示相关提示内容

    本示例实现easyui datagrid加载/查询数据时,如果没有相关记录,则在datagrid中显示没有相关记录的提示信息,效果如下图所示 本实例要实现如下图所示的效果: 本示例easyui版本为1 ...

  9. easy ui datagrid在没有数据时显示相关提示内容

    $(function () { $('#dg').datagrid({ fitColumns: true, url: 'product.json', pagination: true, pageSiz ...

随机推荐

  1. 转载: Emmet:HTML/CSS代码快速编写神器

    Emmet:HTML/CSS代码快速编写神器 因为文章严禁转载,那本着做一个遵纪守法的好公民,我就不转载了,把链接放下面,方便查阅. http://www.iteye.com/news/27580

  2. SpringMVC学习系列(1) 之 初识SpringMVC

    1.前言: 与SpringMVC的结识源于个人之前想做一个微信公众账号的管理平台玩玩,既然要做就需要考虑平台的选择问题.由于我的朋友只有一台运行了Linux系统的虚拟主机,且上面还运行有他自己的一些论 ...

  3. 安装jessie记录

    // */ // ]]>   安装jessie记录 Table of Contents 1 引言 2 目标 3 usb安装 4 无线网卡 5 代理上网 6 rabbitvcs 7 locale ...

  4. redis集群的一些笔记

    当节点数量少于6个时候会提示如下信息,初始化一个集群的时候需要6个节点,为什么?? *** ERROR: Invalid configuration for cluster creation. *** ...

  5. 为什么学习Ruby On Rails:

    简单总结了一下自己为什么喜欢ruby on rails: 语法简单,写代码很愉快,比较接近伪代码: 喜欢其强大的正则表达式和字符串操作. ruby中面向对象更自由,更动态: ruby给人信任,相信你了 ...

  6. R中,去掉dataframe中的NA行

    R中使用complete.cases 和 na.omit来去掉包含NA的行 现在有个一data.frame  datafile如下所示 Date        sulfate nitrate ID 1 ...

  7. linux 下的clock_gettime() 获取精确时间函数

    #include <time.h> int clock_gettime(clockid_t clk_id, struct timespec* tp); clock_gettime() 函数 ...

  8. IIS与Apache同时使用80端口

    如果我们在一台服务器即使用IIS作为WEB服务器,同时又想使用Apache作为WEB服务器,那么如何来公用80端口呢? 我们可以使用单IP地址来实现,但是在性能上有损失: 将apache设为使用80端 ...

  9. ios开发 iphone中获取网卡地址和ip地址

    这是获取网卡的硬件地址的代码,如果无法编译通过,记得把下面的这几个头文件加上把. #include <sys/socket.h> // Per msqr#include <sys/s ...

  10. php实例源码之获取mysql表中所有行和列

    本文章向大家介绍php获取mysql表中所有行和列的源码,主要使用到mysql_num_rows和mysql_fetch_row等php的数据库操作函数,该实例有助于大家熟悉PHP mysql数据库编 ...