ABAP ZCL_EXCEL 实际用的案例 对账单

news2024/11/24 9:11:16

ABAP ZCL_EXCEL 实际用的案例

FORM GETITEMSANDOUTPUT USING PGS_HEAD TYPE GSHEAD.
  DATA:FILENAME TYPE STRING.
  DATA:LKUNNR  TYPE KNA1-KUNNR.
  DATA:PROW TYPE I.
  DATA:LSDATE TYPE STRING.
  DATA:SUMXSJE   TYPE DMBTR,
       ZYMYE     TYPE DMBTR, "月末余额
       SUMBYXSYE TYPE DMBTR, "截止本月末销售金额
       SUMBYBYYE TYPE DMBTR, "截止本月末备用余额
       SUMBYHKHJ TYPE DMBTR, "截止本月末回款余额
       SUMF      TYPE DMBTR,
       SUMJ      TYPE DMBTR,
       SUMK      TYPE DMBTR. "截止本月末回款余额

  DATA:LSXSJE TYPE DMBTR.
  DATA:LSOTXT TYPE STRING.
  DATA: NAME  LIKE THEAD-TDNAME,
        TLINE TYPE TABLE OF TLINE WITH HEADER LINE.

  DATA: LS_LINES(10),"行数
        LS_TABIX(10),"循环标号
        LS_PECNT     TYPE P LENGTH 6 DECIMALS 2, "百分比
        LS_PECET(6),"百分数
        LS_TEXT(40)."消息

  LKUNNR  = PGS_HEAD-KUNNR .
  SHIFT LKUNNR LEFT DELETING LEADING '0'.

  FILENAME = LKUNNR && PGS_HEAD-NAME1 && '.xlsx'.

  IF POUTPATH IS INITIAL.
    POUTPATH = LV_WORKDIR.
  ENDIF.
  CL_GUI_FRONTEND_SERVICES=>GET_FILE_SEPARATOR( CHANGING FILE_SEPARATOR = LV_FILE_SEPARATOR ).
  CONCATENATE POUTPATH LV_FILE_SEPARATOR FILENAME INTO LV_FULL_PATH.
  CREATE OBJECT LO_EXCEL.

  " Get active sheet
  LO_WORKSHEET = LO_EXCEL->GET_ACTIVE_WORKSHEET( ).
  LO_WORKSHEET->SET_TITLE( 'sheet1' ).

  CREATE OBJECT LO_BORDER_DARK.
  LO_BORDER_DARK->BORDER_COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_BORDER_DARK->BORDER_STYLE = ZCL_EXCEL_STYLE_BORDER=>C_BORDER_THIN.
*  抬头剧中
  LO_STYLE_BOLD_BORDER = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STYLE_BOLD_BORDER->FONT->BOLD = ABAP_TRUE.
  LO_STYLE_BOLD_BORDER->FONT->ITALIC = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_STYLE_BOLD_BORDER->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_CENTER.
  LO_STYLE_BOLD_BORDER->BORDERS->ALLBORDERS = LO_BORDER_DARK.
  LV_STYLE_BOLD_BORDER_GUID = LO_STYLE_BOLD_BORDER->GET_GUID( ).
* 末尾左右边框的
  LO_STYLE_BOLD_BORDER_LR = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STYLE_BOLD_BORDER_LR->FONT->BOLD = ABAP_TRUE.
  LO_STYLE_BOLD_BORDER_LR->FONT->ITALIC = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_LR->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_STYLE_BOLD_BORDER_LR->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_LEFT.
  LO_STYLE_BOLD_BORDER_LR->BORDERS->LEFT = LO_BORDER_DARK.
  LO_STYLE_BOLD_BORDER_LR->BORDERS->RIGHT = LO_BORDER_DARK.
  LV_STYLE_BOLD_BORDER_GUID_LR = LO_STYLE_BOLD_BORDER_LR->GET_GUID( ).
*字体分布
  LO_STYLE_BOLD_BORDER_LEFT = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STYLE_BOLD_BORDER_LEFT->FONT->BOLD = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_LEFT->FONT->ITALIC = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_LEFT->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_STYLE_BOLD_BORDER_LEFT->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_JUSTIFY.
  LO_STYLE_BOLD_BORDER_LEFT->BORDERS->ALLBORDERS = LO_BORDER_DARK.
  LV_STYLE_BOLD_BORDER_GUID_LT = LO_STYLE_BOLD_BORDER_LEFT->GET_GUID( ).
*字体靠左
  LO_STYLE_BOLD_BORDER_LEE = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STYLE_BOLD_BORDER_LEE->FONT->BOLD = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_LEE->FONT->ITALIC = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_LEE->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_STYLE_BOLD_BORDER_LEE->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_LEFT.
  LO_STYLE_BOLD_BORDER_LEE->BORDERS->ALLBORDERS = LO_BORDER_DARK.
  LV_STYLE_BOLD_BORDER_GUID_LE = LO_STYLE_BOLD_BORDER_LEE->GET_GUID( ).
*字体靠右
  LO_STYLE_BOLD_BORDER_RIGHT = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STYLE_BOLD_BORDER_RIGHT->FONT->BOLD = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_RIGHT->FONT->ITALIC = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_RIGHT->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_STYLE_BOLD_BORDER_RIGHT->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_RIGHT.
  LO_STYLE_BOLD_BORDER_RIGHT->BORDERS->ALLBORDERS = LO_BORDER_DARK.
  LV_STYLE_BOLD_BORDER_GUID_RT = LO_STYLE_BOLD_BORDER_RIGHT->GET_GUID( ).

  LO_STYLE_BOLD_BORDER_CURR = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STYLE_BOLD_BORDER_CURR->FONT->BOLD = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_CURR->FONT->ITALIC = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_CURR->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_STYLE_BOLD_BORDER_CURR->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_RIGHT.
  LO_STYLE_BOLD_BORDER_CURR->NUMBER_FORMAT->FORMAT_CODE = ZCL_EXCEL_STYLE_NUMBER_FORMAT=>C_FORMAT_XLSX39.
  LO_STYLE_BOLD_BORDER_CURR->BORDERS->ALLBORDERS = LO_BORDER_DARK.
  LV_STYLE_BOLD_BORDER_GUID_CURR = LO_STYLE_BOLD_BORDER_CURR->GET_GUID( ).

  LO_STY_CURR_R = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STY_CURR_R->FONT->BOLD = ABAP_FALSE.
  LO_STY_CURR_R->FONT->ITALIC = ABAP_FALSE.
  LO_STY_CURR_R->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_RED.
  LO_STY_CURR_R->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_RIGHT.
  LO_STY_CURR_R->NUMBER_FORMAT->FORMAT_CODE = ZCL_EXCEL_STYLE_NUMBER_FORMAT=>C_FORMAT_XLSX39.
  LO_STY_CURR_R->BORDERS->ALLBORDERS = LO_BORDER_DARK.
  LV_STY_GUID_CURR_R = LO_STY_CURR_R->GET_GUID( ).

  LO_STY_MENGE = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STY_MENGE->FONT->ITALIC = ABAP_FALSE.
  LO_STY_MENGE->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_STY_MENGE->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_CENTER.
  LO_STY_MENGE->BORDERS->ALLBORDERS = LO_BORDER_DARK.
  LV_STY_GUID_MENGE = LO_STY_MENGE->GET_GUID( ).

  LO_STY_MENGE_R = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STY_MENGE_R->FONT->ITALIC = ABAP_FALSE.
  LO_STY_MENGE_R->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_RED.
  LO_STY_MENGE_R->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_CENTER.
  LO_STY_MENGE_R->BORDERS->ALLBORDERS = LO_BORDER_DARK.
  LV_STY_GUID_MENGE_R = LO_STY_MENGE_R->GET_GUID( ).

  LO_STYLE_BOLD_BORDER_NT = LO_EXCEL->ADD_NEW_STYLE( ).
  LO_STYLE_BOLD_BORDER_NT->FONT->BOLD = ABAP_TRUE.
  LO_STYLE_BOLD_BORDER_NT->FONT->ITALIC = ABAP_FALSE.
  LO_STYLE_BOLD_BORDER_NT->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
  LO_STYLE_BOLD_BORDER_NT->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_LEFT.
  LO_STYLE_BOLD_BORDER_NT->BORDERS->LEFT = LO_BORDER_DARK.
  LO_STYLE_BOLD_BORDER_NT->BORDERS->RIGHT = LO_BORDER_DARK.
  LO_STYLE_BOLD_BORDER_NT->BORDERS->DOWN = LO_BORDER_DARK.
  LV_STYLE_BOLD_BORDER_GUID_NT = LO_STYLE_BOLD_BORDER_NT->GET_GUID( ).

  "$. Region 列宽设置
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'A' IP_WIDTH_FIX = '12').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'B' IP_WIDTH_FIX = '20').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'C' IP_WIDTH_FIX = '50').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'D' IP_WIDTH_FIX = '8').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'E' IP_WIDTH_FIX = '12').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'F' IP_WIDTH_FIX = '12').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'G' IP_WIDTH_FIX = '16').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'H' IP_WIDTH_FIX = '12').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'I' IP_WIDTH_FIX = '50').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'J' IP_WIDTH_FIX = '12').
  LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'K' IP_WIDTH_FIX = '12').
  "$. Endregion 列宽设置

  "$. Region 第一行
  LO_WORKSHEET->SET_MERGE( IP_ROW = 1 IP_COLUMN_START = 'A' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'A' IP_VALUE = '杰克对账单' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  "$. Endregion 第一行

  "$. Region 第二行
  LO_WORKSHEET->SET_CELL( IP_ROW = 2 IP_COLUMN = 'A' IP_VALUE = '客户号' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 2 IP_COLUMN = 'B' IP_VALUE = LKUNNR IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 2 IP_COLUMN = 'C' IP_VALUE = '客户名称' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_MERGE( IP_ROW = 2 IP_COLUMN_START = 'D' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 2 IP_COLUMN = 'D' IP_VALUE = PGS_HEAD-NAME1 IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  "$. Endregion 第二行

  "$. Region 第三行
  LO_WORKSHEET->SET_MERGE( IP_ROW = 3 IP_COLUMN_START = 'A' IP_COLUMN_END = 'K' ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 3 IP_COLUMN = 'A' IP_VALUE = PGS_HEAD-TITLE IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  "$. Endregion 第三行

  "$. Region 第四行

  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'A' IP_VALUE = '日期' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'B' IP_VALUE = '物料代码' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'C' IP_VALUE = '型号' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'D' IP_VALUE = '数量' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'E' IP_VALUE = '单价' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'F' IP_VALUE = '销售金额' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'G' IP_VALUE = '款项类型' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'H' IP_VALUE = '交货单' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'I' IP_VALUE = '备注文本' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'J' IP_VALUE = '收款金额' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = 4 IP_COLUMN = 'K' IP_VALUE = '上期余额' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).

  "$. Endregion 第四行
  PROW = 4.
  CLEAR ZYMYE.
  "$. Region 第五 六行  上期金额
  PROW = PROW + 1.
  CLEAR SUMBYHKHJ.

  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'G' IP_VALUE = '上期销售余额' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  SUMXSJE = GTHEAD-ZXSQC + GTHEAD-ZXSQCY.
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'H' IP_COLUMN_END = 'J' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  IF SUMXSJE >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_VALUE = SUMXSJE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_VALUE = SUMXSJE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R  ).
  ENDIF.
  SUMK = SUMK + SUMXSJE.

  PROW = PROW + 1.
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'G' IP_VALUE = '上期备用余额' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).

  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'H' IP_COLUMN_END = 'J' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  SUMXSJE = GTHEAD-ZLJQC + GTHEAD-ZXSQCY.

  IF SUMXSJE >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_VALUE = SUMXSJE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_VALUE = SUMXSJE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R  ).
  ENDIF.
  SUMK = SUMK + SUMXSJE.

  PROW = PROW + 1.

  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'G' IP_VALUE = '上期回款余额' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).

  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'H' IP_COLUMN_END = 'J' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
*  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_VALUE = GTHEAD-ZSUMHK IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_RT IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_DECFLOAT16 ).
  IF GTHEAD-ZSUMHK >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_VALUE = GTHEAD-ZSUMHK IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_VALUE = GTHEAD-ZSUMHK IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R  ).
  ENDIF.
  SUMK = SUMK + GTHEAD-ZSUMHK.

  SUMBYHKHJ = GTHEAD-ZSUMHK.
  "$. Endregion 第五 六行  上期金额

  "$. Region 回款部分

  CLEAR SUMBYHKHJ.
  LOOP AT GTSK INTO DATA(GSSK) WHERE KUNNR = GTHEAD-KUNNR.
    IF GSSK-ZSKDT IN S_BUDAT.
      PROW = PROW + 1.
      GTITEM-INCLUDE-DATSTR = GSSK-ZSKDT+0(4) && '.' && GSSK-ZSKDT+4(2) && '.' && GSSK-ZSKDT+6(2).
      LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = GTITEM-INCLUDE-DATSTR IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
      LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'B' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
      LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'G' IP_VALUE = '回款' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
      LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'H' IP_COLUMN_END = 'I' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
      IF GSSK-DMBTR >= 0.
        LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = GSSK-DMBTR IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
      ELSE.
        LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = GSSK-DMBTR IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R  ).
      ENDIF.
      SUMJ = SUMJ  + GSSK-DMBTR.
      LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_VALUE = '' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
      SUMBYHKHJ = SUMBYHKHJ + GSSK-DMBTR.
    ENDIF.
  ENDLOOP.
  "$. Endregion 回款部分

*    "$. Region 本月发生额
  SELECT LIKP~WADAT_IST,LIPS~MATNR,MAKT~MAKTX, LIPS~LFIMG,LIPS~VBELN,LIPS~VGBEL,VBAP~POSNR,LIPS~LGORT,VBAK~AUART,VBAK~KNUMV,PRCD_ELEMENTS~KBETR
  FROM LIPS
  JOIN LIKP ON LIPS~VBELN = LIKP~VBELN
  JOIN VBAP ON LIPS~VGBEL = VBAP~VBELN AND VBAP~POSNR = LIPS~VGPOS
  JOIN VBAK ON VBAK~VBELN = VBAP~VBELN
  JOIN MAKT ON LIPS~MATNR = MAKT~MATNR AND MAKT~SPRAS = @SY-LANGU
  LEFT JOIN PRCD_ELEMENTS ON PRCD_ELEMENTS~KNUMV = VBAK~KNUMV AND  PRCD_ELEMENTS~KPOSN = VBAP~POSNR
  AND PRCD_ELEMENTS~KSCHL = 'ZPR3'
  WHERE LIKP~KUNNR = @GTHEAD-KUNNR AND LIKP~WADAT_IST IN @S_BUDAT AND LIPS~LGORT IN @S_LGORT AND
  LIPS~WERKS IN @S_WERKS AND LIPS~WERKS IN (  SELECT WERKS  FROM T001W
  JOIN T001K ON T001K~BWKEY = T001W~BWKEY
  WHERE BUKRS IN @S_BUKRS )
  INTO TABLE @DATA(ZDNINFO).
  CLEAR SUMXSJE.
  DESCRIBE TABLE ZDNINFO LINES LS_LINES."获取内表行数
  SORT ZDNINFO BY LGORT WADAT_IST."排序
  LOOP AT ZDNINFO INTO DATA(SDNINFO).
    PROW = PROW + 1.
    LS_TABIX = SY-TABIX."当前处理的行号
    LS_PECNT = LS_TABIX / LS_LINES * 100."已处理百分比
    LS_PECET = LS_PECNT.
    CONCATENATE  '客户' LKUNNR '回款部分正在处理,已完成' LS_PECET '%,共' LS_TABIX '条/' LS_LINES '条' INTO LL_TEXT.
    CONDENSE LL_TEXT."整理格式,去掉多余空格,格式更整齐
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' "调用进度条函数,传入百分比和消息
      EXPORTING
        PERCENTAGE = LL_PECNT
        TEXT       = LL_TEXT.
    LSDATE = SDNINFO-WADAT_IST+0(4) && '.' && SDNINFO-WADAT_IST+4(2) && '.' && SDNINFO-WADAT_IST+6(2).
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = LSDATE IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
    SHIFT SDNINFO-MATNR LEFT DELETING LEADING '0'.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'B' IP_VALUE = SDNINFO-MATNR IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_LT ).
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'C' IP_VALUE = SDNINFO-MAKTX IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
    IF SDNINFO-AUART = 'ZRJ'."退货用负数
      SDNINFO-LFIMG  = -1 * SDNINFO-LFIMG.
    ENDIF.
    IF SDNINFO-LFIMG >= 0.
      LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'D' IP_VALUE = SDNINFO-LFIMG IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_MENGE  ).
    ELSE.
      LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'D' IP_VALUE = SDNINFO-LFIMG IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_MENGE_R  ).
    ENDIF.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'E' IP_VALUE = SDNINFO-KBETR IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
    LSXSJE = SDNINFO-KBETR * SDNINFO-LFIMG.
    SUMXSJE = SUMXSJE + LSXSJE.
    IF LSXSJE >= 0.
      LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'F' IP_VALUE = LSXSJE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
    ELSE.
      LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'F' IP_VALUE = LSXSJE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R  ).
    ENDIF.
    SUMF = SUMF + LSXSJE.
    CASE SDNINFO-LGORT.
      WHEN '4101'.
        LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'G' IP_VALUE = '销售' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
        SUMBYXSYE = SUMBYXSYE + LSXSJE.
      WHEN '4103'.
        LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'G' IP_VALUE = '返修' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
        SUMBYXSYE = SUMBYXSYE + LSXSJE.
      WHEN '4202'.
        LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'G' IP_VALUE = '电控部备用' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
        SUMBYBYYE = SUMBYBYYE + LSXSJE.
      WHEN '4206'.
        LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'G' IP_VALUE = '零件部备用' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
        SUMBYBYYE = SUMBYBYYE + LSXSJE.
    ENDCASE.
    SHIFT SDNINFO-VBELN LEFT DELETING LEADING '0'.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'H' IP_VALUE = SDNINFO-VBELN IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
    NAME = SDNINFO-VGBEL.
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        ID                      = '0001'
        LANGUAGE                = '1'
        NAME                    = NAME
        OBJECT                  = 'VBBK'
      TABLES
        LINES                   = TLINE
      EXCEPTIONS
        ID                      = 1
        LANGUAGE                = 2
        NAME                    = 3
        NOT_FOUND               = 4
        OBJECT                  = 5
        REFERENCE_CHECK         = 6
        WRONG_ACCESS_TO_ARCHIVE = 7
        OTHERS                  = 8.
    CLEAR LSOTXT.
    LOOP AT TLINE.
      CONCATENATE LSOTXT TLINE-TDLINE INTO LSOTXT.
    ENDLOOP.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'I' IP_VALUE = LSOTXT IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).

    LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'J' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  ENDLOOP.

  "$. Endregion 本月发生额
  DATA:PREPROW  TYPE I .
  DATA:LV_CELL_VALUE TYPE STRING.
  PREPROW = PROW.
*    汇总行
  PROW = PROW + 1.
  LSOTXT = 'SUM(F4:F' && PREPROW && ')'.

  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = '汇总' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID  ).

  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'B' IP_COLUMN_END = 'E' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  IF SUMF >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'F' IP_FORMULA  = LSOTXT IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LO_STYLE_BOLD_BORDER_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'F' IP_FORMULA  = LSOTXT IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE = LV_STY_GUID_CURR_R  ).
  ENDIF.

  LSOTXT = 'SUM(J4:J' && PREPROW && ')'.
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'G' IP_COLUMN_END = 'I' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  IF SUMJ >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_FORMULA  = LSOTXT  IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LO_STYLE_BOLD_BORDER_CURR ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_FORMULA  = LSOTXT  IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE = LV_STY_GUID_CURR_R ).
  ENDIF.
  LSOTXT = 'SUM(K4:K' && PREPROW && ')'.
  IF SUMK >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_FORMULA  = LSOTXT  IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE = LO_STYLE_BOLD_BORDER_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'K' IP_FORMULA  = LSOTXT  IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE = LV_STY_GUID_CURR_R  ).
  ENDIF.
*    月末余额
  PREPROW = PROW.
  PROW = PROW + 1.
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = '月末余额' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'B' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LSOTXT = 'F' && PREPROW && '-J' && PREPROW && '+K' && PREPROW.
  IF  SUMF - SUMJ  +  SUMK >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'B' IP_FORMULA  = LSOTXT  IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LO_STYLE_BOLD_BORDER_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'B' IP_FORMULA  = LSOTXT  IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE = LV_STY_GUID_CURR_R  ).
  ENDIF.

*    制表人
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  SELECT SINGLE USREFUS~USERALIAS  FROM USREFUS WHERE BNAME = @SY-UNAME INTO @DATA(LALIAS).
  LSOTXT = '制表人:' && LALIAS ."' && '(' && SY-UNAME &&  ')'.
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = LSOTXT IP_STYLE =   LV_STYLE_BOLD_BORDER_GUID_LT  ).
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'G' IP_COLUMN_END = 'I' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'J' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = '客户回签(签字/盖章)' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_RT ).
*    电话
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID  ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = '电话:0576-88159077' IP_STYLE =   LV_STYLE_BOLD_BORDER_GUID_LT   ).
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'G' IP_COLUMN_END = 'I' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'J' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = '传真:0576-88177758' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_RT ).
*    截止本月零件销售余额:                   877.97
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = '截止本月零件销售余额' IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_LT  ).
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'G' IP_COLUMN_END = 'I' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
*               本月发生        年初       +  历史Delta
  SUMBYXSYE = SUMBYXSYE + GTHEAD-ZXSQC + GTHEAD-ZXSQCY.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'J' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  IF SUMBYXSYE >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = SUMBYXSYE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = SUMBYXSYE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R  ).
  ENDIF.
*截止本月零件备用余额:                   6,999.95
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = '截止本月零件备用余额' IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_LT  ).
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'G' IP_COLUMN_END = 'I' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  SUMBYBYYE = SUMBYBYYE + GTHEAD-ZLJQC + GTHEAD-ZLJQCY.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'J' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  IF SUMBYBYYE >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = SUMBYBYYE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = SUMBYBYYE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R   ).
  ENDIF.
*截至本月零件回款合计:                   3,200.00
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = '截至本月零件回款合计' IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_LT  ).
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'G' IP_COLUMN_END = 'I' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'J' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  IF SUMBYHKHJ >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = SUMBYHKHJ IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = SUMBYHKHJ IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R   ).
  ENDIF.
*截至本月零件余额合计:                   4,677.92
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'A' IP_COLUMN_END = 'F' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE = '截至本月零件余额合计' IP_STYLE =   LV_STYLE_BOLD_BORDER_GUID_LT  ).
  LO_WORKSHEET->SET_AREA( IP_ROW = PROW  IP_COLUMN_START = 'G' IP_COLUMN_END = 'I' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LT ).
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW IP_COLUMN_START = 'J' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
  ZYMYE  = SUMBYXSYE + SUMBYBYYE - SUMBYHKHJ.
  IF ZYMYE >= 0.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = ZYMYE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STYLE_BOLD_BORDER_GUID_CURR  ).
  ELSE.
    LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'J' IP_VALUE = ZYMYE IP_ABAP_TYPE = CL_ABAP_TYPEDESCR=>TYPEKIND_FLOAT IP_STYLE =  LV_STY_GUID_CURR_R  ).
  ENDIF.
*"温馨提醒:
*一、以上是贵司和我司发生的往来帐明细表,请及时核对确认,如有疑问请于一星期内前将问题书面反馈至我司,我司将及时给予处理,如未回复,视同贵司认可以上余额,谢谢合作。
*二、本司将以此为据确认贵司的实际应收款,负数表示您尚在我司的预付款。
*三、我司对帐时间:次月4-6号。"
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW  IP_COLUMN_START = 'A' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LR ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE  = '温馨提醒' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LR ).
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW  IP_COLUMN_START = 'A' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LR ).
  LO_WORKSHEET->SET_CELL( IP_ROW = PROW IP_COLUMN = 'A' IP_VALUE  = '一、以上是贵司和我司发生的往来帐明细表如有疑问请于一星期内前将问题书面反馈至我司,我司将及时给予处理,如未回复,视同贵司认可以上余额,请及时核对确认,谢谢合作。' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LR  ).
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE( IP_ROW = PROW  IP_COLUMN_START = 'A' IP_COLUMN_END = 'K' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID_LR ).
  LO_WORKSHEET->SET_CELL( IP_ROW    = PROW
                          IP_COLUMN = 'A'
                          IP_VALUE  = '二、本司将以此为据确认贵司的实际应收款,负数表示您尚在我司的预付款'
                          IP_STYLE  = LV_STYLE_BOLD_BORDER_GUID_LR ).
  PROW = PROW + 1.
  LO_WORKSHEET->SET_MERGE(
    IP_ROW          = PROW
    IP_COLUMN_START = 'A'
    IP_COLUMN_END   = 'K'
    IP_STYLE        = LV_STYLE_BOLD_BORDER_GUID_NT ).
  LO_WORKSHEET->SET_CELL( IP_ROW    = PROW
                          IP_COLUMN = 'A'
                          IP_VALUE  = '三、我司对帐时间:次月4-6号。'
                          IP_STYLE  = LV_STYLE_BOLD_BORDER_GUID_NT ).


  CREATE OBJECT LO_EXCEL_WRITER TYPE ZCL_EXCEL_WRITER_2007.
  LV_FILE = LO_EXCEL_WRITER->WRITE_FILE( LO_EXCEL ).

  " Convert to binary
  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      BUFFER        = LV_FILE
    IMPORTING
      OUTPUT_LENGTH = LV_BYTECOUNT
    TABLES
      BINARY_TAB    = LT_FILE_TAB.

  " Save the file
  CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD( EXPORTING BIN_FILESIZE = LV_BYTECOUNT
                                                    FILENAME     = LV_FULL_PATH
                                                    FILETYPE     = 'BIN'
                                          CHANGING  DATA_TAB     = LT_FILE_TAB ).
  WRITE:/ '客户' && LKUNNR && '已经写入文件' && LV_FULL_PATH.
ENDFORM.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1667266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java项目之英语知识应用网站源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的英语知识应用网站。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 英语知识应用网站的主要…

文心一言 VS 讯飞星火 VS chatgpt (257)-- 算法导论19.2 1题

一、给出图19-4(m)中的斐波那契堆调用 FIB-HEAP-EXTRACT-MIN 后得到的斐波那契堆。如果要写代码,请用go语言。 文心一言: 由于我不能直接画出图19-4(m)中的斐波那契堆,我将基于斐波那契堆的基本结构和操作FIB-HEAP-EXTRACT-MIN的一般行为来…

3D 生成重建009-DreamGaussian使用gaussian splatting在两分钟内生成3d

3D 生成重建009-DreamGaussian使用gaussian splatting在两分钟内生成3d 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 DreamGaussian是第一个使用gaussian splatting方法进行3d生成的工作。论文最先使用gaussian splatting替代原来用nerf表示3d。整体架构依然保留了原来的…

探索数据结构:树与二叉树

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 树 1.1. 树的定义 树是一种非线性的数据结构,它是由n&a…

nodejs复习笔记

最近在复习nodejs,整理了一些笔记来记录和分享。 非常惭愧,我之前关于nodejs学习的一篇文章《nodejs全栈开发学习笔记》已经是2019年6月份的时候了,大概浏览了一下,发现当时很多不明白的地方,现在通过复习&#xff0c…

【MySQL数据库开发设计规范】之表设计规范

欢迎点开这篇文章,自我介绍一下哈,本人姑苏老陈 ,是一名JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中,该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章,定期更新,欢迎关注&…

Java反射(含静态代理模式、动态代理模式、类加载器以及JavaBean相关内容)

目录 1、什么是反射 2、Class类 3、通过Class类取得类信息/调用属性或方法 4、静态代理和动态代理 5.类加载器原理分析 6、JavaBean 1、什么是反射 Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得…

【计算机毕业设计】基于微信小程序文章管理系统

随着 计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于文章管理方面的应用程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款基于微信小程序的文章管理系统,能…

基于机器学习的网络流量识别分类(完整资源收米)NetFlow-Sentry

项目介绍 这是一个名为NetFlow-Sentry的项目,项目实现了对网络流量的实时检测,特征抓取,内置了基于Pytorch的深度学习模型来进行流量分类。该项目除可以进行实时特征提取,还提供了网络流量数据的输入口,可以直接识别分…

并发——进程

1. 程序 程序(program)是什么? 计算机程序(computer program)一般是指以某些程序设计语言编程,能够运行于某种目标体系结构上 程序 数据结构 算法 数据结构:用来表示人们思维对象的抽…

mysql的存储结构

一个表就是一个ibd文件 .ibd文件大小取决于数据和索引,在5.7之后才会为每个表生成一个独立表空间即一个ibd文件,在此之前,所有表默认下都会存储在“系统表空间”(共享表空间),所有表都在一个ibd文件。 inn…

我的全新官网

科技语者-探索未来的语言和沟通 (chgskj.cn) 另外我还开放了一个网站科技语者-介绍页 (null.fit)

Verilog复习(四)| 组合逻辑

一位全加器结构描述: 数据流描述: 行为描述: 只要有事件发生(列表中任何 信号有变化),就执行begin…end 的语句 。 always的事件控制方式 边沿触发 always (posedge clk) // clk从低电平->高&#x…

使用Flask构建POST请求的Web应用

文章目录 准备工作创建路由处理POST请求创建表单页面运行应用结论 在Web开发中,处理POST请求是一项常见任务,特别是在构建表单提交、用户注册和数据提交等功能时。Flask是一个简单而强大的Python Web框架,它提供了方便的工具来处理HTTP请求&a…

答辩PPT自述稿如何与幻灯片同步?笔灵AI一键生成功能解析

在我原本的认知里面,答辩PPT是要包含论文各个章节的,在答辩时需要方方面面都讲到的,什么摘要、文献综述、实证分析、研究结果样样不落。但是,这大错特错! 答辩PPT环节时长一般不超过5分钟,老师想要的答辩P…

Postman工具介绍与安装

一、Postman介绍 Postman 乃是一款对 HTTP 协议予以支持的接口调试及测试工具,其突出特性在于功能强大,并且使用简便、易用性良好。不管是开发人员开展接口调试工作,还是测试人员进行接口测试任务,Postman 均属于首选工具之一。 接…

面试八股之Redis篇2——redis分布式锁

🌈hello,你好鸭,我是Ethan,一名不断学习的码农,很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 🏃人生之义,在于追求,不在成败,勤通…

图书馆APP开发解决方案

uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 框架支持:springboot/Ssm/thinkphp/django/flask/express均支持 前端开发:vue.js 可选语言:pythonjavanode.jsphp均支持 运行软件…

blender 为世界环境添加纹理图像

1、打开世界环境配置项 2、点击颜色右侧的黄色小圆,选择环境纹理 3、打开一张天空图像 4、可以通过调整强度/力度,调整世界环境的亮度

ambari-server高可用配置方案

制品 https://kdocs.cn/l/cie4hSgvUunX 前置条件 环境需要支持VRRP协议 环境需要配置好yum源 变更影响面 变更不会影响其他组件 配置lb(需要客户侧配置并提供LB地址) 转发方式选择 主备 监听端口为8080、8440、8441 协议为tcp 后端监听选择kde-offline1为主 后端监听选择kde-…