zoukankan      html  css  js  c++  java
  • 责任成本汇总表

    **=====================================================================*
    *& 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.

  • 相关阅读:
    在chrome插件开发中,如何executeScript多个content script文件
    [Silverlight]MVVM+MEF框架Jounce练习(1)
    EF的日期运算
    【silverlight】Silverlight TreeViw默认展开节点
    singleton pattern简单随笔
    Design pattern形象比喻
    C#简单选择排序
    回文算法
    C#插入排序
    Jquery调用存储过程实例
  • 原文地址:https://www.cnblogs.com/llguanli/p/7284480.html
Copyright © 2011-2022 走看看