海纳百川

记录学习中的点点滴滴

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

REPORT  ZSDR035.

INCLUDE ZSDR035TOP.

TABLES: KNA1,MKPF,MSEG,MEAN.

DATA: lt_data like TABLE OF ZSMBLIST WITH HEADER LINE.

DATA: BEGIN OF lt_data_out OCCURS 0.
        INCLUDE STRUCTURE ZSMBLIST.
DATA:   COLOR  TYPE slis_t_specialcol_alv.
DATA: END OF lt_data_out.

 



INCLUDE ZSDR035SCR.

SELECTION-SCREEN BEGIN OF BLOCK blkr WITH FRAME TITLE text-r01.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr OBLIGATORY,
                s_budat FOR mkpf-budat,
                s_CPUDT FOR mkpf-CPUDT DEFAULT sy-datum TO sy-datum,
                s_BWART FOR MSEG-BWART,
                s_matnr FOR mseg-matnr,
                S_SIZE FOR MEAN-J_3AKORDX,
                s_MBLNR FOR mkpf-MBLNR.
SELECTION-SCREEN END OF BLOCK blkr.

START-OF-SELECTION.
  PERFORM FRM_GET_DATA.
  PERFORM FRM_SET_COLOR.
  PERFORM FRM_SHOW_ALV.

 


INCLUDE ZSDR035F01.

FORM FRM_GET_DATA.
  clear: lt_data,lt_data[].

  CALL FUNCTION 'ZSD_POS_GET_MB_ITEM_LIST'
    EXPORTING
      IV_SHOWMP = 'X'
    TABLES
      IT_KUNNR = S_KUNNR
      IT_BUDAT = S_BUDAT
      IT_BLDAT = s_CPUDT
      IT_MBLNR = S_MBLNR
      IT_BWART = S_BWART
      IT_MATNR = S_MATNR
      IT_SIZE  = S_SIZE
      ET_DATA  = lt_DATA.

  sort lt_DATA by MBLNR MJAHR ZEILE.

ENDFORM.

FORM FRM_SET_COLOR.
  DATA: lt_cellcolor type slis_t_specialcol_alv with header line.

  LOOP AT lt_data.
    clear: lt_data_out,lt_cellcolor.
    REFRESH lt_cellcolor.

    MOVE-CORRESPONDING lt_data to lt_data_out.

    lt_cellcolor-fieldname = 'MENGE'. "列名

    if lt_data_out-SHKZG eq 'H'.
      lt_cellcolor-COLOR-col = '6'.
      lt_cellcolor-COLOR-int = '0'.
      lt_cellcolor-COLOR-inv = '0'.
    elseif lt_data_out-SHKZG eq 'S'.
      lt_cellcolor-COLOR-col = '5'.
      lt_cellcolor-COLOR-int = '0'.
      lt_cellcolor-COLOR-inv = '0'.
    endif.

    APPEND lt_cellcolor.

    lt_data_out-COLOR[] = lt_cellcolor[].
    append lt_data_out.
  ENDLOOP.

ENDFORM.

FORM FRM_SHOW_ALV.
  DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
        ls_fieldcat TYPE slis_fieldcat_alv,
        ls_layout TYPE slis_layout_alv.

  CLEAR ls_layout.
  ls_layout-edit              = ''.
  ls_layout-edit_mode         = space.
  ls_layout-zebra             = 'X'.
  ls_layout-coltab_fieldname  = 'COLOR'. " 列颜色字段

  DEFINE add_field.
    clear: ls_fieldcat.
    ls_fieldcat-fieldname    = &1.
    ls_fieldcat-reptext_ddic = &2.
    ls_fieldcat-intlen       = &3.
    ls_fieldcat-do_sum       = &4.
    ls_fieldcat-no_zero      = &5.
    ls_fieldcat-key          = &6.
    ls_fieldcat-hotspot      = &7.
    ls_fieldcat-emphasize    = &8.
    append ls_fieldcat to it_fieldcat.
  END-OF-DEFINITION.

  add_field 'KUNNR' '客户编号' 10 '' '' '' '' ''.
  add_field 'NAME1' '客户名称' 30 '' '' '' '' ''.
  add_field 'MBLNR' '物料凭证' 10 '' '' '' '' 'C110'.
  add_field 'MJAHR' '凭证年度' 6 '' '' '' '' ''.
  add_field 'ZEILE' '凭证项目' 6 '' '' '' '' ''.
  add_field 'BWART' '移动类型' 10 '' '' '' '' ''.
  add_field 'BIZTP' '类型描述' 16 '' '' '' '' ''.
  add_field 'GRUND' '移动原因' 8 '' '' '' '' ''.
  add_field 'BUDAT' '记帐日期' 12 '' '' '' '' ''.

  add_field 'MATNR' '物料号' 18 '' '' '' '' ''.
  add_field 'J_3ASIZE' '网格值' 8 '' '' '' '' ''.
  add_field 'MENGE' '数量' 10 'X' '' '' '' ''.
  add_field 'ZMATNR' '小货号' 18 '' '' '' '' ''.

  add_field 'SPART' '品牌' 8 '' '' '' '' ''.
  add_field 'SPARTTXT' '品牌描述' 10 '' '' '' '' ''.
  add_field 'EXTWG' '系列' 8 '' '' '' '' ''.
  add_field 'EXTWGTXT' '系列描述' 10 '' '' '' '' ''.

  "add_field 'EBELN' '采购订单' 10 '' '' '' '' ''.
  add_field 'XBLNR' '参考凭证' 18 '' '' '' '' ''.
  add_field 'VGBEL' '销售凭证' 18 '' '' '' '' ''.

  add_field 'REFKUNNR' '对方门店' 10 '' '' '' '' ''.
  add_field 'REFNAME1' '对方名称' 20 '' '' '' '' ''.

  add_field 'CPUDT' '输入日期' 12 '' '' '' '' ''.
  add_field 'CPUTM' '输入时间' 12 '' '' '' '' ''.
  add_field 'USNAM' '用户名' 12 '' '' '' '' ''.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      it_fieldcat        = it_fieldcat
      is_layout          = ls_layout
      i_callback_user_command  = 'USER_COMMAND_ALV'
      i_save             = 'U'
    TABLES
      t_outtab           = lt_data_out.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.

 


INCLUDE ZSDR035I01.

FORM user_command_alv USING r_ucomm LIKE sy-ucomm
                        rs_selfield TYPE slis_selfield.

  CASE r_ucomm.
    WHEN '&IC1'.
      READ TABLE lt_data INDEX rs_selfield-tabindex.
      IF rs_selfield-fieldname = 'MBLNR' AND rs_selfield-value <> ''.
        SET PARAMETER ID 'MBN' FIELD lt_data-mblnr.
        SET PARAMETER ID 'MJA' FIELD lt_data-mjahr.
        CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
      ENDIF.

  ENDCASE.

  " 刷新ALV报表
  rs_selfield-row_stable = rs_selfield-tabindex.
  rs_selfield-refresh = 'X'.

ENDFORM.

 

posted on 2014-10-21 10:58  Avatar  阅读(832)  评论(0编辑  收藏  举报