责任成本汇总表

**=====================================================================*
*& Report ZCO_RP_11
**=====================================================================*
REPORT zco_rp_11.

**=====================================================================*
*  Program ID             :  ZCO_RP_11
*  Program Description    :  责任成本汇总表

*======================================================================*
*                             Tables
*======================================================================*
TABLES: bkpf,mseg,aufk.

*======================================================================*
*                             Constants
*======================================================================*

*======================================================================*
*                             Types
*======================================================================*
TYPES: BEGIN OF gty_s_bukrs,
         bukrs TYPE t001-bukrs,
         butxt TYPE t001-butxt,
       END OF gty_s_bukrs.

TYPES: BEGIN OF gty_s_comp,
         bukrs TYPE t001-bukrs,
         bys   TYPE char5,
         byljs TYPE char7,
         bl    TYPE char5,
       END OF gty_s_comp.
DATA: gt_comp TYPE STANDARD TABLE OF gty_s_comp.

DATA: BEGIN OF gt_tab OCCURS 0,
        ym         TYPE char6,
        curdate    TYPE char40,
        tagvalue   TYPE char20,
        pid        TYPE i,
        wplantname TYPE char30,
        tagname    TYPE char30,
        medid      TYPE char18,
      END OF gt_tab.

DATA: BEGIN OF gt_werks OCCURS 0,
        pid   TYPE i,
        werks TYPE t001w-werks,
      END OF gt_werks.
*======================================================================*
*                     Internal Tables/work areas
*======================================================================*
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE.
FIELD-SYMBOLS: <dyn_wa>.
FIELD-SYMBOLS: <dyn_field>,<dyn_fieldt>.
DATA: gt_fieldcat TYPE lvc_t_fcat.
DATA: dy_table TYPE REF TO data,
      dy_line  TYPE REF TO data.
DATA: gt_bukrs TYPE STANDARD TABLE OF gty_s_bukrs.
*======================================================================*
*                      Data declarations
*======================================================================*
DATA: p_filename TYPE string.
DATA: l_filename TYPE string.
DATA: gv_pid TYPE i.

DATA: g_excel  TYPE ole2_object. "excel object
DATA: g_books  TYPE ole2_object.
DATA: g_book   TYPE ole2_object.
DATA: g_sheet  TYPE ole2_object.
DATA: g_cells  TYPE ole2_object.
DATA: g_cells1 TYPE ole2_object,
      g_cells2 TYPE ole2_object.

*======================================================================*
*                       Range declarations
*======================================================================*

*======================================================================*
*                      Input Selection Screen
*======================================================================*
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:s_bukrs FOR bkpf-bukrs OBLIGATORY,
               s_werks FOR mseg-werks OBLIGATORY,
               s_aufnr FOR aufk-aufnr OBLIGATORY.
PARAMETERS:p_gjahr LIKE bkpf-gjahr OBLIGATORY,
           p_monat LIKE bkpf-monat OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK b1.

*======================================================================*
*                        AT SELECTION-SCREEN ON VALUE-REQUEST
*======================================================================*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_aufnr-low.
  PERFORM frm_f4_for_aufnr.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_aufnr-high.
  PERFORM frm_f4_for_aufnr.

*======================================================================*
*                        Start of Selection
*======================================================================*
START-OF-SELECTION.
  PERFORM frm_connect_db.
  PERFORM frm_create_dynmic_table.
  PERFORM frm_get_data.

*======================================================================*
*                        End of Selection
*======================================================================*
END-OF-SELECTION.
  PERFORM frm_down_excel.

*&---------------------------------------------------------------------*
*&      Form  FRM_CONNECT_DB
*&---------------------------------------------------------------------*
*       连接SQL Server数据库
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_connect_db .

  DATA: dbs TYPE dbcon-con_name VALUE ‘INTWATERKDCONTEXT2‘.
  DATA: conn_ref TYPE REF TO cx_sy_native_sql_error.
  DATA: exec_err TYPE REF TO cx_sy_native_sql_error.
  DATA: error_text(100) TYPE c.
  DATA: lv_pid TYPE i.
  DATA: lv_begda TYPE char10.
  DATA: lv_endda TYPE char10.
  DATA: BEGIN OF lt_t001w OCCURS 0,
          werks TYPE t001w-werks,
        END OF lt_t001w.
  DATA: lv_year TYPE char6.

  CONCATENATE p_gjahr ‘%‘ INTO lv_year.
  CONDENSE lv_year NO-GAPS.
  SELECT werks
    FROM t001w
    INTO CORRESPONDING FIELDS OF TABLE lt_t001w
   WHERE werks IN s_werks[].
  TRY .
      EXEC SQL.
        CONNECT TO :DBS
      ENDEXEC.
    CATCH cx_sy_native_sql_error INTO conn_ref.
      error_text = conn_ref->get_text( ).
      MESSAGE error_text TYPE ‘I‘.
      EXIT.
  ENDTRY.

  LOOP AT lt_t001w.

    TRY .
        EXEC SQL.
          SELECT PId
            INTO :lv_pid
            FROM WaterPlants
           WHERE PlantNickName = :lt_t001w-werks
        ENDEXEC.
      CATCH cx_sy_native_sql_error INTO conn_ref.
        error_text = conn_ref->get_text( ).
        MESSAGE error_text TYPE ‘I‘.
        EXIT.
    ENDTRY.

    TRY .
        EXEC SQL PERFORMING process_sql2.
          SELECT PId,
                 PlantNickName
            INTO :gt_werks-pid,
                 :gt_werks-werks
            FROM WaterPlants
           WHERE PlantNickName = :lt_t001w-werks
        ENDEXEC.
      CATCH cx_sy_native_sql_error INTO conn_ref.
        error_text = conn_ref->get_text( ).
        MESSAGE error_text TYPE ‘I‘.
        EXIT.
    ENDTRY.

    TRY .
        EXEC SQL PERFORMING process_sql.
          SELECT ym,
                 CurDate,
                 TagValue,
                 PId,
                 WPlantName,
                 TagName,
                 MedID
            INTO :gt_tab-ym,
                 :gt_tab-CurDate,
                 :gt_tab-TagValue,
                 :gt_tab-PId,
                 :gt_tab-WPlantName,
                 :gt_tab-TagName,
                 :gt_tab-MedID
            FROM ERP_1
           WHERE PId = :lv_pid
             AND ym LIKE :lv_year
        ENDEXEC.
      CATCH cx_sy_native_sql_error INTO conn_ref.
        error_text = conn_ref->get_text( ).
        MESSAGE error_text TYPE ‘I‘.
        EXIT.
    ENDTRY.

  ENDLOOP.

ENDFORM.

FORM process_sql.
  APPEND gt_tab.
ENDFORM.
FORM process_sql2.
  APPEND gt_werks.
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_CREATE_DYNMIC_TABLE
*&---------------------------------------------------------------------*
*       创建动态内表
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_create_dynmic_table .

*创建动态结构
  PERFORM frm_frm_create_structure.
*创建动态内表
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog           = gt_fieldcat
    IMPORTING
      ep_table                  = dy_table
    EXCEPTIONS
      generate_subpool_dir_full = 1
      OTHERS                    = 2.
  ASSIGN dy_table->* TO <dyn_table>.
  CREATE DATA dy_line LIKE LINE OF <dyn_table>.
  ASSIGN dy_line->* TO <dyn_wa>.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------------------*
*       查询数据
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_get_data .
  DATA: lt_range TYPE RANGE OF cosr-objnr.
  DATA: ls_range LIKE LINE OF lt_range.
  DATA: lt_range1 TYPE RANGE OF cosr-objnr.
  DATA: ls_range1 LIKE LINE OF lt_range1.
  DATA: ls_comp TYPE gty_s_comp.
  TYPES: BEGIN OF lty_s_faglflext,
           rbukrs TYPE bukrs,
           hsl01 TYPE hslxx12,
           hsl02 TYPE hslxx12,
           hsl03 TYPE hslxx12,
           hsl04 TYPE hslxx12,
           hsl05 TYPE hslxx12,
           hsl06 TYPE hslxx12,
           hsl07 TYPE hslxx12,
           hsl08 TYPE hslxx12,
           hsl09 TYPE hslxx12,
           hsl10 TYPE hslxx12,
           hsl11 TYPE hslxx12,
           hsl12 TYPE hslxx12,
         END OF lty_s_faglflext.
  DATA: ls_faglflext  TYPE lty_s_faglflext.
  DATA: lt_faglflext1 TYPE STANDARD TABLE OF lty_s_faglflext.
  DATA: ls_faglflext1 TYPE lty_s_faglflext."收入

  TYPES: BEGIN OF lty_s_cosr,
           objnr  TYPE j_objnr,
           sme001 TYPE smexxx,
           sme002 TYPE smexxx,
           sme003 TYPE smexxx,
           sme004 TYPE smexxx,
           sme005 TYPE smexxx,
           sme006 TYPE smexxx,
           sme007 TYPE smexxx,
           sme008 TYPE smexxx,
           sme009 TYPE smexxx,
           sme010 TYPE smexxx,
           sme011 TYPE smexxx,
           sme012 TYPE smexxx,
         END OF lty_s_cosr.
  DATA: ls_cosr  TYPE lty_s_cosr.
  DATA: lt_cosr1 TYPE STANDARD TABLE OF lty_s_cosr.
  DATA: ls_cosr1 TYPE lty_s_cosr."收费污水处理量
  DATA: lt_cosr2 TYPE STANDARD TABLE OF lty_s_cosr.
  DATA: ls_cosr2 TYPE lty_s_cosr."实际污水处理量
  DATA: lt_cosr3 TYPE STANDARD TABLE OF lty_s_cosr.
  DATA: ls_cosr3 TYPE lty_s_cosr."电度电量
  DATA: lt_cosr4 TYPE STANDARD TABLE OF lty_s_cosr.
  DATA: ls_cosr4 TYPE lty_s_cosr."基本负荷

  TYPES: BEGIN OF lty_s_coep,
           objnr  TYPE coep-objnr,
           perio  TYPE coep-perio,
           wogbtr TYPE coep-wogbtr,
           beknz  TYPE coep-beknz,
         END OF lty_s_coep.
  DATA: lt_coep1 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep1 TYPE lty_s_coep."工资
  DATA: lt_coep2 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep2 TYPE lty_s_coep."福利
  DATA: lt_coep3 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep3 TYPE lty_s_coep."社会保险
  DATA: lt_coep4 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep4 TYPE lty_s_coep."电度电费
  DATA: lt_coep5 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep5 TYPE lty_s_coep."基本电费
  DATA: lt_coep6 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep6 TYPE lty_s_coep."水费
  DATA: lt_coep7 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep7 TYPE lty_s_coep."药剂费小计
  DATA: lt_coep8 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep8 TYPE lty_s_coep."日常维护费
  DATA: lt_coep9 TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coep9 TYPE lty_s_coep."污泥外运及处置费
  DATA: lt_coepa TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coepa TYPE lty_s_coep."化验费
  DATA: lt_coepb TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coepb TYPE lty_s_coep."监測费
  DATA: lt_coepc TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coepc TYPE lty_s_coep."管理费小计
  DATA: lt_coepd TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coepd TYPE lty_s_coep."办公费
  DATA: lt_coepe TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coepe TYPE lty_s_coep."差旅费
  DATA: lt_coepf TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coepf TYPE lty_s_coep."通讯费
  DATA: lt_coepg TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coepg TYPE lty_s_coep."车辆使用费
  DATA: lt_coeph TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coeph TYPE lty_s_coep."劳动保护费
  DATA: lt_coepi TYPE STANDARD TABLE OF lty_s_coep.
  DATA: ls_coepi TYPE lty_s_coep."业务费

  TYPES: BEGIN OF lty_s_t001k,
           bwkey TYPE t001k-bwkey,
           bukrs TYPE t001k-bukrs,
         END OF lty_s_t001k.
  DATA: lt_t001k TYPE STANDARD TABLE OF lty_s_t001k.
  DATA: ls_t001k TYPE lty_s_t001k.
  TYPES: BEGIN OF lty_s_setleaf,
           valsign   TYPE setleaf-valsign,
           valoption TYPE setleaf-valoption,
           valfrom   TYPE setleaf-valfrom,
           valto     TYPE setleaf-valto,
         END OF lty_s_setleaf.
  DATA: lt_setleaf TYPE STANDARD TABLE OF lty_s_setleaf.
  DATA: ls_setleaf TYPE lty_s_setleaf.
  DATA: lr_kstar TYPE RANGE OF coep-kstar.
  DATA: ls_kstar LIKE LINE OF lr_kstar.

  TYPES: BEGIN OF lty_s_zco010,
           bukrs TYPE zco010-bukrs,
           monat TYPE zco010-monat,
           zzrcb TYPE zco010-zzrcb,
         END OF lty_s_zco010.
  DATA: lt_zco010 TYPE STANDARD TABLE OF lty_s_zco010.
  DATA: ls_zco010 TYPE lty_s_zco010.

  TYPES: BEGIN OF lty_s_month,
           bukrs TYPE t001-bukrs,
           month TYPE smexxx,
           year  TYPE smexxx,
         END OF lty_s_month.
  DATA: ls_month TYPE lty_s_month.

  TYPES: BEGIN OF lty_s_bpej,
           objnr TYPE bpej-objnr,
           wtjhr TYPE bpej-wtjhr,
         END OF lty_s_bpej.
  DATA: lt_bpej TYPE STANDARD TABLE OF lty_s_bpej.
  DATA: ls_bpej TYPE lty_s_bpej.
  DATA: lv_hjbys TYPE smexxx.
  DATA: lv_hjbyljs TYPE smexxx.
  DATA: lv_day   TYPE bpej-wtjhr.
  DATA: lv_danjia TYPE p DECIMALS 3.
  DATA: lv_total TYPE bpej-wtjhr.
  DATA: lv_begda TYPE sy-datum.
  DATA: lv_endda TYPE sy-datum.
  DATA: lv_days  TYPE i.
  DATA: lv_fbdays  TYPE i.

  DATA: lv_year  TYPE char15,
        lv_month TYPE char15.
  DATA: lv_no       TYPE i.
  DATA: lv_field1   TYPE char10.
  DATA: lv_field2   TYPE char10.
  DATA: lv_matnr    TYPE char18.
  DATA: lv_matnr1   TYPE char18.

  FIELD-SYMBOLS:<dyn_wa1>,<dyn_wa2>,<dyn_wa3>,<dyn_wa4>,
                <dyn_wa5>,<dyn_wa6>,<dyn_wa7>,<dyn_wa8>.
  FIELD-SYMBOLS:<dyn_field1>,<dyn_field2>,<dyn_field3>,<dyn_field4>,
                <dyn_field5>,<dyn_field6>,<dyn_field7>,<dyn_field8>.
  FIELD-SYMBOLS:<dyn_field1t>,<dyn_field2t>,<dyn_field3t>.
  FIELD-SYMBOLS:<dy_field1>,<dy_field2>,<dy_field3>,<dy_field4>,
                <dy_field5>,<dy_field6>,<dy_field7>,<dy_field8>.
  FIELD-SYMBOLS:<dn_field1>,<dn_field2>,<dn_field3>,<dn_field4>,
                <dn_field5>,<dn_field6>,<dn_field7>,<dn_field8>.
  DATA: lv_field TYPE p DECIMALS 3.
  DATA: BEGIN OF lt_aufk OCCURS 0,
          aufnr TYPE aufk-aufnr,
        END OF lt_aufk.
DATA:BEGIN OF lt_aufnr OCCURS 0,
           bukrs TYPE coep-bukrs,
           objnr TYPE coep-objnr,
  END OF lt_aufnr.
DATA:BEGIN OF lt_aufnr1 OCCURS 0,
           bukrs TYPE coep-bukrs,
           objnr TYPE coep-objnr,
  END OF lt_aufnr1.
  DATA: ls_aufnr LIKE lt_aufnr.
  DATA: ls_aufnr1 LIKE lt_aufnr1.
  DATA: lv_length TYPE i.
  DATA: lv_beknz TYPE coep-beknz.
  DATA: lr_beknz TYPE RANGE OF coep-beknz.
  DATA: ls_beknz LIKE LINE OF lr_beknz.

  FIELD-SYMBOLS:<dy_field>.

  DATA: ls_line     TYPE REF TO data.
  DATA: ls_line1    TYPE REF TO data.
  DATA: ls_line2    TYPE REF TO data.
  DATA: ls_line3    TYPE REF TO data.
  DATA: ls_line4    TYPE REF TO data.
  DATA: ls_line5    TYPE REF TO data.
  DATA: ls_line6    TYPE REF TO data.
  DATA: ls_line7    TYPE REF TO data.
  DATA: ls_line8    TYPE REF TO data.

  CREATE DATA ls_line LIKE LINE OF <dyn_table>.
  CREATE DATA ls_line1 LIKE LINE OF <dyn_table>.
  CREATE DATA ls_line2 LIKE LINE OF <dyn_table>.
  CREATE DATA ls_line3 LIKE LINE OF <dyn_table>.
  CREATE DATA ls_line4 LIKE LINE OF <dyn_table>.
  CREATE DATA ls_line5 LIKE LINE OF <dyn_table>.
  CREATE DATA ls_line6 LIKE LINE OF <dyn_table>.
  CREATE DATA ls_line7 LIKE LINE OF <dyn_table>.
  CREATE DATA ls_line8 LIKE LINE OF <dyn_table>.
* 用<dyn_wa>指针指向该结构
  ASSIGN ls_line->* TO <dyn_wa>.
  ASSIGN ls_line1->* TO <dyn_wa1>.
  ASSIGN ls_line2->* TO <dyn_wa2>.
  ASSIGN ls_line3->* TO <dyn_wa3>.
  ASSIGN ls_line4->* TO <dyn_wa4>.
  ASSIGN ls_line5->* TO <dyn_wa5>.
  ASSIGN ls_line6->* TO <dyn_wa6>.
  ASSIGN ls_line7->* TO <dyn_wa7>.
  ASSIGN ls_line8->* TO <dyn_wa8>.

*收入
  SELECT rbukrs
         hsl01
         hsl02
         hsl03
         hsl04
         hsl05
         hsl06
         hsl07
         hsl08
         hsl09
         hsl10
         hsl11
         hsl12
    FROM faglflext
    INTO CORRESPONDING FIELDS OF TABLE lt_faglflext1
   WHERE racct = ‘6001000000‘
     AND rbukrs IN s_bukrs
     AND ryear = p_gjahr.
  SORT lt_faglflext1 BY rbukrs.
  LOOP AT lt_faglflext1 INTO ls_faglflext.
    CASE p_monat.
      WHEN 1.
        ls_month-month = ls_month-month + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
      WHEN 2.
        ls_month-month = ls_month-month + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
      WHEN 3.
        ls_month-month = ls_month-month + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
      WHEN 4.
        ls_month-month = ls_month-month + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
      WHEN 5.
        ls_month-month = ls_month-month + ls_faglflext-hsl05.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl05.
      WHEN 6.
        ls_month-month = ls_month-month + ls_faglflext-hsl06.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl05.
        ls_month-year = ls_month-year + ls_faglflext-hsl06.
      WHEN 7.
        ls_month-month = ls_month-month + ls_faglflext-hsl07.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl05.
        ls_month-year = ls_month-year + ls_faglflext-hsl06.
        ls_month-year = ls_month-year + ls_faglflext-hsl07.
      WHEN 8.
        ls_month-month = ls_month-month + ls_faglflext-hsl08.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl05.
        ls_month-year = ls_month-year + ls_faglflext-hsl06.
        ls_month-year = ls_month-year + ls_faglflext-hsl07.
        ls_month-year = ls_month-year + ls_faglflext-hsl08.
      WHEN 9.
        ls_month-month = ls_month-month + ls_faglflext-hsl09.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl05.
        ls_month-year = ls_month-year + ls_faglflext-hsl06.
        ls_month-year = ls_month-year + ls_faglflext-hsl07.
        ls_month-year = ls_month-year + ls_faglflext-hsl08.
        ls_month-year = ls_month-year + ls_faglflext-hsl09.
      WHEN 10.
        ls_month-month = ls_month-month + ls_faglflext-hsl10.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl05.
        ls_month-year = ls_month-year + ls_faglflext-hsl06.
        ls_month-year = ls_month-year + ls_faglflext-hsl07.
        ls_month-year = ls_month-year + ls_faglflext-hsl08.
        ls_month-year = ls_month-year + ls_faglflext-hsl09.
        ls_month-year = ls_month-year + ls_faglflext-hsl10.
      WHEN 11.
        ls_month-month = ls_month-month + ls_faglflext-hsl11.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl05.
        ls_month-year = ls_month-year + ls_faglflext-hsl06.
        ls_month-year = ls_month-year + ls_faglflext-hsl07.
        ls_month-year = ls_month-year + ls_faglflext-hsl08.
        ls_month-year = ls_month-year + ls_faglflext-hsl09.
        ls_month-year = ls_month-year + ls_faglflext-hsl10.
        ls_month-year = ls_month-year + ls_faglflext-hsl11.
      WHEN 12.
        ls_month-month = ls_month-month + ls_faglflext-hsl12.
        ls_month-year = ls_month-year + ls_faglflext-hsl01.
        ls_month-year = ls_month-year + ls_faglflext-hsl02.
        ls_month-year = ls_month-year + ls_faglflext-hsl03.
        ls_month-year = ls_month-year + ls_faglflext-hsl04.
        ls_month-year = ls_month-year + ls_faglflext-hsl05.
        ls_month-year = ls_month-year + ls_faglflext-hsl06.
        ls_month-year = ls_month-year + ls_faglflext-hsl07.
        ls_month-year = ls_month-year + ls_faglflext-hsl08.
        ls_month-year = ls_month-year + ls_faglflext-hsl09.
        ls_month-year = ls_month-year + ls_faglflext-hsl10.
        ls_month-year = ls_month-year + ls_faglflext-hsl11.
        ls_month-year = ls_month-year + ls_faglflext-hsl12.
      WHEN OTHERS.
    ENDCASE.
    AT END OF rbukrs.
      READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_faglflext-rbukrs.
      ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      lv_month = ls_month-month.
      SPLIT lv_month AT ‘-‘ INTO <dyn_field1> lv_month.

      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
      lv_year = ls_month-year.
      SPLIT lv_year AT ‘-‘ INTO <dyn_field2> lv_year.

      lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
      lv_hjbys = lv_hjbys + <dyn_field1>.
      CLEAR: ls_month.
    ENDAT.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*收费污水处理量

  SELECT aufnr
    FROM aufk
    INTO CORRESPONDING FIELDS OF TABLE lt_aufk
   WHERE aufnr IN s_aufnr[].
  LOOP AT lt_aufk.
    ls_range-sign = ‘I‘.
    ls_range-option = ‘EQ‘.
  lv_length = strlen( lt_aufk-aufnr ) - 1.
  lt_aufk-aufnr = lt_aufk-aufnr+0(lv_length).
  CONCATENATE lt_aufk-aufnr ‘1‘ INTO lt_aufk-aufnr.
    CONCATENATE ‘OR‘ lt_aufk-aufnr INTO ls_range-low.
    APPEND ls_range TO lt_range.
    CLEAR:ls_range,lt_aufk.
  ENDLOOP.
  LOOP AT lt_aufk.
    ls_range1-sign = ‘I‘.
    ls_range1-option = ‘EQ‘.
    CONCATENATE ‘OR‘ lt_aufk-aufnr INTO ls_range1-low.
    APPEND ls_range1 TO lt_range1.
    CLEAR:ls_range1,lt_aufk.
  ENDLOOP.
  SELECT bukrs
         objnr
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_aufnr
   WHERE objnr IN lt_range[]
     AND gjahr = p_gjahr
     AND bukrs IN s_bukrs[].
  SELECT bukrs
         objnr
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_aufnr1
   WHERE objnr IN lt_range1[]
     AND gjahr = p_gjahr
     AND bukrs IN s_bukrs[].
  IF sy-subrc <> 0.
    " EXIT.
  ENDIF.
  IF sy-subrc = 0.
    SORT lt_aufnr BY bukrs objnr.
    DELETE ADJACENT DUPLICATES FROM lt_aufnr COMPARING ALL FIELDS.
  IF lt_aufnr[] IS NOT INITIAL.
  SELECT objnr
         sme001
         sme002
         sme003
         sme004
         sme005
         sme006
         sme007
         sme008
         sme009
         sme010
         sme011
         sme012
    FROM cosr"coejr
    INTO CORRESPONDING FIELDS OF TABLE lt_cosr1
    FOR ALL ENTRIES IN lt_aufnr
   WHERE objnr = lt_aufnr-objnr
     AND gjahr = p_gjahr
     AND stagr = ‘S001‘
     AND wrttp = ‘01‘.
  ENDIF.

    LOOP AT lt_aufnr INTO ls_aufnr.
      READ TABLE lt_cosr1 INTO ls_cosr1 WITH KEY objnr = ls_aufnr-objnr.
    CASE p_monat.
      WHEN 1.
        ls_month-month = ls_month-month + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
      WHEN 2.
        ls_month-month = ls_month-month + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
      WHEN 3.
        ls_month-month = ls_month-month + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
      WHEN 4.
        ls_month-month = ls_month-month + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
      WHEN 5.
        ls_month-month = ls_month-month + ls_cosr1-sme005.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme005.
      WHEN 6.
        ls_month-month = ls_month-month + ls_cosr1-sme006.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme005.
        ls_month-year = ls_month-year + ls_cosr1-sme006.
      WHEN 7.
        ls_month-month = ls_month-month + ls_cosr1-sme007.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme005.
        ls_month-year = ls_month-year + ls_cosr1-sme006.
        ls_month-year = ls_month-year + ls_cosr1-sme007.
      WHEN 8.
        ls_month-month = ls_month-month + ls_cosr1-sme008.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme005.
        ls_month-year = ls_month-year + ls_cosr1-sme006.
        ls_month-year = ls_month-year + ls_cosr1-sme007.
        ls_month-year = ls_month-year + ls_cosr1-sme008.
      WHEN 9.
        ls_month-month = ls_month-month + ls_cosr1-sme009.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme005.
        ls_month-year = ls_month-year + ls_cosr1-sme006.
        ls_month-year = ls_month-year + ls_cosr1-sme007.
        ls_month-year = ls_month-year + ls_cosr1-sme008.
        ls_month-year = ls_month-year + ls_cosr1-sme009.
      WHEN 10.
        ls_month-month = ls_month-month + ls_cosr1-sme010.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme005.
        ls_month-year = ls_month-year + ls_cosr1-sme006.
        ls_month-year = ls_month-year + ls_cosr1-sme007.
        ls_month-year = ls_month-year + ls_cosr1-sme008.
        ls_month-year = ls_month-year + ls_cosr1-sme009.
        ls_month-year = ls_month-year + ls_cosr1-sme010.
      WHEN 11.
        ls_month-month = ls_month-month + ls_cosr1-sme011.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme005.
        ls_month-year = ls_month-year + ls_cosr1-sme006.
        ls_month-year = ls_month-year + ls_cosr1-sme007.
        ls_month-year = ls_month-year + ls_cosr1-sme008.
        ls_month-year = ls_month-year + ls_cosr1-sme009.
        ls_month-year = ls_month-year + ls_cosr1-sme010.
        ls_month-year = ls_month-year + ls_cosr1-sme011.
      WHEN 12.
        ls_month-month = ls_month-month + ls_cosr1-sme012.
        ls_month-year = ls_month-year + ls_cosr1-sme001.
        ls_month-year = ls_month-year + ls_cosr1-sme002.
        ls_month-year = ls_month-year + ls_cosr1-sme003.
        ls_month-year = ls_month-year + ls_cosr1-sme004.
        ls_month-year = ls_month-year + ls_cosr1-sme005.
        ls_month-year = ls_month-year + ls_cosr1-sme006.
        ls_month-year = ls_month-year + ls_cosr1-sme007.
        ls_month-year = ls_month-year + ls_cosr1-sme008.
        ls_month-year = ls_month-year + ls_cosr1-sme009.
        ls_month-year = ls_month-year + ls_cosr1-sme010.
        ls_month-year = ls_month-year + ls_cosr1-sme011.
        ls_month-year = ls_month-year + ls_cosr1-sme012.
      WHEN OTHERS.
    ENDCASE.
      ls_month-bukrs = ls_aufnr-bukrs.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*实际污水处理量
IF lt_aufnr[] IS NOT INITIAL.
  SELECT objnr
         sme001
         sme002
         sme003
         sme004
         sme005
         sme006
         sme007
         sme008
         sme009
         sme010
         sme011
         sme012
    FROM cosr"coejr
    INTO CORRESPONDING FIELDS OF TABLE lt_cosr2
    FOR ALL ENTRIES IN lt_aufnr
   WHERE objnr = lt_aufnr-objnr
     AND gjahr = p_gjahr
     AND stagr = ‘S001‘
     AND wrttp = ‘04‘.
ENDIF.

    LOOP AT lt_aufnr INTO ls_aufnr.
      READ TABLE lt_cosr2 INTO ls_cosr2 WITH KEY objnr = ls_aufnr-objnr.
    CASE p_monat.
      WHEN 1.
        ls_month-month = ls_month-month + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
      WHEN 2.
        ls_month-month = ls_month-month + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
      WHEN 3.
        ls_month-month = ls_month-month + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
      WHEN 4.
        ls_month-month = ls_month-month + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
      WHEN 5.
        ls_month-month = ls_month-month + ls_cosr2-sme005.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme005.
      WHEN 6.
        ls_month-month = ls_month-month + ls_cosr2-sme006.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme005.
        ls_month-year = ls_month-year + ls_cosr2-sme006.
      WHEN 7.
        ls_month-month = ls_month-month + ls_cosr2-sme007.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme005.
        ls_month-year = ls_month-year + ls_cosr2-sme006.
        ls_month-year = ls_month-year + ls_cosr2-sme007.
      WHEN 8.
        ls_month-month = ls_month-month + ls_cosr2-sme008.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme005.
        ls_month-year = ls_month-year + ls_cosr2-sme006.
        ls_month-year = ls_month-year + ls_cosr2-sme007.
        ls_month-year = ls_month-year + ls_cosr2-sme008.
      WHEN 9.
        ls_month-month = ls_month-month + ls_cosr2-sme009.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme005.
        ls_month-year = ls_month-year + ls_cosr2-sme006.
        ls_month-year = ls_month-year + ls_cosr2-sme007.
        ls_month-year = ls_month-year + ls_cosr2-sme008.
        ls_month-year = ls_month-year + ls_cosr2-sme009.
      WHEN 10.
        ls_month-month = ls_month-month + ls_cosr2-sme010.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme005.
        ls_month-year = ls_month-year + ls_cosr2-sme006.
        ls_month-year = ls_month-year + ls_cosr2-sme007.
        ls_month-year = ls_month-year + ls_cosr2-sme008.
        ls_month-year = ls_month-year + ls_cosr2-sme009.
        ls_month-year = ls_month-year + ls_cosr2-sme010.
      WHEN 11.
        ls_month-month = ls_month-month + ls_cosr2-sme011.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme005.
        ls_month-year = ls_month-year + ls_cosr2-sme006.
        ls_month-year = ls_month-year + ls_cosr2-sme007.
        ls_month-year = ls_month-year + ls_cosr2-sme008.
        ls_month-year = ls_month-year + ls_cosr2-sme009.
        ls_month-year = ls_month-year + ls_cosr2-sme010.
        ls_month-year = ls_month-year + ls_cosr2-sme011.
      WHEN 12.
        ls_month-month = ls_month-month + ls_cosr2-sme012.
        ls_month-year = ls_month-year + ls_cosr2-sme001.
        ls_month-year = ls_month-year + ls_cosr2-sme002.
        ls_month-year = ls_month-year + ls_cosr2-sme003.
        ls_month-year = ls_month-year + ls_cosr2-sme004.
        ls_month-year = ls_month-year + ls_cosr2-sme005.
        ls_month-year = ls_month-year + ls_cosr2-sme006.
        ls_month-year = ls_month-year + ls_cosr2-sme007.
        ls_month-year = ls_month-year + ls_cosr2-sme008.
        ls_month-year = ls_month-year + ls_cosr2-sme009.
        ls_month-year = ls_month-year + ls_cosr2-sme010.
        ls_month-year = ls_month-year + ls_cosr2-sme011.
        ls_month-year = ls_month-year + ls_cosr2-sme012.
      WHEN OTHERS.
    ENDCASE.
      ls_month-bukrs = ls_aufnr-bukrs.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*收费单位价格
    READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 1.
    READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 2.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*人工费小计
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR <dyn_wa>.

*工资
  ls_beknz-option = ‘EQ‘.
  ls_beknz-sign = ‘I‘.
  ls_beknz-low = ‘C‘.
  APPEND ls_beknz TO lr_beknz.
  ls_beknz-option = ‘EQ‘.
  ls_beknz-sign = ‘I‘.
  ls_beknz-high = ‘D‘.
  APPEND ls_beknz TO lr_beknz.
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep1
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5001030100‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
ENDIF.
    SORT lt_coep1 BY objnr perio.
        LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep1 INTO ls_coep1 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep1-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep1-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep1-perio = 1.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2 OR ls_coep1-perio = 3.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2 OR ls_coep1-perio = 3 OR ls_coep1-perio = 4.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2 OR ls_coep1-perio = 3 OR ls_coep1-perio = 4 OR ls_coep1-perio = 5.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2 OR ls_coep1-perio = 3 OR ls_coep1-perio = 4 OR ls_coep1-perio = 5 OR ls_coep1-perio = 6.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2 OR ls_coep1-perio = 3 OR ls_coep1-perio = 4 OR ls_coep1-perio = 5
              OR ls_coep1-perio = 6 OR ls_coep1-perio = 7.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2 OR ls_coep1-perio = 3 OR ls_coep1-perio = 4 OR ls_coep1-perio = 5
              OR ls_coep1-perio = 6 OR ls_coep1-perio = 7 OR ls_coep1-perio = 8.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2 OR ls_coep1-perio = 3 OR ls_coep1-perio = 4 OR ls_coep1-perio = 5
              OR ls_coep1-perio = 6 OR ls_coep1-perio = 7 OR ls_coep1-perio = 8 OR ls_coep1-perio = 9.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep1-perio = 1 OR ls_coep1-perio = 2 OR ls_coep1-perio = 3 OR ls_coep1-perio = 4 OR ls_coep1-perio = 5
              OR ls_coep1-perio = 6 OR ls_coep1-perio = 7 OR ls_coep1-perio = 8 OR ls_coep1-perio = 9 OR ls_coep1-perio = 10.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep1-perio < 12.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep1-perio < 13.
              ls_month-year = ls_month-year + ls_coep1-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*福利
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep2
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5001030200‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coep2 BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep2 INTO ls_coep2 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep2-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep2-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep2-perio = 1.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2 OR ls_coep2-perio = 3.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2 OR ls_coep2-perio = 3 OR ls_coep2-perio = 4.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2 OR ls_coep2-perio = 3 OR ls_coep2-perio = 4 OR ls_coep2-perio = 5.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2 OR ls_coep2-perio = 3 OR ls_coep2-perio = 4 OR ls_coep2-perio = 5 OR ls_coep2-perio = 6.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2 OR ls_coep2-perio = 3 OR ls_coep2-perio = 4 OR ls_coep2-perio = 5
              OR ls_coep2-perio = 6 OR ls_coep2-perio = 7.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2 OR ls_coep2-perio = 3 OR ls_coep2-perio = 4 OR ls_coep2-perio = 5
              OR ls_coep2-perio = 6 OR ls_coep2-perio = 7 OR ls_coep2-perio = 8.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2 OR ls_coep2-perio = 3 OR ls_coep2-perio = 4 OR ls_coep2-perio = 5
              OR ls_coep2-perio = 6 OR ls_coep2-perio = 7 OR ls_coep2-perio = 8 OR ls_coep2-perio = 9.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep2-perio = 1 OR ls_coep2-perio = 2 OR ls_coep2-perio = 3 OR ls_coep2-perio = 4 OR ls_coep2-perio = 5
              OR ls_coep2-perio = 6 OR ls_coep2-perio = 7 OR ls_coep2-perio = 8 OR ls_coep2-perio = 9 OR ls_coep2-perio = 10.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep2-perio < 12.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep2-perio < 13.
              ls_month-year = ls_month-year + ls_coep2-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*社会保险
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep3
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5001030300‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coep3 BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep3 INTO ls_coep3 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep3-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep3-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep3-perio = 1.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2 OR ls_coep3-perio = 3.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2 OR ls_coep3-perio = 3 OR ls_coep3-perio = 4.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2 OR ls_coep3-perio = 3 OR ls_coep3-perio = 4 OR ls_coep3-perio = 5.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2 OR ls_coep3-perio = 3 OR ls_coep3-perio = 4 OR ls_coep3-perio = 5 OR ls_coep3-perio = 6.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2 OR ls_coep3-perio = 3 OR ls_coep3-perio = 4 OR ls_coep3-perio = 5
              OR ls_coep3-perio = 6 OR ls_coep3-perio = 7.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2 OR ls_coep3-perio = 3 OR ls_coep3-perio = 4 OR ls_coep3-perio = 5
              OR ls_coep3-perio = 6 OR ls_coep3-perio = 7 OR ls_coep3-perio = 8.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2 OR ls_coep3-perio = 3 OR ls_coep3-perio = 4 OR ls_coep3-perio = 5
              OR ls_coep3-perio = 6 OR ls_coep3-perio = 7 OR ls_coep3-perio = 8 OR ls_coep3-perio = 9.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep3-perio = 1 OR ls_coep3-perio = 2 OR ls_coep3-perio = 3 OR ls_coep3-perio = 4 OR ls_coep3-perio = 5
              OR ls_coep3-perio = 6 OR ls_coep3-perio = 7 OR ls_coep3-perio = 8 OR ls_coep3-perio = 9 OR ls_coep3-perio = 10.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep3-perio < 12.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep3-perio < 13.
              ls_month-year = ls_month-year + ls_coep3-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*更新人工费
*  lv_month = s_monat-low.
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 6.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 7.
  READ TABLE <dyn_table> INTO <dyn_wa3> INDEX 8.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dn_field1>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dy_field2>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa3> TO <dy_field3>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa3> TO <dn_field3>.

      <dyn_field1> = <dy_field1> + <dy_field2> + <dy_field3>.
      <dyn_field2> = <dn_field1> + <dn_field2> + <dn_field3>.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.

  MODIFY <dyn_table> FROM <dyn_wa> INDEX 5.
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.

*电费小计
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR <dyn_wa>.

*电度电费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep4
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5001020100‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coep4 BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep4 INTO ls_coep4 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep4-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep4-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep4-perio = 1.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2 OR ls_coep4-perio = 3.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2 OR ls_coep4-perio = 3 OR ls_coep4-perio = 4.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2 OR ls_coep4-perio = 3 OR ls_coep4-perio = 4 OR ls_coep4-perio = 5.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2 OR ls_coep4-perio = 3 OR ls_coep4-perio = 4 OR ls_coep4-perio = 5 OR ls_coep4-perio = 6.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2 OR ls_coep4-perio = 3 OR ls_coep4-perio = 4 OR ls_coep4-perio = 5
              OR ls_coep4-perio = 6 OR ls_coep4-perio = 7.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2 OR ls_coep4-perio = 3 OR ls_coep4-perio = 4 OR ls_coep4-perio = 5
              OR ls_coep4-perio = 6 OR ls_coep4-perio = 7 OR ls_coep4-perio = 8.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2 OR ls_coep4-perio = 3 OR ls_coep4-perio = 4 OR ls_coep4-perio = 5
              OR ls_coep4-perio = 6 OR ls_coep4-perio = 7 OR ls_coep4-perio = 8 OR ls_coep4-perio = 9.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep4-perio = 1 OR ls_coep4-perio = 2 OR ls_coep4-perio = 3 OR ls_coep4-perio = 4 OR ls_coep4-perio = 5
              OR ls_coep4-perio = 6 OR ls_coep4-perio = 7 OR ls_coep4-perio = 8 OR ls_coep4-perio = 9 OR ls_coep4-perio = 10.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep4-perio < 12.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep4-perio < 13.
              ls_month-year = ls_month-year + ls_coep4-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.
*单位电耗
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: <dyn_wa>.

*电度电量
IF lt_aufnr[] IS NOT INITIAL.
  SELECT objnr
         sme001
         sme002
         sme003
         sme004
         sme005
         sme006
         sme007
         sme008
         sme009
         sme010
         sme011
         sme012
    FROM cosr"coejr
    INTO CORRESPONDING FIELDS OF TABLE lt_cosr3
    FOR ALL ENTRIES IN lt_aufnr
   WHERE objnr = lt_aufnr-objnr
     AND gjahr = p_gjahr
     AND stagr = ‘S003‘
     AND wrttp = ‘04‘.
ENDIF.

    LOOP AT lt_aufnr INTO ls_aufnr.
      READ TABLE lt_cosr3 INTO ls_cosr3 WITH KEY objnr = ls_aufnr-objnr.
    CASE p_monat.
      WHEN 1.
        ls_month-month = ls_month-month + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
      WHEN 2.
        ls_month-month = ls_month-month + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
      WHEN 3.
        ls_month-month = ls_month-month + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
      WHEN 4.
        ls_month-month = ls_month-month + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
      WHEN 5.
        ls_month-month = ls_month-month + ls_cosr3-sme005.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme005.
      WHEN 6.
        ls_month-month = ls_month-month + ls_cosr3-sme006.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme005.
        ls_month-year = ls_month-year + ls_cosr3-sme006.
      WHEN 7.
        ls_month-month = ls_month-month + ls_cosr3-sme007.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme005.
        ls_month-year = ls_month-year + ls_cosr3-sme006.
        ls_month-year = ls_month-year + ls_cosr3-sme007.
      WHEN 8.
        ls_month-month = ls_month-month + ls_cosr3-sme008.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme005.
        ls_month-year = ls_month-year + ls_cosr3-sme006.
        ls_month-year = ls_month-year + ls_cosr3-sme007.
        ls_month-year = ls_month-year + ls_cosr3-sme008.
      WHEN 9.
        ls_month-month = ls_month-month + ls_cosr3-sme009.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme005.
        ls_month-year = ls_month-year + ls_cosr3-sme006.
        ls_month-year = ls_month-year + ls_cosr3-sme007.
        ls_month-year = ls_month-year + ls_cosr3-sme008.
        ls_month-year = ls_month-year + ls_cosr3-sme009.
      WHEN 10.
        ls_month-month = ls_month-month + ls_cosr3-sme010.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme005.
        ls_month-year = ls_month-year + ls_cosr3-sme006.
        ls_month-year = ls_month-year + ls_cosr3-sme007.
        ls_month-year = ls_month-year + ls_cosr3-sme008.
        ls_month-year = ls_month-year + ls_cosr3-sme009.
        ls_month-year = ls_month-year + ls_cosr3-sme010.
      WHEN 11.
        ls_month-month = ls_month-month + ls_cosr3-sme011.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme005.
        ls_month-year = ls_month-year + ls_cosr3-sme006.
        ls_month-year = ls_month-year + ls_cosr3-sme007.
        ls_month-year = ls_month-year + ls_cosr3-sme008.
        ls_month-year = ls_month-year + ls_cosr3-sme009.
        ls_month-year = ls_month-year + ls_cosr3-sme010.
        ls_month-year = ls_month-year + ls_cosr3-sme011.
      WHEN 12.
        ls_month-month = ls_month-month + ls_cosr3-sme012.
        ls_month-year = ls_month-year + ls_cosr3-sme001.
        ls_month-year = ls_month-year + ls_cosr3-sme002.
        ls_month-year = ls_month-year + ls_cosr3-sme003.
        ls_month-year = ls_month-year + ls_cosr3-sme004.
        ls_month-year = ls_month-year + ls_cosr3-sme005.
        ls_month-year = ls_month-year + ls_cosr3-sme006.
        ls_month-year = ls_month-year + ls_cosr3-sme007.
        ls_month-year = ls_month-year + ls_cosr3-sme008.
        ls_month-year = ls_month-year + ls_cosr3-sme009.
        ls_month-year = ls_month-year + ls_cosr3-sme010.
        ls_month-year = ls_month-year + ls_cosr3-sme011.
        ls_month-year = ls_month-year + ls_cosr3-sme012.
      WHEN OTHERS.
    ENDCASE.
      ls_month-bukrs = ls_aufnr-bukrs.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*电度单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 10.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 12.
  CLEAR:lv_danjia.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*基本电费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep5
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5001020200‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coep5 BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep5 INTO ls_coep5 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep5-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep5-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep5-perio = 1.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2 OR ls_coep5-perio = 3.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2 OR ls_coep5-perio = 3 OR ls_coep5-perio = 4.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2 OR ls_coep5-perio = 3 OR ls_coep5-perio = 4 OR ls_coep5-perio = 5.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2 OR ls_coep5-perio = 3 OR ls_coep5-perio = 4 OR ls_coep5-perio = 5 OR ls_coep5-perio = 6.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2 OR ls_coep5-perio = 3 OR ls_coep5-perio = 4 OR ls_coep5-perio = 5
              OR ls_coep5-perio = 6 OR ls_coep5-perio = 7.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2 OR ls_coep5-perio = 3 OR ls_coep5-perio = 4 OR ls_coep5-perio = 5
              OR ls_coep5-perio = 6 OR ls_coep5-perio = 7 OR ls_coep5-perio = 8.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2 OR ls_coep5-perio = 3 OR ls_coep5-perio = 4 OR ls_coep5-perio = 5
              OR ls_coep5-perio = 6 OR ls_coep5-perio = 7 OR ls_coep5-perio = 8 OR ls_coep5-perio = 9.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep5-perio = 1 OR ls_coep5-perio = 2 OR ls_coep5-perio = 3 OR ls_coep5-perio = 4 OR ls_coep5-perio = 5
              OR ls_coep5-perio = 6 OR ls_coep5-perio = 7 OR ls_coep5-perio = 8 OR ls_coep5-perio = 9 OR ls_coep5-perio = 10.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep5-perio < 12.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep5-perio < 13.
              ls_month-year = ls_month-year + ls_coep5-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*基本负荷
IF lt_aufnr[] IS NOT INITIAL.
  SELECT objnr
         sme001
         sme002
         sme003
         sme004
         sme005
         sme006
         sme007
         sme008
         sme009
         sme010
         sme011
         sme012
    FROM cosr"coejr
    INTO CORRESPONDING FIELDS OF TABLE lt_cosr4
    FOR ALL ENTRIES IN lt_aufnr
   WHERE objnr = lt_aufnr-objnr
     AND gjahr = p_gjahr
     AND stagr = ‘S005‘
     AND wrttp = ‘04‘.
ENDIF.
    LOOP AT lt_aufnr INTO ls_aufnr.
      READ TABLE lt_cosr4 INTO ls_cosr4 WITH KEY objnr = ls_aufnr-objnr.
    CASE p_monat.
      WHEN 1.
        ls_month-month = ls_month-month + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
      WHEN 2.
        ls_month-month = ls_month-month + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
      WHEN 3.
        ls_month-month = ls_month-month + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
      WHEN 4.
        ls_month-month = ls_month-month + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
      WHEN 5.
        ls_month-month = ls_month-month + ls_cosr4-sme005.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme005.
      WHEN 6.
        ls_month-month = ls_month-month + ls_cosr4-sme006.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme005.
        ls_month-year = ls_month-year + ls_cosr4-sme006.
      WHEN 7.
        ls_month-month = ls_month-month + ls_cosr4-sme007.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme005.
        ls_month-year = ls_month-year + ls_cosr4-sme006.
        ls_month-year = ls_month-year + ls_cosr4-sme007.
      WHEN 8.
        ls_month-month = ls_month-month + ls_cosr4-sme008.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme005.
        ls_month-year = ls_month-year + ls_cosr4-sme006.
        ls_month-year = ls_month-year + ls_cosr4-sme007.
        ls_month-year = ls_month-year + ls_cosr4-sme008.
      WHEN 9.
        ls_month-month = ls_month-month + ls_cosr4-sme009.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme005.
        ls_month-year = ls_month-year + ls_cosr4-sme006.
        ls_month-year = ls_month-year + ls_cosr4-sme007.
        ls_month-year = ls_month-year + ls_cosr4-sme008.
        ls_month-year = ls_month-year + ls_cosr4-sme009.
      WHEN 10.
        ls_month-month = ls_month-month + ls_cosr4-sme010.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme005.
        ls_month-year = ls_month-year + ls_cosr4-sme006.
        ls_month-year = ls_month-year + ls_cosr4-sme007.
        ls_month-year = ls_month-year + ls_cosr4-sme008.
        ls_month-year = ls_month-year + ls_cosr4-sme009.
        ls_month-year = ls_month-year + ls_cosr4-sme010.
      WHEN 11.
        ls_month-month = ls_month-month + ls_cosr4-sme011.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme005.
        ls_month-year = ls_month-year + ls_cosr4-sme006.
        ls_month-year = ls_month-year + ls_cosr4-sme007.
        ls_month-year = ls_month-year + ls_cosr4-sme008.
        ls_month-year = ls_month-year + ls_cosr4-sme009.
        ls_month-year = ls_month-year + ls_cosr4-sme010.
        ls_month-year = ls_month-year + ls_cosr4-sme011.
      WHEN 12.
        ls_month-month = ls_month-month + ls_cosr4-sme012.
        ls_month-year = ls_month-year + ls_cosr4-sme001.
        ls_month-year = ls_month-year + ls_cosr4-sme002.
        ls_month-year = ls_month-year + ls_cosr4-sme003.
        ls_month-year = ls_month-year + ls_cosr4-sme004.
        ls_month-year = ls_month-year + ls_cosr4-sme005.
        ls_month-year = ls_month-year + ls_cosr4-sme006.
        ls_month-year = ls_month-year + ls_cosr4-sme007.
        ls_month-year = ls_month-year + ls_cosr4-sme008.
        ls_month-year = ls_month-year + ls_cosr4-sme009.
        ls_month-year = ls_month-year + ls_cosr4-sme010.
        ls_month-year = ls_month-year + ls_cosr4-sme011.
        ls_month-year = ls_month-year + ls_cosr4-sme012.
      WHEN OTHERS.
    ENDCASE.
      ls_month-bukrs = ls_aufnr-bukrs.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*基本负荷单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 14.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 15.

    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*更新电费小计
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 10.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 14.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dn_field1>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dy_field2>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.

      <dyn_field1> = <dy_field1> + <dy_field2>.
      <dyn_field2> = <dn_field1> + <dn_field2>.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.

  MODIFY <dyn_table> FROM <dyn_wa> INDEX 9.
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
*水费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep6
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5001020300‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coep6 BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep6 INTO ls_coep6 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep6-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep6-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep6-perio = 1.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2 OR ls_coep6-perio = 3.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2 OR ls_coep6-perio = 3 OR ls_coep6-perio = 4.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2 OR ls_coep6-perio = 3 OR ls_coep6-perio = 4 OR ls_coep6-perio = 5.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2 OR ls_coep6-perio = 3 OR ls_coep6-perio = 4 OR ls_coep6-perio = 5 OR ls_coep6-perio = 6.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2 OR ls_coep6-perio = 3 OR ls_coep6-perio = 4 OR ls_coep6-perio = 5
              OR ls_coep6-perio = 6 OR ls_coep6-perio = 7.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2 OR ls_coep6-perio = 3 OR ls_coep6-perio = 4 OR ls_coep6-perio = 5
              OR ls_coep6-perio = 6 OR ls_coep6-perio = 7 OR ls_coep6-perio = 8.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2 OR ls_coep6-perio = 3 OR ls_coep6-perio = 4 OR ls_coep6-perio = 5
              OR ls_coep6-perio = 6 OR ls_coep6-perio = 7 OR ls_coep6-perio = 8 OR ls_coep6-perio = 9.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep6-perio = 1 OR ls_coep6-perio = 2 OR ls_coep6-perio = 3 OR ls_coep6-perio = 4 OR ls_coep6-perio = 5
              OR ls_coep6-perio = 6 OR ls_coep6-perio = 7 OR ls_coep6-perio = 8 OR ls_coep6-perio = 9 OR ls_coep6-perio = 10.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep6-perio < 12.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep6-perio < 13.
              ls_month-year = ls_month-year + ls_coep6-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*药剂费小计
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep7
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5001010001‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coep7 BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep7 INTO ls_coep7 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep7-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep7-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep7-perio = 1.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2 OR ls_coep7-perio = 3.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2 OR ls_coep7-perio = 3 OR ls_coep7-perio = 4.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2 OR ls_coep7-perio = 3 OR ls_coep7-perio = 4 OR ls_coep7-perio = 5.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2 OR ls_coep7-perio = 3 OR ls_coep7-perio = 4 OR ls_coep7-perio = 5 OR ls_coep7-perio = 6.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2 OR ls_coep7-perio = 3 OR ls_coep7-perio = 4 OR ls_coep7-perio = 5
              OR ls_coep7-perio = 6 OR ls_coep7-perio = 7.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2 OR ls_coep7-perio = 3 OR ls_coep7-perio = 4 OR ls_coep7-perio = 5
              OR ls_coep7-perio = 6 OR ls_coep7-perio = 7 OR ls_coep7-perio = 8.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2 OR ls_coep7-perio = 3 OR ls_coep7-perio = 4 OR ls_coep7-perio = 5
              OR ls_coep7-perio = 6 OR ls_coep7-perio = 7 OR ls_coep7-perio = 8 OR ls_coep7-perio = 9.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep7-perio = 1 OR ls_coep7-perio = 2 OR ls_coep7-perio = 3 OR ls_coep7-perio = 4 OR ls_coep7-perio = 5
              OR ls_coep7-perio = 6 OR ls_coep7-perio = 7 OR ls_coep7-perio = 8 OR ls_coep7-perio = 9 OR ls_coep7-perio = 10.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep7-perio < 12.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep7-perio < 13.
              ls_month-year = ls_month-year + ls_coep7-wogbtr.
          ENDIF..
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.
*工厂公司相应关系
    IF gt_werks IS NOT INITIAL.
      SELECT bwkey
             bukrs
        FROM t001k
        INTO CORRESPONDING FIELDS OF TABLE lt_t001k
         FOR ALL ENTRIES IN gt_werks
       WHERE bwkey = gt_werks-werks.
    ENDIF.
*阴离子聚丙烯酰胺
  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND zkwbm = ‘10000002‘.
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*阴离子聚丙烯酰胺&单耗

    READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 19.
    READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 3.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*阴离子聚丙烯酰胺*用量

    CLEAR: lv_matnr.
    lv_matnr = ‘10000002‘.
    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND medid = lv_matnr.
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.

      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*阴离子聚丙烯酰胺&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 19.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 21.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*阳离子聚丙烯酰胺

  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND zkwbm = ‘10000001‘.
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.
*阳离子聚丙烯酰胺&单耗

    READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 23.
    READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 3.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*阳离子聚丙烯酰胺*用量

    CLEAR: lv_matnr.
    lv_matnr = ‘10000001‘.
    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND medid = lv_matnr.
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.

      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
            ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*阳离子聚丙烯酰胺&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 23.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 25.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*聚合硫酸铁

  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND ( zkwbm = ‘10000003‘ OR zkwbm = ‘10000004‘ ).
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.
*聚合硫酸铁&单耗

    READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 27.
    READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 3.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*聚合硫酸铁*用量

  CLEAR: lv_matnr,lv_matnr1.
  lv_matnr = ‘10000003‘.lv_matnr1 = ‘10000004‘.
    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND ( medid = ‘10000003‘ OR medid = ‘10000004‘).
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.

      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*聚合硫酸铁&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 27.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 29.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*聚合氯化铝
  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND ( zkwbm = ‘10000005‘ OR zkwbm = ‘10000006‘ ).
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*聚合氯化铝&单耗

    READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 31.
    READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 3.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*聚合氯化铝*用量

    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND  ( medid = ‘10000005‘ OR medid = ‘10000006‘ ).
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.

      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*聚合氯化铝&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 31.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 33.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*活性炭
  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND zkwbm = ‘10000019‘.
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*活性炭&单耗

    READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 35.
    READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 3.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*活性炭*用量

    CLEAR: lv_matnr.
      lv_matnr = ‘10000019‘.
    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND medid = lv_matnr.
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.

      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*活性炭&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 35.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 37.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*乙酸钠
  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND zkwbm = ‘10000009‘.
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*乙酸钠&单耗

    READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 39.
    READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 3.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*乙酸钠*用量

    CLEAR: lv_matnr.
    lv_matnr = ‘10000009‘.
    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND medid = lv_matnr.
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.
      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*乙酸钠&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 39.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 41.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*液氧
  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND zkwbm = ‘10000024‘.
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*液氧&单耗
    READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 43.
    READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 3.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*液氧*用量

    CLEAR: lv_matnr.
    lv_matnr = ‘10000024‘.
    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND medid = lv_matnr.
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.

      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*液氧&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 43.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 45.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*消毒药剂
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: <dyn_wa>,lv_month.

*盐酸

  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND zkwbm = ‘10000023‘.
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*盐酸*用量

    CLEAR: lv_matnr.
    lv_matnr = ‘10000023‘.
    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND medid = lv_matnr.
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.
      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
            ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*盐酸&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 48.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 49.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*氯酸钠

  REFRESH lt_zco010.
  SELECT bukrs
         monat
         zzrcb
    FROM zco010
    INTO CORRESPONDING FIELDS OF TABLE lt_zco010
   WHERE bukrs IN s_bukrs
     AND werks IN s_werks
     AND aufnr IN s_aufnr
     AND gjahr = p_gjahr
     AND monat = p_monat
     AND zkwbm = ‘10000007‘.
  SORT lt_zco010 BY bukrs.
  LOOP AT lt_zco010 INTO ls_zco010.
    IF ls_zco010-monat = p_monat.
            ls_month-month = ls_month-month + ls_zco010-zzrcb.
    ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_zco010-monat = 1.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 2.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 3.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 4.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 5.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 6.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5 OR ls_zco010-monat = 6.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 7.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 8.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 9.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9.
              ls_month-year = ls_month-year + ls_zco010-zzrcb .
          ENDIF.
        WHEN 10.
          IF ls_zco010-monat = 1 OR ls_zco010-monat = 2 OR ls_zco010-monat = 3 OR ls_zco010-monat = 4 OR ls_zco010-monat = 5
              OR ls_zco010-monat = 6 OR ls_zco010-monat = 7 OR ls_zco010-monat = 8 OR ls_zco010-monat = 9 OR ls_zco010-monat = 10.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 11.
          IF ls_zco010-monat < 12.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN 12.
          IF ls_zco010-monat < 13.
              ls_month-year = ls_month-year + ls_zco010-zzrcb.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_zco010-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR: ls_aufnr1,ls_zco010.
  ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*氯酸钠*用量

    CLEAR: lv_matnr.
    lv_matnr = ‘10000007‘.
    LOOP AT lt_aufnr INTO ls_aufnr.
      LOOP AT lt_t001k INTO ls_t001k WHERE bukrs = ls_aufnr-bukrs.
        READ TABLE gt_werks WITH KEY werks = ls_t001k-bwkey.
        LOOP AT gt_tab WHERE pid = gt_werks-pid
                          AND medid = lv_matnr.
          IF gt_tab-ym+4(2) = p_monat.
            ls_month-month = ls_month-month + gt_tab-tagvalue.
          ENDIF.
      CASE p_monat.
        WHEN 1.
          IF gt_tab-ym+4(2) = 1.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 2.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 3.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 4.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 5.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 6.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5 OR gt_tab-ym+4(2) = 6.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 7.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 8.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 9.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 10.
          IF gt_tab-ym+4(2) = 1 OR gt_tab-ym+4(2) = 2 OR gt_tab-ym+4(2) = 3 OR gt_tab-ym+4(2) = 4 OR gt_tab-ym+4(2) = 5
              OR gt_tab-ym+4(2) = 6 OR gt_tab-ym+4(2) = 7 OR gt_tab-ym+4(2) = 8 OR gt_tab-ym+4(2) = 9 OR gt_tab-ym+4(2) = 10.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 11.
          IF gt_tab-ym+4(2) < 12.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
          ENDIF.
        WHEN 12.
          IF gt_tab-ym+4(2) < 13.
              ls_month-year = ls_month-year + gt_tab-tagvalue.
            ENDIF.
        WHEN OTHERS.
      ENDCASE.
        ENDLOOP.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*氯酸钠&单位价格
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 51.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 52.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*改动消毒药剂
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 48.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 51.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dn_field1>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dy_field2>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.

      <dyn_field1> = <dy_field1> + <dy_field2>.
      <dyn_field2> = <dn_field1> + <dn_field2>.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.

  MODIFY <dyn_table> FROM <dyn_wa> INDEX 47.
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.

*其它药剂
  READ TABLE <dyn_table> INTO <dyn_wa>  INDEX 18.
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 19.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 23.
  READ TABLE <dyn_table> INTO <dyn_wa3> INDEX 27.
  READ TABLE <dyn_table> INTO <dyn_wa4> INDEX 31.
  READ TABLE <dyn_table> INTO <dyn_wa5> INDEX 35.
  READ TABLE <dyn_table> INTO <dyn_wa6> INDEX 39.
  READ TABLE <dyn_table> INTO <dyn_wa7> INDEX 43.
  READ TABLE <dyn_table> INTO <dyn_wa8> INDEX 47.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dn_field1>.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dy_field2>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa3> TO <dy_field3>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa3> TO <dn_field3>.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa4> TO <dy_field4>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa4> TO <dn_field4>.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa5> TO <dy_field5>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa5> TO <dn_field5>.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa6> TO <dy_field6>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa6> TO <dn_field6>.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa7> TO <dy_field7>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa7> TO <dn_field7>.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa8> TO <dy_field8>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa8> TO <dn_field8>.
    <dyn_field1> = <dyn_field1>  - <dy_field1>  - <dy_field2>  - <dy_field3>  - <dy_field4>
                  - <dy_field5>  - <dy_field6>  - <dy_field7>  - <dy_field8>.
    <dyn_field2> = <dyn_field2>  - <dn_field1>  - <dn_field2>  - <dn_field3>  - <dn_field4>
                  - <dn_field5>  - <dn_field6>  - <dn_field7>  - <dn_field8>.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.

*日常维护费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep8
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5101010001‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
ENDIF.

    SORT lt_coep8 BY objnr perio.
        LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep8 INTO ls_coep8 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep8-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep8-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep8-perio = 1.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2 OR ls_coep8-perio = 3.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2 OR ls_coep8-perio = 3 OR ls_coep8-perio = 4.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2 OR ls_coep8-perio = 3 OR ls_coep8-perio = 4 OR ls_coep8-perio = 5.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2 OR ls_coep8-perio = 3 OR ls_coep8-perio = 4 OR ls_coep8-perio = 5 OR ls_coep8-perio = 6.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2 OR ls_coep8-perio = 3 OR ls_coep8-perio = 4 OR ls_coep8-perio = 5
              OR ls_coep8-perio = 6 OR ls_coep8-perio = 7.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2 OR ls_coep8-perio = 3 OR ls_coep8-perio = 4 OR ls_coep8-perio = 5
              OR ls_coep8-perio = 6 OR ls_coep8-perio = 7 OR ls_coep8-perio = 8.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2 OR ls_coep8-perio = 3 OR ls_coep8-perio = 4 OR ls_coep8-perio = 5
              OR ls_coep8-perio = 6 OR ls_coep8-perio = 7 OR ls_coep8-perio = 8 OR ls_coep8-perio = 9.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep8-perio = 1 OR ls_coep8-perio = 2 OR ls_coep8-perio = 3 OR ls_coep8-perio = 4 OR ls_coep8-perio = 5
              OR ls_coep8-perio = 6 OR ls_coep8-perio = 7 OR ls_coep8-perio = 8 OR ls_coep8-perio = 9 OR ls_coep8-perio = 10.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep8-perio < 12.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep8-perio < 13.
              ls_month-year = ls_month-year + ls_coep8-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*污泥外运及处置费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coep9
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5001040000‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coep9 BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coep9 INTO ls_coep4 WHERE objnr = ls_aufnr1-objnr.
        IF ls_coep9-perio = p_monat.
          ls_month-month = ls_month-month + ls_coep9-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coep9-perio = 1.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2 OR ls_coep9-perio = 3.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2 OR ls_coep9-perio = 3 OR ls_coep9-perio = 4.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2 OR ls_coep9-perio = 3 OR ls_coep9-perio = 4 OR ls_coep9-perio = 5.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2 OR ls_coep9-perio = 3 OR ls_coep9-perio = 4 OR ls_coep9-perio = 5 OR ls_coep9-perio = 6.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2 OR ls_coep9-perio = 3 OR ls_coep9-perio = 4 OR ls_coep9-perio = 5
              OR ls_coep9-perio = 6 OR ls_coep9-perio = 7.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2 OR ls_coep9-perio = 3 OR ls_coep9-perio = 4 OR ls_coep9-perio = 5
              OR ls_coep9-perio = 6 OR ls_coep9-perio = 7 OR ls_coep9-perio = 8.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2 OR ls_coep9-perio = 3 OR ls_coep9-perio = 4 OR ls_coep9-perio = 5
              OR ls_coep9-perio = 6 OR ls_coep9-perio = 7 OR ls_coep9-perio = 8 OR ls_coep9-perio = 9.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coep9-perio = 1 OR ls_coep9-perio = 2 OR ls_coep9-perio = 3 OR ls_coep9-perio = 4 OR ls_coep9-perio = 5
              OR ls_coep9-perio = 6 OR ls_coep9-perio = 7 OR ls_coep9-perio = 8 OR ls_coep9-perio = 9 OR ls_coep9-perio = 10.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coep9-perio < 12.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coep9-perio < 13.
              ls_month-year = ls_month-year + ls_coep9-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*化验费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coepa
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5101020001‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coepa BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coepa INTO ls_coepa WHERE objnr = ls_aufnr1-objnr.
        IF ls_coepa-perio = p_monat.
          ls_month-month = ls_month-month + ls_coepa-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coepa-perio = 1.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2 OR ls_coepa-perio = 3.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2 OR ls_coepa-perio = 3 OR ls_coepa-perio = 4.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2 OR ls_coepa-perio = 3 OR ls_coepa-perio = 4 OR ls_coepa-perio = 5.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2 OR ls_coepa-perio = 3 OR ls_coepa-perio = 4 OR ls_coepa-perio = 5 OR ls_coepa-perio = 6.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2 OR ls_coepa-perio = 3 OR ls_coepa-perio = 4 OR ls_coepa-perio = 5
              OR ls_coepa-perio = 6 OR ls_coepa-perio = 7.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2 OR ls_coepa-perio = 3 OR ls_coepa-perio = 4 OR ls_coepa-perio = 5
              OR ls_coepa-perio = 6 OR ls_coepa-perio = 7 OR ls_coepa-perio = 8.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2 OR ls_coepa-perio = 3 OR ls_coepa-perio = 4 OR ls_coepa-perio = 5
              OR ls_coepa-perio = 6 OR ls_coepa-perio = 7 OR ls_coepa-perio = 8 OR ls_coepa-perio = 9.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coepa-perio = 1 OR ls_coepa-perio = 2 OR ls_coepa-perio = 3 OR ls_coepa-perio = 4 OR ls_coepa-perio = 5
              OR ls_coepa-perio = 6 OR ls_coepa-perio = 7 OR ls_coepa-perio = 8 OR ls_coepa-perio = 9 OR ls_coepa-perio = 10.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coepa-perio < 12.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coepa-perio < 13.
              ls_month-year = ls_month-year + ls_coepa-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.
*监測费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coepb
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘5101050000‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coepb BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coepb INTO ls_coepb WHERE objnr = ls_aufnr1-objnr.
        IF ls_coepb-perio = p_monat.
          ls_month-month = ls_month-month + ls_coepb-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coepb-perio = 1.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2 OR ls_coepb-perio = 3.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2 OR ls_coepb-perio = 3 OR ls_coepb-perio = 4.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2 OR ls_coepb-perio = 3 OR ls_coepb-perio = 4 OR ls_coepb-perio = 5.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2 OR ls_coepb-perio = 3 OR ls_coepb-perio = 4 OR ls_coepb-perio = 5 OR ls_coepb-perio = 6.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2 OR ls_coepb-perio = 3 OR ls_coepb-perio = 4 OR ls_coepb-perio = 5
              OR ls_coepb-perio = 6 OR ls_coepb-perio = 7.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2 OR ls_coepb-perio = 3 OR ls_coepb-perio = 4 OR ls_coepb-perio = 5
              OR ls_coepb-perio = 6 OR ls_coepb-perio = 7 OR ls_coepb-perio = 8.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2 OR ls_coepb-perio = 3 OR ls_coepb-perio = 4 OR ls_coepb-perio = 5
              OR ls_coepb-perio = 6 OR ls_coepb-perio = 7 OR ls_coepb-perio = 8 OR ls_coepb-perio = 9.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coepb-perio = 1 OR ls_coepb-perio = 2 OR ls_coepb-perio = 3 OR ls_coepb-perio = 4 OR ls_coepb-perio = 5
              OR ls_coepb-perio = 6 OR ls_coepb-perio = 7 OR ls_coepb-perio = 8 OR ls_coepb-perio = 9 OR ls_coepb-perio = 10.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coepb-perio < 12.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coepb-perio < 13.
              ls_month-year = ls_month-year + ls_coepb-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*管理费小计
  CLEAR: lt_setleaf, lr_beknz.
  SELECT valsign
         valoption
         valfrom
         valto
    FROM setleaf
    INTO CORRESPONDING FIELDS OF TABLE lt_setleaf
   WHERE setname = ‘ZCO002‘.
  LOOP AT lt_setleaf INTO ls_setleaf.
    ls_kstar-sign = ls_setleaf-valsign.
    ls_kstar-option = ls_setleaf-valoption.
    ls_kstar-low = ls_setleaf-valfrom.
    ls_kstar-high = ls_setleaf-valto.
    APPEND ls_kstar TO lr_kstar.
    CLEAR: ls_kstar,ls_setleaf.
  ENDLOOP.
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
  INTO CORRESPONDING FIELDS OF TABLE lt_coepc
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
   AND perio = p_monat
   AND gjahr = p_gjahr
   AND kstar IN lr_kstar[]
   AND vrgng = ‘COIN‘
   AND beknz IN lr_beknz[]
   AND bukrs IN s_bukrs.
ENDIF.
    SORT lt_coepc BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coepc INTO ls_coepc WHERE objnr = ls_aufnr1-objnr.
        IF ls_coepc-perio = p_monat.
          ls_month-month = ls_month-month + ls_coepc-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coepc-perio = 1.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2 OR ls_coepc-perio = 3.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2 OR ls_coepc-perio = 3 OR ls_coepc-perio = 4.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2 OR ls_coepc-perio = 3 OR ls_coepc-perio = 4 OR ls_coepc-perio = 5.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2 OR ls_coepc-perio = 3 OR ls_coepc-perio = 4 OR ls_coepc-perio = 5 OR ls_coepc-perio = 6.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2 OR ls_coepc-perio = 3 OR ls_coepc-perio = 4 OR ls_coepc-perio = 5
              OR ls_coepc-perio = 6 OR ls_coepc-perio = 7.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2 OR ls_coepc-perio = 3 OR ls_coepc-perio = 4 OR ls_coepc-perio = 5
              OR ls_coepc-perio = 6 OR ls_coepc-perio = 7 OR ls_coepc-perio = 8.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2 OR ls_coepc-perio = 3 OR ls_coepc-perio = 4 OR ls_coepc-perio = 5
              OR ls_coepc-perio = 6 OR ls_coepc-perio = 7 OR ls_coepc-perio = 8 OR ls_coepc-perio = 9.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coepc-perio = 1 OR ls_coepc-perio = 2 OR ls_coepc-perio = 3 OR ls_coepc-perio = 4 OR ls_coepc-perio = 5
              OR ls_coepc-perio = 6 OR ls_coepc-perio = 7 OR ls_coepc-perio = 8 OR ls_coepc-perio = 9 OR ls_coepc-perio = 10.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coepc-perio < 12.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coepc-perio < 13.
              ls_month-year = ls_month-year + ls_coepc-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*办公费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coepd
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘6601210001‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coepd BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coepd INTO ls_coepd WHERE objnr = ls_aufnr1-objnr.
        IF ls_coepd-perio = p_monat.
          ls_month-month = ls_month-month + ls_coepd-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coepd-perio = 1.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2 OR ls_coepd-perio = 3.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2 OR ls_coepd-perio = 3 OR ls_coepd-perio = 4.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2 OR ls_coepd-perio = 3 OR ls_coepd-perio = 4 OR ls_coepd-perio = 5.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2 OR ls_coepd-perio = 3 OR ls_coepd-perio = 4 OR ls_coepd-perio = 5 OR ls_coepd-perio = 6.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2 OR ls_coepd-perio = 3 OR ls_coepd-perio = 4 OR ls_coepd-perio = 5
              OR ls_coepd-perio = 6 OR ls_coepd-perio = 7.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2 OR ls_coepd-perio = 3 OR ls_coepd-perio = 4 OR ls_coepd-perio = 5
              OR ls_coepd-perio = 6 OR ls_coepd-perio = 7 OR ls_coepd-perio = 8.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2 OR ls_coepd-perio = 3 OR ls_coepd-perio = 4 OR ls_coepd-perio = 5
              OR ls_coepd-perio = 6 OR ls_coepd-perio = 7 OR ls_coepd-perio = 8 OR ls_coepd-perio = 9.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coepd-perio = 1 OR ls_coepd-perio = 2 OR ls_coepd-perio = 3 OR ls_coepd-perio = 4 OR ls_coepd-perio = 5
              OR ls_coepd-perio = 6 OR ls_coepd-perio = 7 OR ls_coepd-perio = 8 OR ls_coepd-perio = 9 OR ls_coepd-perio = 10.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coepd-perio < 12.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coepd-perio < 13.
              ls_month-year = ls_month-year + ls_coepd-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*差旅费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coepe
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘6601200000‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coepe BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coepe INTO ls_coepe WHERE objnr = ls_aufnr1-objnr.
        IF ls_coepe-perio = p_monat.
          ls_month-month = ls_month-month + ls_coepe-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coepe-perio = 1.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2 OR ls_coepe-perio = 3.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2 OR ls_coepe-perio = 3 OR ls_coepe-perio = 4.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2 OR ls_coepe-perio = 3 OR ls_coepe-perio = 4 OR ls_coepe-perio = 5.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2 OR ls_coepe-perio = 3 OR ls_coepe-perio = 4 OR ls_coepe-perio = 5 OR ls_coepe-perio = 6.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2 OR ls_coepe-perio = 3 OR ls_coepe-perio = 4 OR ls_coepe-perio = 5
              OR ls_coepe-perio = 6 OR ls_coepe-perio = 7.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2 OR ls_coepe-perio = 3 OR ls_coepe-perio = 4 OR ls_coepe-perio = 5
              OR ls_coepe-perio = 6 OR ls_coepe-perio = 7 OR ls_coepe-perio = 8.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2 OR ls_coepe-perio = 3 OR ls_coepe-perio = 4 OR ls_coepe-perio = 5
              OR ls_coepe-perio = 6 OR ls_coepe-perio = 7 OR ls_coepe-perio = 8 OR ls_coepe-perio = 9.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coepe-perio = 1 OR ls_coepe-perio = 2 OR ls_coepe-perio = 3 OR ls_coepe-perio = 4 OR ls_coepe-perio = 5
              OR ls_coepe-perio = 6 OR ls_coepe-perio = 7 OR ls_coepe-perio = 8 OR ls_coepe-perio = 9 OR ls_coepe-perio = 10.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coepe-perio < 12.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coepe-perio < 13.
              ls_month-year = ls_month-year + ls_coepe-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*通讯费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coepf
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘6601240000‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coepf BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coepf INTO ls_coepf WHERE objnr = ls_aufnr1-objnr.
        IF ls_coepf-perio = p_monat.
          ls_month-month = ls_month-month + ls_coepf-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coepf-perio = 1.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2 OR ls_coepf-perio = 3.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2 OR ls_coepf-perio = 3 OR ls_coepf-perio = 4.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2 OR ls_coepf-perio = 3 OR ls_coepf-perio = 4 OR ls_coepf-perio = 5.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2 OR ls_coepf-perio = 3 OR ls_coepf-perio = 4 OR ls_coepf-perio = 5 OR ls_coepf-perio = 6.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2 OR ls_coepf-perio = 3 OR ls_coepf-perio = 4 OR ls_coepf-perio = 5
              OR ls_coepf-perio = 6 OR ls_coepf-perio = 7.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2 OR ls_coepf-perio = 3 OR ls_coepf-perio = 4 OR ls_coepf-perio = 5
              OR ls_coepf-perio = 6 OR ls_coepf-perio = 7 OR ls_coepf-perio = 8.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2 OR ls_coepf-perio = 3 OR ls_coepf-perio = 4 OR ls_coepf-perio = 5
              OR ls_coepf-perio = 6 OR ls_coepf-perio = 7 OR ls_coepf-perio = 8 OR ls_coepf-perio = 9.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coepf-perio = 1 OR ls_coepf-perio = 2 OR ls_coepf-perio = 3 OR ls_coepf-perio = 4 OR ls_coepf-perio = 5
              OR ls_coepf-perio = 6 OR ls_coepf-perio = 7 OR ls_coepf-perio = 8 OR ls_coepf-perio = 9 OR ls_coepf-perio = 10.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coepf-perio < 12.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coepf-perio < 13.
              ls_month-year = ls_month-year + ls_coepf-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*车辆使用费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coepg
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘6601280000‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coepg BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coepg INTO ls_coepg WHERE objnr = ls_aufnr1-objnr.
        IF ls_coepg-perio = p_monat.
          ls_month-month = ls_month-month + ls_coepg-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coepg-perio = 1.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2 OR ls_coepg-perio = 3.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2 OR ls_coepg-perio = 3 OR ls_coepg-perio = 4.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2 OR ls_coepg-perio = 3 OR ls_coepg-perio = 4 OR ls_coepg-perio = 5.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2 OR ls_coepg-perio = 3 OR ls_coepg-perio = 4 OR ls_coepg-perio = 5 OR ls_coepg-perio = 6.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2 OR ls_coepg-perio = 3 OR ls_coepg-perio = 4 OR ls_coepg-perio = 5
              OR ls_coepg-perio = 6 OR ls_coepg-perio = 7.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2 OR ls_coepg-perio = 3 OR ls_coepg-perio = 4 OR ls_coepg-perio = 5
              OR ls_coepg-perio = 6 OR ls_coepg-perio = 7 OR ls_coepg-perio = 8.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2 OR ls_coepg-perio = 3 OR ls_coepg-perio = 4 OR ls_coepg-perio = 5
              OR ls_coepg-perio = 6 OR ls_coepg-perio = 7 OR ls_coepg-perio = 8 OR ls_coepg-perio = 9.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coepg-perio = 1 OR ls_coepg-perio = 2 OR ls_coepg-perio = 3 OR ls_coepg-perio = 4 OR ls_coepg-perio = 5
              OR ls_coepg-perio = 6 OR ls_coepg-perio = 7 OR ls_coepg-perio = 8 OR ls_coepg-perio = 9 OR ls_coepg-perio = 10.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coepg-perio < 12.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coepg-perio < 13.
              ls_month-year = ls_month-year + ls_coepg-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*劳动保护费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coeph
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘6601560001‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
  ENDIF.

    SORT lt_coeph BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coeph INTO ls_coeph WHERE objnr = ls_aufnr1-objnr.
        IF ls_coeph-perio = p_monat.
          ls_month-month = ls_month-month + ls_coeph-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coeph-perio = 1.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2 OR ls_coeph-perio = 3.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2 OR ls_coeph-perio = 3 OR ls_coeph-perio = 4.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2 OR ls_coeph-perio = 3 OR ls_coeph-perio = 4 OR ls_coeph-perio = 5.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2 OR ls_coeph-perio = 3 OR ls_coeph-perio = 4 OR ls_coeph-perio = 5 OR ls_coeph-perio = 6.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2 OR ls_coeph-perio = 3 OR ls_coeph-perio = 4 OR ls_coeph-perio = 5
              OR ls_coeph-perio = 6 OR ls_coeph-perio = 7.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2 OR ls_coeph-perio = 3 OR ls_coeph-perio = 4 OR ls_coeph-perio = 5
              OR ls_coeph-perio = 6 OR ls_coeph-perio = 7 OR ls_coeph-perio = 8.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2 OR ls_coeph-perio = 3 OR ls_coeph-perio = 4 OR ls_coeph-perio = 5
              OR ls_coeph-perio = 6 OR ls_coeph-perio = 7 OR ls_coeph-perio = 8 OR ls_coeph-perio = 9.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coeph-perio = 1 OR ls_coeph-perio = 2 OR ls_coeph-perio = 3 OR ls_coeph-perio = 4 OR ls_coeph-perio = 5
              OR ls_coeph-perio = 6 OR ls_coeph-perio = 7 OR ls_coeph-perio = 8 OR ls_coeph-perio = 9 OR ls_coeph-perio = 10.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coeph-perio < 12.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coeph-perio < 13.
              ls_month-year = ls_month-year + ls_coeph-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*业务费
IF lt_aufnr1[] IS NOT INITIAL.
  SELECT objnr
         perio
         wogbtr
         beknz
    FROM coep
    INTO CORRESPONDING FIELDS OF TABLE lt_coepi
    FOR ALL ENTRIES IN lt_aufnr1
   WHERE objnr = lt_aufnr1-objnr
     AND perio = p_monat
     AND gjahr = p_gjahr
     AND kstar = ‘6601230000‘
     AND vrgng = ‘COIN‘
     AND beknz IN lr_beknz[]
     AND bukrs IN s_bukrs.
    ENDIF.

    SORT lt_coepi BY objnr perio.
     LOOP AT lt_aufnr1 INTO ls_aufnr1.
      LOOP AT lt_coepi INTO ls_coepi WHERE objnr = ls_aufnr1-objnr.
        IF ls_coepi-perio = p_monat.
          ls_month-month = ls_month-month + ls_coepi-wogbtr.
        ENDIF.
      CASE p_monat.
        WHEN 1.
          IF ls_coepi-perio = 1.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 2.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 3.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2 OR ls_coepi-perio = 3.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 4.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2 OR ls_coepi-perio = 3 OR ls_coepi-perio = 4.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 5.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2 OR ls_coepi-perio = 3 OR ls_coepi-perio = 4 OR ls_coepi-perio = 5.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 6.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2 OR ls_coepi-perio = 3 OR ls_coepi-perio = 4 OR ls_coepi-perio = 5 OR ls_coepi-perio = 6.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 7.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2 OR ls_coepi-perio = 3 OR ls_coepi-perio = 4 OR ls_coepi-perio = 5
              OR ls_coepi-perio = 6 OR ls_coepi-perio = 7.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 8.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2 OR ls_coepi-perio = 3 OR ls_coepi-perio = 4 OR ls_coepi-perio = 5
              OR ls_coepi-perio = 6 OR ls_coepi-perio = 7 OR ls_coepi-perio = 8.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 9.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2 OR ls_coepi-perio = 3 OR ls_coepi-perio = 4 OR ls_coepi-perio = 5
              OR ls_coepi-perio = 6 OR ls_coepi-perio = 7 OR ls_coepi-perio = 8 OR ls_coepi-perio = 9.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 10.
          IF ls_coepi-perio = 1 OR ls_coepi-perio = 2 OR ls_coepi-perio = 3 OR ls_coepi-perio = 4 OR ls_coepi-perio = 5
              OR ls_coepi-perio = 6 OR ls_coepi-perio = 7 OR ls_coepi-perio = 8 OR ls_coepi-perio = 9 OR ls_coepi-perio = 10.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 11.
          IF ls_coepi-perio < 12.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN 12.
          IF ls_coepi-perio < 13.
              ls_month-year = ls_month-year + ls_coepi-wogbtr.
          ENDIF.
        WHEN OTHERS.
      ENDCASE.
      ENDLOOP.
      AT END OF bukrs.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr1-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*其它费用
  READ TABLE <dyn_table> INTO <dyn_wa>  INDEX 59.
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 60.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 61.
  READ TABLE <dyn_table> INTO <dyn_wa3> INDEX 62.
  READ TABLE <dyn_table> INTO <dyn_wa4> INDEX 63.
  READ TABLE <dyn_table> INTO <dyn_wa5> INDEX 64.
  READ TABLE <dyn_table> INTO <dyn_wa6> INDEX 65.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dn_field1>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dy_field2>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa3> TO <dy_field3>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa3> TO <dn_field3>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa4> TO <dy_field4>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa4> TO <dn_field4>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa5> TO <dy_field5>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa5> TO <dn_field5>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa6> TO <dy_field6>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa6> TO <dn_field6>.

      <dyn_field1> = <dyn_field1> - <dy_field1> - <dy_field2> - <dy_field3> - <dy_field4> - <dy_field5> - <dy_field6>.
      <dyn_field2> = <dyn_field2> - <dn_field1> - <dn_field2> - <dn_field3> - <dn_field4> - <dn_field5> - <dn_field6>.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*实际责任成本
  READ TABLE <dyn_table> INTO <dyn_wa>  INDEX 5.
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 9.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 17.
  READ TABLE <dyn_table> INTO <dyn_wa3> INDEX 18.
  READ TABLE <dyn_table> INTO <dyn_wa4> INDEX 55.
  READ TABLE <dyn_table> INTO <dyn_wa5> INDEX 56.
  READ TABLE <dyn_table> INTO <dyn_wa6> INDEX 57.
  READ TABLE <dyn_table> INTO <dyn_wa7> INDEX 58.
  READ TABLE <dyn_table> INTO <dyn_wa8> INDEX 59.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dn_field1>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dy_field2>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa3> TO <dy_field3>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa3> TO <dn_field3>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa4> TO <dy_field4>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa4> TO <dn_field4>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa5> TO <dy_field5>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa5> TO <dn_field5>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa6> TO <dy_field6>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa6> TO <dn_field6>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa7> TO <dy_field7>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa7> TO <dn_field7>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa8> TO <dy_field8>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa8> TO <dn_field8>.
      <dyn_field1> = <dyn_field1> + <dy_field1> + <dy_field2> + <dy_field3> + <dy_field4> + <dy_field5> + <dy_field6> + <dy_field7> + <dy_field8>.
      <dyn_field2> = <dyn_field2> + <dn_field1> + <dn_field2> + <dn_field3> + <dn_field4> + <dn_field5> + <dn_field6> + <dn_field7> + <dn_field8>.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*实际单位责任成本
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 67.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 3.

    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*核定单位责任成本
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*核定责任成本
IF lt_aufnr[] IS NOT INITIAL.
  SELECT objnr
         wtjhr
    FROM bpej
    INTO CORRESPONDING FIELDS OF TABLE lt_bpej
    FOR ALL ENTRIES IN lt_aufnr
   WHERE objnr = lt_aufnr-objnr
     AND gjahr = p_gjahr
     AND wrttp = ‘41‘.
ENDIF.
    CONCATENATE p_gjahr ‘0201‘ INTO lv_begda.
    CALL FUNCTION ‘LAST_DAY_OF_MONTHS‘
      EXPORTING
        day_in            = lv_begda
      IMPORTING
        last_day_of_month = lv_endda.
    CALL FUNCTION ‘HR_99S_INTERVAL_BETWEEN_DATES‘
      EXPORTING
        begda = lv_begda
        endda = lv_endda
      IMPORTING
        days  = lv_fbdays.
  CLEAR: lv_begda,lv_endda,lv_days.
  CONCATENATE p_gjahr ‘0101‘ INTO lv_begda.
  CONCATENATE p_gjahr ‘1231‘ INTO lv_endda.
  CALL FUNCTION ‘HR_99S_INTERVAL_BETWEEN_DATES‘
    EXPORTING
      begda     = lv_begda
      endda     = lv_endda
    IMPORTING
      days      = lv_days.
CLEAR lv_total.
SORT lt_bpej BY objnr.
LOOP AT lt_aufnr INTO ls_aufnr.
  LOOP AT lt_bpej INTO ls_bpej WHERE objnr = ls_aufnr-objnr.
    lv_total = lv_total + ls_bpej-wtjhr.
    CLEAR ls_bpej.
  ENDLOOP.
      AT END OF bukrs.
    lv_day = lv_total / lv_days.
    CLEAR: lv_begda,lv_endda,lv_days.
    CONCATENATE p_gjahr p_monat ‘01‘ INTO lv_begda.
    CALL FUNCTION ‘LAST_DAY_OF_MONTHS‘
      EXPORTING
        day_in            = lv_begda
      IMPORTING
        last_day_of_month = lv_endda.
    CALL FUNCTION ‘HR_99S_INTERVAL_BETWEEN_DATES‘
      EXPORTING
        begda = lv_begda
        endda = lv_endda
      IMPORTING
        days  = lv_days.
    ls_month-month = lv_day * lv_days.
    CASE p_monat.
      WHEN 1.
         ls_month-year = lv_day * 31.
      WHEN 2.
         ls_month-year = lv_day * ( 31 + lv_fbdays ).
      WHEN 3.
         ls_month-year = lv_day * ( 62 + lv_fbdays ).
      WHEN 4.
         ls_month-year = lv_day * ( 92 + lv_fbdays ).
      WHEN 5.
         ls_month-year = lv_day * ( 123 + lv_fbdays ).
      WHEN 6.
         ls_month-year = lv_day * ( 153 + lv_fbdays ).
      WHEN 7.
         ls_month-year = lv_day * ( 184 + lv_fbdays ).
      WHEN 8.
         ls_month-year = lv_day * ( 215 + lv_fbdays ).
      WHEN 9.
         ls_month-year = lv_day * ( 245 + lv_fbdays ).
      WHEN 10.
         ls_month-year = lv_day * ( 276 + lv_fbdays ).
      WHEN 11.
         ls_month-year = lv_day * ( 306 + lv_fbdays ).
      WHEN 12.
         ls_month-year = lv_day * ( 337 + lv_fbdays ).
      WHEN OTHERS.
    ENDCASE.
        READ TABLE gt_comp INTO ls_comp WITH KEY bukrs = ls_aufnr-bukrs.
        ASSIGN COMPONENT ls_comp-bys OF STRUCTURE <dyn_wa> TO <dyn_field1>.
        <dyn_field1> = ls_month-month.
        ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.
        <dyn_field2> = ls_month-year.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
        CLEAR: ls_month.
      ENDAT.
      CLEAR ls_aufnr1.
ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: lv_hjbys,lv_hjbyljs,<dyn_wa>.

*改动核定单位责任成本
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 70.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 2.

    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dn_field1> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 69.
  CLEAR: lv_month,<dyn_wa>.  CLEAR: lv_hjbys,lv_hjbyljs.

*责任成本结(+)超(-)
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 70.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dn_field1>.

      ASSIGN COMPONENT ls_comp-bys   OF STRUCTURE <dyn_wa2> TO <dy_field2>.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.

      <dyn_field1> = <dy_field1> - <dy_field2>.
      <dyn_field2> = <dn_field1> - <dn_field2>.
        lv_hjbys = lv_hjbys + <dyn_field1>.
        lv_hjbyljs = lv_hjbyljs + <dyn_field2>.
    ENDLOOP.
  ASSIGN COMPONENT ‘HJBYS‘ OF STRUCTURE <dyn_wa> TO <dyn_field3>.
  <dyn_field3> = lv_hjbys.
  ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa> TO <dyn_field4>.
  <dyn_field4> = lv_hjbyljs.
  APPEND <dyn_wa> TO <dyn_table>.
  CLEAR: <dyn_wa>,lv_month.  CLEAR: lv_hjbys,lv_hjbyljs.
*改动人工费小计的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 5.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 5 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.

*电费小计的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 9.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 9 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.

*水费的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 17.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 17 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.
*药剂费小计的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 18.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 18 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.

*日常维护费的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 55.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 55 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.

*污泥外运及处置费的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 56.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 56 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.

*化验费的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 57.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 57 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.
*监測费的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 58.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 58 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.

*管理费的比例
  READ TABLE <dyn_table> INTO <dyn_wa1> INDEX 59.
  READ TABLE <dyn_table> INTO <dyn_wa2> INDEX 67.
    LOOP AT gt_comp INTO ls_comp.
      ASSIGN COMPONENT ls_comp-bl   OF STRUCTURE <dyn_wa> TO <dyn_field1>.
      ASSIGN COMPONENT ‘HJBL‘   OF STRUCTURE <dyn_wa> TO <dyn_field2>.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa1> TO <dy_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa1> TO <dy_field2>.
      CONDENSE <dy_field2> NO-GAPS.

      ASSIGN COMPONENT ‘HJBYLJS‘ OF STRUCTURE <dyn_wa2> TO <dn_field1>.
      CONDENSE <dy_field2> NO-GAPS.
      ASSIGN COMPONENT ls_comp-byljs OF STRUCTURE <dyn_wa2> TO <dn_field2>.
      CONDENSE <dn_field2> NO-GAPS.

      IF <dn_field2> IS NOT INITIAL AND <dn_field2> <> ‘0.000‘.
        lv_danjia = <dy_field2> / <dn_field2>.
        <dyn_field1> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
      IF <dn_field1> IS NOT INITIAL AND <dn_field1> <> ‘0.000‘.
        lv_danjia = <dy_field1> / <dn_field1>.
        <dyn_field2> = lv_danjia.
        CLEAR lv_danjia.
      ENDIF.
  MODIFY <dyn_table> FROM <dyn_wa> INDEX 59 TRANSPORTING (ls_comp-bl) (‘HJBL‘).
  CLEAR: <dyn_wa>,lv_month,lv_hjbys,lv_hjbyljs.
    ENDLOOP.
ENDIF.
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_DOWN_EXCEL
*&---------------------------------------------------------------------*
*       下载Excel
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_down_excel .

  DATA: lv_filename TYPE wwwdatatab-objid.

  lv_filename = ‘ZCO_RP_11‘.
  SELECT COUNT(*)
    FROM wwwdata
    WHERE relid = ‘MI‘
    AND objid = lv_filename.
  IF sy-subrc <> 0.
    MESSAGE  ‘所选XLS模板不存在。请又一次选择XLS模板‘ TYPE ‘E‘.
    EXIT.
  ENDIF.

  PERFORM frm_process_indcator USING ‘数据批量下载中 请等待 ... ... ‘ 0 .
  PERFORM frm_handle_export USING lv_filename l_filename.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_FRM_CREATE_STRUCTURE
*&---------------------------------------------------------------------*
*       创建动态结构
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_frm_create_structure .

  DATA: ls_bukrs TYPE gty_s_bukrs.
  DATA: ls_comp  TYPE gty_s_comp.
  DATA: ls_fieldcat TYPE lvc_s_fcat.
  DATA: lv_index TYPE char2.

*获取查询单位
  SELECT bukrs
         butxt
    FROM t001
    INTO CORRESPONDING FIELDS OF TABLE gt_bukrs
   WHERE bukrs IN s_bukrs[].
    lv_index = lines( gt_bukrs ).
  SORT gt_bukrs BY bukrs.
  ls_fieldcat-fieldname = ‘HJBYS‘.
  ls_fieldcat-scrtext_l = ‘合计本月数‘.
  ls_fieldcat-inttype = ‘C‘.
  ls_fieldcat-intlen = 15.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname = ‘HJBYLJS‘.
  ls_fieldcat-scrtext_l = ‘合计本年累计数‘.
  ls_fieldcat-inttype = ‘C‘.
  ls_fieldcat-intlen = 15.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname = ‘HJBL‘.
  ls_fieldcat-scrtext_l = ‘合计比例‘.
  ls_fieldcat-inttype = ‘C‘.
  ls_fieldcat-intlen = 15.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR ls_fieldcat.

  LOOP AT gt_bukrs INTO ls_bukrs.

    lv_index = lv_index + 1.
    CONDENSE lv_index NO-GAPS.
    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT‘
      EXPORTING
        input  = lv_index
      IMPORTING
        output = lv_index.
    ls_comp-bukrs = ls_bukrs-bukrs.
    CONCATENATE ‘BYS‘ lv_index INTO ls_fieldcat-fieldname.
    ls_comp-bys = ls_fieldcat-fieldname.
    ls_fieldcat-scrtext_l = ‘本月数‘.
    ls_fieldcat-inttype = ‘C‘.
    ls_fieldcat-intlen = 15.
    APPEND ls_fieldcat TO gt_fieldcat.
    CLEAR ls_fieldcat.

    CONCATENATE ‘BYLJS‘ lv_index INTO ls_fieldcat-fieldname.
    ls_comp-byljs = ls_fieldcat-fieldname.
    ls_fieldcat-scrtext_l = ‘本年累计数‘.
    ls_fieldcat-inttype = ‘C‘.
    ls_fieldcat-intlen = 15.
    APPEND ls_fieldcat TO gt_fieldcat.
    CLEAR ls_fieldcat.

    CONCATENATE ‘BL‘ lv_index INTO ls_fieldcat-fieldname.
    ls_comp-bl = ls_fieldcat-fieldname.
    ls_fieldcat-scrtext_l = ‘比例‘.
    ls_fieldcat-inttype = ‘C‘.
    ls_fieldcat-intlen = 15.
    APPEND ls_fieldcat TO gt_fieldcat.
    CLEAR ls_fieldcat.

    APPEND ls_comp TO gt_comp.
    CLEAR ls_comp.

  ENDLOOP.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_F4_FOR_AUFNR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_f4_for_aufnr .

  TYPES: BEGIN OF lty_s_aufnr,
           aufnr TYPE coas-aufnr,
         END OF lty_s_aufnr.
  DATA: lt_aufnr  TYPE STANDARD TABLE OF lty_s_aufnr.
*  DATA: lt_return TYPE STANDARD TABLE OF ddshretval.
*  DATA: ls_return TYPE ddshretval.
*  DATA: lt_dynpread TYPE STANDARD TABLE OF dynpread.
*  DATA: ls_dynpread TYPE dynpread.
*
*  ls_dynpread-fieldname = ‘S_BUKRS‘.
*  APPEND ls_dynpread TO lt_dynpread.
*  CLEAR: ls_dynpread.
*  CALL FUNCTION ‘DYNP_VALUES_READ‘
*    EXPORTING
*      dyname               = sy-repid
*      dynumb               = sy-dynnr
*    TABLES
*      dynpfields           = lt_dynpread
*    EXCEPTIONS
*      invalid_abapworkarea = 1
*      invalid_dynprofield  = 2
*      invalid_dynproname   = 3
*      invalid_dynpronummer = 4
*      invalid_request      = 5
*      no_fielddescription  = 6
*      invalid_parameter    = 7
*      undefind_error       = 8
*      double_conversion    = 9
*      stepl_not_found      = 10
*      OTHERS               = 11.
*  IF sy-subrc = 0.
*    READ TABLE lt_dynpread INTO ls_dynpread WITH KEY fieldname = ‘S_BUKRS‘.
*    S_bukrs = ls_dynpread-fieldvalue.
*  ENDIF.
*
*  IF S_bukrs[] IS INITIAL.
*    MESSAGE ‘请先输入公司代码!

‘ TYPE ‘S‘ DISPLAY LIKE ‘E‘.
*    EXIT.
*  ENDIF.

  SELECT aufnr
    INTO CORRESPONDING FIELDS OF TABLE lt_aufnr
    FROM coas
   WHERE auart = ‘K002‘ AND bukrs IN s_bukrs .

*调用帮助函数
  CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST‘
    EXPORTING
      retfield        = ‘AUFNR‘
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = ‘S_AUFNR‘
      value_org       = ‘S‘
      multiple_choice = ‘‘
    TABLES
      value_tab       = lt_aufnr
*      return_tab      = lt_return
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.
*  IF sy-subrc = 0.
*    READ TABLE lt_return INTO ls_return INDEX 1.
*    p_aufnr = ls_return-fieldval.
*  ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_PROCESS_INDCATOR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->TEXT       text
*      -->PERCENTAGE text
*----------------------------------------------------------------------*
FORM frm_process_indcator USING text percentage.

  CALL FUNCTION ‘SAPGUI_PROGRESS_INDICATOR‘
    EXPORTING
      percentage = percentage
      text       = text.

ENDFORM.                    " FRM_PROCESS_INDCATOR

*&---------------------------------------------------------------------*
*&      Form  FRM_HANDLE_EXPORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_FILENAME  text
*      -->L_FILENAME  text
*----------------------------------------------------------------------*
FORM frm_handle_export  USING   p_filename l_filename.

  DATA: l_path     TYPE string,
        l_fullpath TYPE string.

  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      default_extension = ‘XLS‘
      default_file_name = l_filename
    CHANGING
      filename          = l_filename
      path              = l_path
      fullpath          = l_fullpath
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  IF l_path IS NOT INITIAL AND l_fullpath IS NOT INITIAL.
    PERFORM frm_create_excel USING p_filename l_fullpath.
  ELSE.
    MESSAGE ‘请选择路径保存!

‘ TYPE ‘I‘ DISPLAY LIKE ‘E‘.
    EXIT.
  ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_CREATE_EXCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->L_PATTERN  text
*      -->L_FULLPATH  text
*----------------------------------------------------------------------*
FORM frm_create_excel  USING    l_pattern l_fullpath.

  DATA: lv_x1 TYPE p,
        lv_x2 TYPE p,
        lv_y1 TYPE p,
        lv_y2 TYPE p.
  DATA: lv_name TYPE char20.
  DATA: lv_bold TYPE p.
  DATA: lv_size TYPE char2.
  DATA: lv_title TYPE string.
  DATA: lv_no    TYPE i.
  DATA: lv_index TYPE char2.
  DATA: lv_col1  TYPE i VALUE 6.
  DATA: lv_col2  TYPE i.
  DATA: lv_row   TYPE i.
  DATA: lv_month TYPE char5.
  DATA: l_name LIKE wwwdatatab,
        l_mime LIKE w3mime OCCURS 10.
  DATA: ls_bukrs TYPE gty_s_bukrs.
  l_name-relid = ‘MI‘.
  l_name-objid = l_pattern.
  l_name-text  = sy-title.

  DATA: ls_fieldcat TYPE lvc_s_fcat.

  CALL FUNCTION ‘WWWDATA_IMPORT‘
    EXPORTING
      key               = l_name
    TABLES
      mime              = l_mime
    EXCEPTIONS
      wrong_object_type = 1
      import_error      = 2
      OTHERS            = 3.

  CALL FUNCTION ‘GUI_DOWNLOAD‘
    EXPORTING
      filename = l_fullpath
      filetype = ‘BIN‘
    TABLES
      data_tab = l_mime.

  IF l_fullpath IS NOT INITIAL.
*创建Excel
    CREATE OBJECT g_excel ‘EXCEL.APPLICATION‘.
    CALL METHOD OF g_excel ‘Workbooks‘ = g_books.

*新建或打开工作簿
    SET PROPERTY OF g_excel ‘Visible‘ = 0."1/0 是否显示EXCEL
    CALL METHOD OF g_books ‘Open‘ = g_book
    EXPORTING
    #1 = l_fullpath.
  ENDIF.

  CALL METHOD OF g_excel ‘Sheets‘ = g_sheet
    EXPORTING
    #1 = 1.
  CALL METHOD OF g_sheet ‘Select‘ .
  CALL METHOD OF g_sheet ‘Activate‘. "sheet 激活

  SET PROPERTY OF g_sheet ‘NAME‘ = ‘责任成本汇总表‘. "设定sheet名称

*标题
  CLEAR lv_title.
  lv_title = ‘责任成本汇总表‘.
  PERFORM frm_fill_cell USING 1 1 lv_title.
  lv_col2 = lines( gt_bukrs ) * 3 + 6.
  PERFORM frm_merge_cell USING 1 1 1 lv_col2.

*表头
  LOOP AT gt_bukrs INTO ls_bukrs.
    lv_col1 = lv_col1 + 1.
    PERFORM frm_fill_cell USING 2 lv_col1 ls_bukrs-butxt.
    lv_col2 = lv_col1 + 2.
    PERFORM frm_merge_cell USING 2 lv_col1 2 lv_col2.
    lv_col1 = lv_col2.
  ENDLOOP.
  CLEAR:lv_col1,lv_col2.
  lv_col1 = 6.
  LOOP AT gt_bukrs INTO ls_bukrs.
    lv_col1 = lv_col1 + 1.
    PERFORM frm_fill_cell USING 3 lv_col1 ‘本月数‘.
    lv_col1 = lv_col1 + 1.
    PERFORM frm_fill_cell USING 3 lv_col1 ‘本年累计数‘.
    lv_col1 = lv_col1 + 1.
    PERFORM frm_fill_cell USING 3 lv_col1 ‘比例‘.
  ENDLOOP.

  lv_row = 4.
  LOOP AT <dyn_table> ASSIGNING <dyn_wa>.
    CLEAR lv_col1.
    lv_col1 = 4.
    LOOP AT gt_fieldcat INTO ls_fieldcat.
      ASSIGN COMPONENT ls_fieldcat-fieldname OF STRUCTURE <dyn_wa> TO <dyn_field>.
      PERFORM frm_fill_cell USING lv_row lv_col1 <dyn_field>.
      lv_col1 = lv_col1 + 1.
    ENDLOOP.
    lv_row = lv_row + 1.
  ENDLOOP.

  "保存excel数据
  PERFORM frm_save_excel.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_FILL_CELL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_I      text
*      -->PV_J      text
*      -->PV_VALUE  text
*----------------------------------------------------------------------*
FORM frm_fill_cell  USING    pv_i
                             pv_j
                             pv_value.

  CALL METHOD OF g_excel ‘Cells‘ = g_cells
  EXPORTING
    #1 = pv_i
    #2 = pv_j.
  SET PROPERTY OF g_cells ‘Value‘ = pv_value .

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_MERGE_CELL
*&---------------------------------------------------------------------*
*       合并excel单元格
*----------------------------------------------------------------------*
*      -->PV_X1  text
*      -->PV_Y1  text
*      -->PV_X2  text
*      -->PV_Y2  text
*----------------------------------------------------------------------*
FORM frm_merge_cell  USING    pv_x1
                              pv_y1
                              pv_x2
                              pv_y2.

*--Selecting cell area to be merged.
  CALL METHOD OF g_excel ‘Cells‘ = g_cells1
  EXPORTING
  #1 = pv_x1
  #2 = pv_y1.
  CALL METHOD OF g_excel ‘Cells‘ = g_cells2
  EXPORTING
  #1 = pv_x2
  #2 = pv_y2.
  CALL METHOD OF g_excel ‘Range‘ = g_cells
  EXPORTING
  #1 = g_cells1
  #2 = g_cells2.
  CALL METHOD OF g_cells ‘Select‘.
*--Merging
  CALL METHOD OF g_cells ‘Merge‘ .

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_SAVE_EXCEL
*&---------------------------------------------------------------------*
*       保存excel数据
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_save_excel .

  CALL METHOD OF g_book ‘SAVE‘.
  CALL METHOD OF g_book ‘CLOSE‘.
  CALL METHOD OF g_excel ‘QUIT‘.

  FREE OBJECT g_sheet.
  FREE OBJECT g_book.
  FREE OBJECT g_excel.

ENDFORM.
时间: 2024-10-10 09:50:35

责任成本汇总表的相关文章

用友u8数据库表结构

用友数据库表名参照表1 Accessaries 成套件表2 AccInformation 帐套参数表3 AdjustPVouch4 AdjustPVouchs5 Ap_AlarmSet 单位报警分类设置表6 Ap_BillAge 帐龄区间表7 Ap_Cancel 核销情况表8 Ap_CancelNo 生成自动序号9 Ap_CloseBill 收付款结算表10 Ap_CtrlCode 控制科目设置表11 Ap_Detail 应收/付明细帐12 Ap_DigSet13 AP_DispSet 查询显示

公证在不动产登记中的作用及责任

据公证云报道:不动产是老百姓最为重要的物质财富,涉不动产相关权益的保护至关重要.长期以来,我国公证行业配合不动产登记机关工作,承担不动产登记前的前置审查责任,在不动产流转安全.不动产权利保护方面发挥了重要作用.<不动产登记条例>将于今年6月出台的消息一经公布即引起社会上的强烈反响.3月17日,在中法不动产登记与公证研讨会上,与会代表一致认为,分散在多个部门的不动产登记职责将整合到一个部门承担,国土资源部负责指导监督全国土地.房屋.草原.林地.海域等不动产统一登记职责.这一变革,对于公证进一步介

《梦断代码》读后感 - 驱动,责任,交流,远虑

这三篇读后感原来发布在我自己申请的域名 yishan.cc 上面,后来这个域名被墙了. (原文写于2008年12月) 几个星期前,我给<现代软件工程>课的每一个团队都发了一本 <Dreaming In Code>的中文版 <梦断代码>,要求写读后感.这本书讲了这样的故事:一群很有经验的代码牛人在先进软件开发模式的指导下,没有资金压力,在更多大牛的带领下,原计划用一到两年的时间开发出一个备受期待的个人信息管理软件(PIM),后来花了七年时间才完成这一创举,但是已经无人喝彩

房地产成本管理系统

由于政府行为日益规范.市场竞争加剧,加强成本控制管理成了房地产企业竞争力.要加强房地产成本管理,必须建立起房地产成本管理系统. 房地产成本管理系统的流程与制度体系包括目标成本管理体系.动态成本管理体系.成本后评估体系,房地产成本管理系统分别从事前.事中.事后反馈以及责任与激励机制方面进行管理.从管理的层次而言,建立起基本的成本管理流程是最基础的管理工作,如图所示. 一.房地产目标成本管理体系 房地产企业很难像工业企业那样把成本定额做得很细,但是房地产工程尽可能实现成本管理要实现主动掌控,摆脱被动

立项前的成本算还是不算?

今天Q群有朋友提到这个话题,以下是提问原文: "目前公司的关于项目立项的制度是只有立项评审通过后,才会在项目管理的系统上创建这个项目,那么现在的问题是,立项前该项目投入的人力及工作量是没有办法收集和统计的.我个人的建议是先在项目管理系统上创建项目信息,这样立项前的投入也可以收集和统计到.但是据说涉及到项目管理的一些问题,所以不被采纳.那么关于项目立项前的投入的人力及工作量,如何管理各位有没有什么好的建议么?" 各位朋友给出了精彩的建议!后来我追问了几个问题,了解到更多情况: 拒绝这个建

任正非:华为目前处于踌躇满志阶段,如不正确对待可能崩溃(自律永远是最低成本,提高精神文明促进使命感、责任感),内附华为公司结构图

集微网 5月12日报道 今日,华为官方社区论坛放出任正非在道德遵从委员会第二次代表大会的讲话稿. 很多人或许对华为道德遵从委员会还不了解,资料显示,这是华为集团职能平台内的一个部门.据悉,道德遵从委员会主要职能就是引导和规范华为员工从语言.习俗.宗教.乃至于生活习惯等方面主动适应和融入所在国家或地区.目前原华为西安研究所所长周代琪,为首席道德遵从官.道德遵从委员会主任. 任正非表示,道德遵从委员会不是一个政治组织,无论在国内.国外,都不要去过问政治.我们是理工科出身,不懂政治,不要从互联网听来一

工资是用来支付给责任的,责任越大,工资越高。 涨工资,是因为承担了更大的责任。

听说一段时间不加薪,人就会开始思考起和工资有关的问题.消费水平又提升了,能力也进步了,经验也更多了,怎么还没涨工资呢? 近两年,有了点余钱就开始考虑起投资来,比如:投资股票首先需要判断的就是关于公司价值和价格的关系.回到个人身上,似乎工资也就是个人价值在市场上的一个价格.那我们的工资是如何被定义或确定的? 因为我的程序员职业背景,下面就以这个职业为例来分析下这个问题. 表象与实质 工资的高低给我们的感觉似乎和你的技能.经验呈一个正比关系.毕竟每次找工作面试的时候,考察的都是候选人的技能.经验相关

项目管理(七)- 项目利益相关者责任

     我们就要开始识别项目的利益相关者了-因为项目团队也是利益相关者之一 ,看下面介绍 现代项目管理的核心目标是让项目的利益相关者满意,为利益相关者创造价值.同时,项目的成功不仅仅是项目经理或项目组的责任,也是所有项目利益相关者共同努力的结果. 项目管理的很重要的一项工作就是在努力使项目利益相关者满意的同时,努力使项目利益相关者对项目尽到他们应尽的责任.项目的成功不是只靠项目组就能够实现的,而是其利益相关者共同尽责的结果 项目有五种典型的利益相关者:项目发起人.项目客户.项目经理.项目团队.

支付婊事件中, 微软应该背负责任吗?为什么没人指责微软?

匿名用户 钱一昶.孙哲浩.ImagineBreak 等人赞同 真的是微软的责任?WP的API再怎么不开放,也不至于让软件登录界面没法做出注册和找回密码吧?不至于让软件没法扫二维码吧? 发布于 昨天 14:28 1 条评论 赞同32 反对,不会显示你的姓名 可可苏玛,专业争当1% 路生.赤炎血.丞之 等人赞同 微软已经尽力在跟阿里谈判了,阿里还是微软在国内最高等级的[合作伙伴]之一,最高等级哦最高等级哦没有更高了哦:不但谈判甚至还[出资],都做到这份上了还要微软怎么办,收购小米收购魅族收购华为然后