首页 > 代码库 > 销售分析报表

销售分析报表

REPORT  ZSDR020.

INCLUDE ZSDR020TOP.

TABLES: ZRLB_H,ZRLB_I,KNA1,/ATU/STOREMASTER,MARA,knvv.DATA: ls_data_out type ZSXSFX,      lt_data_out like TABLE OF ZSXSFX WITH HEADER LINE,      lt_data_sum like TABLE OF ZSXSFX WITH HEADER LINE,      lt_data_tmp like TABLE OF ZSXSFX WITH HEADER LINE.FIELD-SYMBOLS : <dyn_table> TYPE table,                <dyn_wa> TYPE ANY,                <dyn_field> TYPE ANY.DATA lt_tmp LIKE TABLE OF ZSXSFX WITH HEADER LINE.DATA:BEGIN OF T_STORE OCCURS 0,          KUNNR LIKE KNA1-KUNNR,          NAME1 LIKE KNA1-NAME1,      END OF T_STORE.DATA:LT_STORE LIKE TABLE OF T_STORE WITH HEADER LINE.


INCLUDE ZSDR020SCR.

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.SELECT-OPTIONS: s_BUDAT FOR ZRLB_H-BUDAT DEFAULT sy-datum TO sy-datum,  "营业日期                S_3ADCCU FOR KNA1-J_3ADCCU NO INTERVALS,                s_KUNNR FOR KNA1-KUNNR NO INTERVALS,                s_KTYPE FOR /ATU/STOREMASTER-/ATU/STORETYPE NO INTERVALS,                s_KATR2 FOR KNA1-KATR2 NO INTERVALS,                s_BRSCH FOR KNA1-BRSCH NO INTERVALS,                s_SPART for MARA-SPART NO INTERVALS,                s_EXTWG for MARA-EXTWG NO INTERVALS,                s_MATNR for MARA-MATNR no INTERVALS,                s_SIZE for ZRLB_I-J_3ASIZE no INTERVALS,                s_ZMATNR for ZRLB_I-ZMATNR no INTERVALS,                s_vkgrp for knvv-vkgrp NO INTERVALS,                s_UDATE FOR ZRLB_H-UDATE.   "上传日期SELECTION-SCREEN END OF BLOCK blk1.SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.PARAMETERS: p_3ADCCU AS CHECKBOX DEFAULT X,     "总店            p_kunnr AS CHECKBOX DEFAULT X,     "子店            p_type AS CHECKBOX ,     "门店类型            p_KATR2 AS CHECKBOX ,     "            p_vkgrp    AS CHECKBOX DEFAULT X,            p_zmatnr AS CHECKBOX DEFAULT X,     "大货            p_matnr AS CHECKBOX,     "小货            p_PRDHA AS CHECKBOX DEFAULT X,     "产品层次            p_PRDHB AS CHECKBOX,     "大类            "p_MATKL AS CHECKBOX,     "物料组            p_budat AS CHECKBOX,                 "营业日期            p_SPART    AS CHECKBOX,            p_EXTWG    AS CHECKBOX,            p_SDABW    AS CHECKBOX,            p_FORMT    AS CHECKBOX.SELECTION-SCREEN END OF BLOCK blk2.SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.PARAMETERS: p_qty RADIOBUTTON GROUP a DEFAULT X,            p_val1 RADIOBUTTON GROUP a,            p_val2 RADIOBUTTON GROUP a.SELECTION-SCREEN END OF BLOCK blk3.START-OF-SELECTION.  PERFORM FRM_GET_DATA.  PERFORM FRM_SHOW_ALV.


INCLUDE ZSDR020O01.

FORM set_pf_status USING rt_extab TYPE slis_t_extab.  SET PF-STATUS 1100.ENDFORM.


INCLUDE ZSDR020I01.

FORM user_command USING r_ucomm LIKE sy-ucomm                        rs_selfield TYPE slis_selfield.  CASE r_ucomm.    WHEN ZRB.      "日报      PERFORM frm_process USING 正在进行日报格式处理,请稍候…….      PERFORM FRM_SET_DATA_SUM USING RB.      PERFORM FRM_create_date_table.      PERFORM frm_filled_date_table.      PERFORM FRM_SHOW_SUM_ALV.    WHEN ZXB.      "旬报      PERFORM frm_process USING 正在进行旬报格式处理,请稍候…….      PERFORM FRM_SET_DATA_SUM USING XB.      PERFORM FRM_create_date_table.      PERFORM frm_filled_date_table.      PERFORM FRM_SHOW_SUM_ALV.    WHEN ZYB.      "月报      PERFORM frm_process USING 正在进行月报格式处理,请稍候…….      PERFORM FRM_SET_DATA_SUM USING YB.      PERFORM FRM_create_date_table.      PERFORM frm_filled_date_table.      PERFORM FRM_SHOW_SUM_ALV.    WHEN ZJB.      "季报      PERFORM frm_process USING 正在进行季报格式处理,请稍候…….      PERFORM FRM_SET_DATA_SUM USING JB.      PERFORM FRM_create_date_table.      PERFORM frm_filled_date_table.      PERFORM FRM_SHOW_SUM_ALV.    WHEN ZNB.      "年报      PERFORM frm_process USING 正在进行年报格式处理,请稍候…….      PERFORM FRM_SET_DATA_SUM USING NB.      PERFORM FRM_create_date_table.      PERFORM frm_filled_date_table.      PERFORM FRM_SHOW_SUM_ALV.  ENDCASE.ENDFORM.


INCLUDE ZSDR020F01.

 

FORM FRM_GET_DATA.  DATA: LT_RLB LIKE TABLE OF ZSRLB WITH HEADER LINE.  CALL FUNCTION ZSD_POS_GET_RLB_LIST    EXPORTING      IV_MODE         = A      IV_SHOWPROPERTY = X    TABLES      IT_BUDAT        = S_BUDAT      IT_3ADCCU       = S_3ADCCU      IT_KUNNR        = S_KUNNR      IT_MATNR        = S_MATNR      IT_ZMATNR       = S_ZMATNR      IT_UDATE        = S_UDATE      IT_BRSCH        = S_BRSCH      IT_SPART        = S_SPART      IT_EXTWG        = S_EXTWG      IT_KTYPE        = S_KTYPE      IT_VKGRP        = S_VKGRP      ET_DATA         = LT_RLB.  PERFORM FRM_SET_DATA TABLES LT_RLB.ENDFORM.                    "FRM_GET_DATA*&---------------------------------------------------------------------**&      Form  FRM_SET_DATA*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->LT_DATA    text*----------------------------------------------------------------------*FORM FRM_SET_DATA TABLES LT_DATA STRUCTURE ZSRLB.  DATA: LT_KUNNR LIKE TABLE OF ZSKUNNR2 WITH HEADER LINE.  DATA: BEGIN OF LT_VKGRP OCCURS 0,          KUNNR LIKE /ATU/STOREMASTER-/ATU/STORE_ID,          NAME1 LIKE KNA1-NAME1,          VKGRP LIKE KNVV-VKGRP,          BEZEI LIKE TVGRT-BEZEI,          KATR2 LIKE KNA1-KATR2,          KATR2TXT LIKE TVK2T-VTEXT,        END OF LT_VKGRP.  DATA:LV_TABIX LIKE SY-TABIX.  DATA: LV_STR1(20) type C,        LV_STR2(20) type C,        LV_STR3(20) type C.  CLEAR: LT_STORE,LT_STORE[].  LOOP AT LT_DATA.    CLEAR LT_KUNNR.    LT_KUNNR-KUNNR = LT_DATA-KUNNR.    APPEND LT_KUNNR.  ENDLOOP.  SORT LT_KUNNR BY KUNNR.  DELETE ADJACENT DUPLICATES FROM LT_KUNNR COMPARING KUNNR.  IF LT_KUNNR[] IS NOT INITIAL.    SELECT A~/ATU/STORE_ID B~NAME1 V~VKGRP K~BEZEI B~KATR2 K2~VTEXT      FROM /ATU/STOREMASTER AS A      INNER JOIN KNA1 AS B ON B~KUNNR = A~KUNNR      INNER JOIN KNVV AS V ON A~/ATU/STORE_ID = V~KUNNR      AND A~VKORG = V~VKORG AND A~VTWEG = V~VTWEG AND A~SPART = V~SPART      INNER JOIN TVGRT AS K ON V~VKGRP = K~VKGRP AND K~SPRAS EQ 1      INNER JOIN TVK2T AS K2 ON B~KATR2 = K2~KATR2 AND K2~SPRAS EQ 1      INTO TABLE LT_VKGRP      FOR ALL ENTRIES IN LT_KUNNR      WHERE A~/ATU/STORE_ID = LT_KUNNR-KUNNR.    SORT LT_VKGRP BY KUNNR.  ENDIF.  LOOP AT LT_DATA.    CLEAR: ls_data_out.    MOVE-CORRESPONDING LT_DATA to ls_data_out.    READ TABLE LT_VKGRP WITH KEY KUNNR = ls_data_out-KUNNR BINARY SEARCH.    IF SY-SUBRC = 0.      ls_data_out-NAME1    = LT_VKGRP-NAME1.      ls_data_out-VKGRP    = LT_VKGRP-VKGRP.      ls_data_out-VKGRPTXT = LT_VKGRP-BEZEI.      ls_data_out-KATR2    = LT_VKGRP-KATR2.      ls_data_out-KATR2TXT = LT_VKGRP-KATR2TXT.    ENDIF.    if p_PRDHB eq X.      SEARCH ls_data_out-PRDHATXT FOR _.      if sy-subrc = 0.        SPLIT ls_data_out-PRDHATXT AT _ INTO LV_STR1 LV_STR2 LV_STR3.        ls_data_out-PRDHBTXT   = LV_STR3.      else.        ls_data_out-PRDHBTXT   = ls_data_out-PRDHATXT.      endif.    endif.    IF P_3ADCCU EQ X.      LT_STORE-KUNNR    = ls_data_out-J_3ADCCU.      COLLECT LT_STORE.    ENDIF.    IF P_3ADCCU NE X.      clear ls_data_out-J_3ADCCU.    ENDIF.    IF P_KUNNR NE X.      clear: ls_data_out-KUNNR,             ls_data_out-NAME1.    ENDIF.    if p_vkgrp NE X.      clear: ls_data_out-VKGRP,             ls_data_out-VKGRPTXT.    endif.    IF p_KATR2 NE X.      clear: ls_data_out-KATR2,             ls_data_out-KATR2TXT.    ENDIF.    IF P_TYPE NE X.      clear: ls_data_out-STORETYPE.    ENDIF.    IF P_ZMATNR NE X.      clear: ls_data_out-ZMATNR,             ls_data_out-J_3ASIZE.    ENDIF.    IF P_MATNR NE X.      clear: ls_data_out-MATNR.    ENDIF.    IF P_PRDHA NE X.      clear: ls_data_out-PRDHA,             ls_data_out-PRDHATXT.    ENDIF.    IF P_SPART NE X.      clear: ls_data_out-SPART,             ls_data_out-SPARTTXT.    ENDIF.    IF P_EXTWG NE X.      clear: ls_data_out-EXTWG,             ls_data_out-EXTWGTXT.    ENDIF.    IF P_SDABW NE X.      clear: ls_data_out-SDABW.    ENDIF.    IF P_FORMT NE X.      clear: ls_data_out-FORMT.    ENDIF.    "为日报准备的内表    clear LT_DATA_TMP.    LT_DATA_TMP = ls_data_out.    COLLECT LT_DATA_TMP.    IF P_BUDAT NE X.      clear: ls_data_out-BUDAT.    ENDIF.    "销售分析输出的内表    COLLECT ls_data_out into lt_data_out.  ENDLOOP.  IF LINES( LT_STORE ) > 0.    SELECT KUNNR NAME1 INTO TABLE LT_STORE      FROM KNA1      FOR ALL ENTRIES IN LT_STORE    WHERE KUNNR = LT_STORE-KUNNR.    SORT LT_STORE by KUNNR.    LOOP AT LT_STORE.      LV_TABIX = SY-TABIX.      LT_DATA_OUT-ZD_NAME1 = LT_STORE-NAME1.      MODIFY LT_DATA_OUT TRANSPORTING ZD_NAME1 WHERE J_3ADCCU = LT_STORE-KUNNR.    ENDLOOP.  ENDIF.ENDFORM.                    "FRM_SET_DATA*&---------------------------------------------------------------------**&      Form  FRM_SHOW_ALV*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM FRM_SHOW_ALV.  DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,        LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,        LS_LAYOUT TYPE SLIS_LAYOUT_ALV.  SET TITLEBAR 1100 WITH s_BUDAT-low s_BUDAT-high s_matnr-low s_kunnr-low.  CLEAR LS_LAYOUT.  LS_LAYOUT-EDIT              = ‘‘.  LS_LAYOUT-EDIT_MODE         = SPACE.  LS_LAYOUT-ZEBRA             = X.  LS_LAYOUT-COLWIDTH_OPTIMIZE = ‘‘.  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-FIX_COLUMN   = &7.    LS_FIELDCAT-NO_OUT       = &8.    APPEND LS_FIELDCAT TO IT_FIELDCAT.  END-OF-DEFINITION.  IF P_3ADCCU EQ X.    ADD_FIELD J_3ADCCU 总店     10 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.    ADD_FIELD ZD_NAME1 总店名称 20 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_KUNNR EQ X.    ADD_FIELD KUNNR 门店编号 10 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.    ADD_FIELD NAME1 门店名称 20 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  if p_vkgrp eq X.    ADD_FIELD VKGRPTXT 主管 10 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  endif.  IF P_TYPE EQ X.    ADD_FIELD STORETYPE 门店类型 8 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_KATR2 EQ X.    "ADD_FIELD ‘KATR2‘ ‘店铺类型‘ 8 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.    ADD_FIELD KATR2TXT 店铺类型 8 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_BUDAT EQ X.    ADD_FIELD BUDAT 营业日期 10 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_PRDHA EQ X.    ADD_FIELD PRDHA 产品层次 10 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.    ADD_FIELD PRDHATXT 产品层次描述 10 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  if p_PRDHB eq X.    ADD_FIELD PRDHBTXT 商品大类 10 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_SPART EQ X.    ADD_FIELD SPART 品牌 10 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.    ADD_FIELD SPARTTXT 品牌描述 18 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_EXTWG EQ X.    ADD_FIELD EXTWG 系列 8 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.    ADD_FIELD EXTWGTXT 系列描述 18 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_FORMT EQ X.    ADD_FIELD FORMT 货品高新标识 8 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_SDABW EQ X.    ADD_FIELD SDABW 库存类别 8 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_ZMATNR EQ X.    ADD_FIELD ZMATNR 小货号 18 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  IF P_MATNR EQ X.    ADD_FIELD MATNR 大货号 18 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.  ENDIF.  ADD_FIELD QTY 数量 10 X ‘‘ ‘‘ ‘‘ ‘‘.  ADD_FIELD RVAL 吊牌金额 10 X ‘‘ ‘‘ ‘‘ ‘‘.  ADD_FIELD VAL 折后金额 10 X ‘‘ ‘‘ ‘‘ ‘‘.  CALL FUNCTION REUSE_ALV_GRID_DISPLAY    EXPORTING      I_CALLBACK_PROGRAM = SY-REPID      IT_FIELDCAT        = IT_FIELDCAT[]      IS_LAYOUT          = LS_LAYOUT      i_callback_pf_status_set = SET_PF_STATUS      i_callback_user_command  = USER_COMMAND      I_SAVE             = A    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.                    "FRM_SHOW_ALVFORM frm_process USING p_info .  CALL FUNCTION SAPGUI_PROGRESS_INDICATOR    EXPORTING      percentage = 100      text       = p_info    EXCEPTIONS      OTHERS     = 1.ENDFORM.

 

INCLUDE ZSDR020F02.   "日报,旬报,月报,季报,年报

ENDFORM.FORM frm_filled_date_table.  DATA fieldname(20).  LOOP AT lt_data_sum.    CLEAR <dyn_wa>.    ASSIGN COMPONENT J_3ADCCU OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-J_3ADCCU.    ASSIGN COMPONENT ZD_NAME1 OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-ZD_NAME1.    ASSIGN COMPONENT KUNNR OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-KUNNR.    ASSIGN COMPONENT NAME1 OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-NAME1.    ASSIGN COMPONENT STORETYPE OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-STORETYPE.    ASSIGN COMPONENT BUDAT OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-BUDAT.    ASSIGN COMPONENT PRDHA OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-PRDHA.    ASSIGN COMPONENT SPART OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-SPART.    ASSIGN COMPONENT EXTWG OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-EXTWG.    ASSIGN COMPONENT FORMT OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-FORMT.    ASSIGN COMPONENT SPARTTXT OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-SPARTTXT.    ASSIGN COMPONENT EXTWGTXT OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-EXTWGTXT.    ASSIGN COMPONENT PRDHATXT OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-PRDHATXT.    ASSIGN COMPONENT PRDHBTXT OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-PRDHBTXT.    ASSIGN COMPONENT VKGRP OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-VKGRP.    ASSIGN COMPONENT VKGRPTXT OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-VKGRPTXT.    ASSIGN COMPONENT SDABW OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-SDABW.    ASSIGN COMPONENT ZMATNR OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-ZMATNR.    ASSIGN COMPONENT MATNR OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-MATNR.    ASSIGN COMPONENT J_3ASIZE OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-J_3ASIZE.    ASSIGN COMPONENT KATR2 OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-KATR2.    ASSIGN COMPONENT KATR2TXT OF STRUCTURE <dyn_wa> TO <dyn_field>.    <dyn_field> = lt_data_sum-KATR2TXT.    if p_qty eq X.      ASSIGN COMPONENT lt_data_sum-statdate OF STRUCTURE <dyn_wa> TO <dyn_field>.      <dyn_field> = lt_data_sum-qty.      ASSIGN COMPONENT SUMALL OF STRUCTURE <dyn_wa> TO <dyn_field>.      <dyn_field> = lt_data_sum-qty.    elseif p_val1 eq X.      ASSIGN COMPONENT lt_data_sum-statdate OF STRUCTURE <dyn_wa> TO <dyn_field>.      <dyn_field> = lt_data_sum-RVAL.      ASSIGN COMPONENT SUMALL OF STRUCTURE <dyn_wa> TO <dyn_field>.      <dyn_field> = lt_data_sum-RVAL.    elseif p_val2 eq X.      ASSIGN COMPONENT lt_data_sum-statdate OF STRUCTURE <dyn_wa> TO <dyn_field>.      <dyn_field> = lt_data_sum-VAL.      ASSIGN COMPONENT SUMALL OF STRUCTURE <dyn_wa> TO <dyn_field>.      <dyn_field> = lt_data_sum-VAL.    endif.    COLLECT <dyn_wa> into <dyn_table>.  ENDLOOP.ENDFORM.FORM FRM_SHOW_SUM_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-COLWIDTH_OPTIMIZE = ‘‘.  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-FIX_COLUMN   = &7.    LS_FIELDCAT-NO_OUT       = &8.    APPEND LS_FIELDCAT TO IT_FIELDCAT.  END-OF-DEFINITION.  IF P_3ADCCU EQ X.    ADD_FIELD J_3ADCCU 总店     10 ‘‘ ‘‘ ‘‘ X ‘‘.    ADD_FIELD ZD_NAME1 总店名称 20 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_KUNNR EQ X.    ADD_FIELD KUNNR 门店编号 10 ‘‘ ‘‘ ‘‘ X ‘‘.    ADD_FIELD NAME1 门店名称 20 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  if p_vkgrp eq X.    ADD_FIELD VKGRPTXT 主管 10 ‘‘ ‘‘ ‘‘ X ‘‘.  endif.  IF P_TYPE EQ X.    ADD_FIELD STORETYPE 门店类型 8 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_KATR2 EQ X.    "ADD_FIELD ‘KATR2‘ ‘店铺类型‘ 8 ‘‘ ‘‘ ‘‘ ‘‘ ‘‘.    ADD_FIELD KATR2TXT 店铺类型 8 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_PRDHA EQ X.    ADD_FIELD PRDHA 产品层次 10 ‘‘ ‘‘ ‘‘ X ‘‘.    ADD_FIELD PRDHATXT 产品层次描述 10 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_PRDHB EQ X.    ADD_FIELD PRDHBTXT 商品大类 10 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_SPART EQ X.    ADD_FIELD SPART 品牌 10 ‘‘ ‘‘ ‘‘ X ‘‘.    ADD_FIELD SPARTTXT 品牌描述 18 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_EXTWG EQ X.    ADD_FIELD EXTWG 系列 8 ‘‘ ‘‘ ‘‘ X ‘‘.    ADD_FIELD EXTWGTXT 系列描述 18 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_FORMT EQ X.    ADD_FIELD FORMT 货品高新标识 8 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_SDABW EQ X.    ADD_FIELD SDABW 库存类别 8 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_ZMATNR EQ X.    ADD_FIELD ZMATNR 小货号 18 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  IF P_MATNR EQ X.    ADD_FIELD MATNR 大货号 18 ‘‘ ‘‘ ‘‘ X ‘‘.  ENDIF.  if lt_tmp[] is not INITIAL.    LOOP AT lt_tmp.      add_field lt_tmp-statdate lt_tmp-statdatetxt 10 X ‘‘ ‘‘ ‘‘ ‘‘.    ENDLOOP.    add_field SUMALL 汇总 10 X ‘‘ ‘‘ ‘‘ ‘‘.  endif.  CALL FUNCTION REUSE_ALV_GRID_DISPLAY    EXPORTING      I_CALLBACK_PROGRAM = SY-REPID      IT_FIELDCAT        = IT_FIELDCAT[]      IS_LAYOUT          = LS_LAYOUT      I_SAVE             = A    TABLES      T_OUTTAB           = <dyn_table>.  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.

 

销售分析报表