注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

原来为了你

我的人生就是要一次次的超越

 
 
 

日志

 
 
 
 

原材料利用率报表  

2011-08-17 10:19:37|  分类: PP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

*&---------------------------------------------------------------------*
*& Report  ZPP_R_017
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

report  zpp_r_017.

tablesafkoafpomkpf.

*---输入屏幕
selection
-screenbegin of block blk01 with frame title text-001.
select-options  s_dauat for afpo-dauat,                               "订单类型
                  s_dwerk 
for afpo-dwerk,                               "工厂
                  s_ablad 
for afpo-ablad,                               "班次
                  s_matnr 
for afpo-matnr,                               "成品物料编码
                  s_budat 
for mkpf-budat.                               "过账日期
selection
-screenend of block blk01.

*---数据定义

*---Output itable
databegin of gt_output occurs 0,
        zsel
,
        dauat     
like afpo-dauat,        "订单类型
        budat     
like mkpf-budat,        "过账日期

        matnr     
like afpo-matnr,        "成品编号
        maktx     
like makt-maktx,

        matnr1    
like mseg-matnr,        "原材料物料编号
        maktx1    
like makt-maktx,

        meins     
like afpo-meins,        "计量单位
        menge1    
like mseg-menge,        "产量
        menge2    
like mseg-menge,        "标准用量
        menge3    
like mseg-menge,        "实际用量
        decimal1  
type decimals 4,      "利用率
        text_decimal1 
type string,
        cellcolor 
type lvc_t_scol,        "a itab which save the color of alv cells
      
end of gt_output.
datagt_output1 like table of gt_output with header line.

start
-of-selection.

  
select distinct  afpo~dauat            "订单类型
          afpo
~matnr            "成品编号
          afpo
~meins            "单位
          mkpf
~budat            "过账日期
          mseg
~matnr as matnr1
      
into corresponding fields of table gt_output
      
from afpo
      inner 
join mseg on mseg~aufnr afpo~aufnr
      inner 
join mkpf on mkpf~mblnr mseg~mblnr and mkpf~mjahr mseg~mjahr
      
where afpo~dauat in s_dauat
        
and afpo~dwerk in s_dwerk
        
and afpo~ablad in s_ablad
        
and afpo~matnr in s_matnr
        
and mkpf~budat in s_budat
        
and mkpf~vgart 'WA'.            "WF:成品,'WA':生产所用原料

  
databegin of gt_mara occurs 0,
          matnr 
like mara-matnr,
          mtart 
like mara-mtart,
        
end of gt_mara.
  
select matnr matkl into table gt_mara from mara
    
for all entries in gt_output where matnr gt_output-matnr1
    
and mtart 'ZVEP'.

  
loop at gt_output.
    
read table gt_mara with key matnr gt_output-matnr1.
    
if sy-subrc <> 0.
      
delete gt_output.
    
endif.
  
endloop.
*---物料描述
  
databegin of gt_makt occurs 0,
          matnr 
like makt-matnr,
          maktx 
like makt-maktx,
        
end of gt_makt.
  
select  matnr
          maktx
    
into corresponding fields of table gt_makt
    
from makt
    
for all entries in gt_output
    
where matnr gt_output-matnr or matnr gt_output-matnr1 )
      
and spras '1'.
  
sort gt_makt by matnr.

*---实际用量
  
databegin of gt_sum1 occurs 0,
            dauat 
like afpo-dauat,
            matnr 
like afpo-matnr,
            budat 
like mkpf-budat,
            vgart 
like mkpf-vgart,
            bwart 
like mseg-bwart,
            menge 
like mseg-menge,
        
end of gt_sum1.
  
select distinct  afpo~dauat                      "订单类型
          mseg
~matnr                      "原材料编号
          mkpf
~budat                      "过账日期
          mkpf
~vgart                      "物料类型: WF:成品,WA:生产原料
          mseg
~bwart                      "移动类型
          
summseg~menge as menge
      
into corresponding fields of table gt_sum1
      
from afpo
      inner 
join mseg on mseg~aufnr afpo~aufnr
      inner 
join mkpf on mkpf~mblnr mseg~mblnr and mkpf~mjahr mseg~mjahr
      
where afpo~dauat in s_dauat
        
and afpo~dwerk in s_dwerk
        
and afpo~ablad in s_ablad
        
and afpo~matnr in s_matnr
        
and mkpf~budat in s_budat

    
group by afpo~dauat mseg~matnr mkpf~budat mkpf~vgart mseg~bwart.         "成品,'WA':生产所用原料
  
sort gt_sum1 by dauat matnr budat vgart bwart.

*---标准用量
  
databegin of gt_sum2 occurs 0,
          dauat 
like afpo-dauat,
          matnr 
like mseg-matnr,
          budat 
like mkpf-budat,
          menge 
like stpo-menge,
          ausch 
like stpo-ausch,
        
end of gt_sum2.
  
select  afpo~dauat                      "订单类型
          mseg
~matnr                      "成品编号
          mkpf
~budat                      "过账日期
          
sumstpo~menge as menge      "组件数量
          
sumstpo~ausch as ausch      "部件废品百分数
  
into corresponding fields of table gt_sum2
  
from afpo
  inner 
join mseg on mseg~aufnr afpo~aufnr
  inner 
join mkpf on mkpf~mblnr mseg~mblnr and mkpf~mjahr mseg~mjahr
  inner 
join mast on mast~matnr afpo~matnr                              "成品
  inner 
join stpo on stpo~stlnr mast~stlnr and stpo~idnrk mseg~matnr  "原材料
  
where afpo~dauat in s_dauat
    
and afpo~dwerk in s_dwerk
    
and afpo~ablad in s_ablad
    
and afpo~matnr in s_matnr
    
and mkpf~budat in s_budat
    
group by afpo~dauat mseg~matnr mkpf~budat.         "成品,'WA':生产所用原料
  
sort gt_sum2 by dauat matnr budat.
*---Process
  
loop at gt_output.
    
datal_menge1 like mseg-menge,
          l_menge2 
like mseg-menge.
    
read table gt_makt with key matnr gt_output-matnr binary search.
    
if sy-subrc 0.
      gt_output
-maktx gt_makt-maktx.
    
endif.
    
read table gt_makt with key matnr gt_output-matnr1 binary search.
    
if sy-subrc 0.
      gt_output
-maktx1 gt_makt-maktx.
    
endif.

*---产量
    
clear l_menge1.
    
read table gt_sum1 with key dauat gt_output-dauat matnr gt_output-matnr budat gt_output-budat vgart 'WF' bwart '101' binary search.
    
if sy-subrc 0.
      l_menge1 
gt_sum1-menge.
    
endif.
*---产量冲销
    
clear l_menge2.
    
read table gt_sum1 with key dauat gt_output-dauat matnr gt_output-matnr budat gt_output-budat vgart 'WF' bwart '102' binary search.
    
if sy-subrc 0.
      l_menge2 
gt_sum1-menge.
    
endif.
    gt_output
-menge1 l_menge1 l_menge2.

*---标准用量
    
read table gt_sum2 with key dauat gt_output-dauat matnr gt_output-matnr1 budat gt_output-budat binary search.
    
if sy-subrc 0.
      gt_output
-menge2 gt_output-menge1 * gt_sum2-menge * + gt_sum2-ausch / 100 1000.
    
endif.

*---实际用量
    
clear l_menge1.
    
read table gt_sum1 with key dauat gt_output-dauat matnr gt_output-matnr1 budat gt_output-budat vgart 'WA' bwart '261' binary search.
    
if sy-subrc 0.
      l_menge1 
gt_sum1-menge.
    
endif.
*---实际用量冲销
    
clear l_menge2.
    
read table gt_sum1 with key dauat gt_output-dauat matnr gt_output-matnr1 budat gt_output-budat vgart 'WA' bwart '262' binary search.
    
if sy-subrc 0.
      l_menge2 
gt_sum1-menge.
    
endif.
    gt_output
-menge3 l_menge1 l_menge2.

*---利用率
    
if not gt_output-menge2 0.
      gt_output
-decimal1 = ( gt_output-menge3 gt_output-menge2 / gt_output-menge2.
    
else.
      gt_output
-decimal1 0.
    
endif.

    
datal_decimal1 type decimals 3.
    l_decimal1 
gt_output-decimal1 * 100.
    gt_output
-text_decimal1 l_decimal1.
    
concatenate gt_output-text_decimal1 '%' into gt_output-text_decimal1.
*---color
    
if  gt_output-decimal1 < 0.
      
data wa_cellcolor type lvc_s_scol单元格颜色结构
      wa_cellcolor
-fname 'TEXT_DECIMAL1'.
      wa_cellcolor
-color-col '6'.
      wa_cellcolor
-color-int '1'.
      wa_cellcolor
-color-inv '0'.
      
append wa_cellcolor to gt_output-cellcolor.
    
endif.
    
modify gt_output.

  
endloop.

end-of-selection.

  
type-poolsslis.
  
datags_layout type slis_layout_alv.
  gs_layout
-zebra 'X'.
  gs_layout
-colwidth_optimize 'X'.
  gs_layout
-box_fieldname 'ZSEL'.
  gs_layout
-coltab_fieldname  'CELLCOLOR'.  单元格颜色字段

  
datagt_fieldcat type slis_t_fieldcat_alv,
        gw_fieldcat 
type slis_fieldcat_alv.

  
define  m_alv_head.
    
clear gw_fieldcat.
    gw_fieldcat
-fieldname '&1'.
    gw_fieldcat
-seltext_m '&2'.
    gw_fieldcat
-key '&3'.
    
append gw_fieldcat to gt_fieldcat.
  
end-of-definition.

  m_alv_head dauat 
订单类型 x.
  m_alv_head matnr 
成品编号 x.
  m_alv_head maktx 
成品描述 x.
  m_alv_head matnr1 
原材料编号 x.
  m_alv_head maktx1 
原材料描述 x.
  m_alv_head meins 
单位 ''.
  m_alv_head budat 
过账日期 x.
  m_alv_head menge1 
产量 ''.
  m_alv_head menge2 
标准用量 ''.
  m_alv_head menge3 
实际用量 ''.
  m_alv_head text_decimal1 
利用率 ''.

  
call function 'REUSE_ALV_GRID_DISPLAY'
    
exporting
      i_callback_program 
sy-repid
      is_layout          
gs_layout
      it_fieldcat        
gt_fieldcat
      i_save             
'A'
    
tables
      t_outtab           
gt_output
    
exceptions
      program_error      
1
      
others             2.

  评论这张
 
阅读(1004)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018