设为首页收藏本站

SAP Best Business Solution

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2018|回复: 0

download CSV FILE With comma

[复制链接]

20

主题

21

帖子

164

积分

注册会员

Rank: 2

积分
164
发表于 2016-8-15 17:08:48 | 显示全部楼层 |阅读模式
form download_file .
  data:lt_fieldcat type slis_t_fieldcat_alv.
  data:ls_fcat like line of gt_fieldcat.
  data:l_field(5000)   type c.
  data:l_string(5000) type c,
       l_index type i.
  field-symbols:<l_line>  type any,
                <l_field> type any.
  data:wa_line type ref to data.
  field-symbols: <fs> type any,
                 <fs2> type any,
                 <fs1> type any.
  data:p_file1(132),
       p_subrc like sy-subrc.

  if p_layt is initial.         "No Variant is selected
    lt_fieldcat[] = gt_fieldcat[].
  else.
    perform get_alv_variant_detail using alv_variant
                                         gt_fieldcat[]
                                         gs_layout
                                changing lt_fieldcat.
  endif.
  p_subrc = 1.
  concatenate p_file 'Forecast_download' sy-datum sy-uzeit '.CSV'
  into p_file.

  try.
      open dataset p_file for output in text mode encoding default.
      if sy-subrc = 0.
        loop at lt_fieldcat into ls_fcat where no_out = ''.
          l_index = l_index + 1.
          condense l_field.
          if l_index = 1.
            l_string = ls_fcat-seltext_l.
          else.
            concatenate l_string  ls_fcat-seltext_l into l_string
                 separated by ','.
*                 CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
          endif.
        endloop.
        transfer l_string to p_file.
        clear  l_string.


        loop at  it_data.
          clear l_index.
          loop at lt_fieldcat into ls_fcat where no_out = ''.
            l_index = l_index + 1.
            assign component  ls_fcat-fieldname
                of structure  it_data to <fs1>.
            l_field =  <fs1>.
            condense l_field.
            search ls_fcat-fieldname for 'AMT'.
            if sy-subrc = 0.
              perform put_sign_in_front changing l_field.
            endif.

            perform process_comma_value changing l_field.
            if l_index = 1.
              l_string =  l_field.
            else.
              concatenate l_string  l_field into l_string
                    separated by ','.
*                    CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
            endif.
          endloop.
          transfer l_string to p_file.
          clear  l_string.
        endloop.

        close dataset p_file.
        write:/ 'Export is successful.'.
        write:/ 'Temporary file created on server:', p_file .
        p_subrc = 0.
      else.
        message e001(00) with 'Export file is failed.'.
        write:/ 'Export is failed.'.
      endif.
    catch cx_root.
      write:/ 'Temporary file writing error on server.'.
  endtry.
  if p_subrc ne 0.
    message e001(00) with 'Error in exporting file'.
  endif.

endform.                    " DOWNLOAD_FILE
form process_comma_value  changing p_field.
  condense p_field.
  search p_field for ','.
  if sy-subrc = 0.
    concatenate '"' p_field '"' into p_field.
  endif.
endform.                    " process_comma_value

form put_sign_in_front  changing p_value.
  data:l_len type i,
       l_str1(40),
       l_str2(40).

  l_len = strlen( p_value ).
  check l_len > 0.
  l_len = l_len - 1.
  l_str1 = p_value+l_len(1).
  if l_str1 = '-'.
    concatenate '-' p_value(l_len) into l_str2.
    p_value = l_str2.
  endif.
endform.                    " PUT_SIGN_IN_FRONT



form get_alv_variant_detail
                    using    p_variant
                             p_fieldcat type  slis_t_fieldcat_alv
                             ps_layout
                    changing pt_fieldcat type slis_t_fieldcat_alv.

  data: lt_fcat_def    type kkblo_fieldcat occurs 0 with header line.
  data: lt_fcat_sav    type kkblo_fieldcat occurs 0 with header line.
  data: lt_sort        type kkblo_sortinfo occurs 0 with header line.
  data: lt_filter      type kkblo_filter   occurs 0 with header line.

  data: lt_layout      type kkblo_layout.
  data: lt_fieldcat    type slis_fieldcat_alv.
  data: wa_sav like gt_fcat_sav.
  data: fieldcat_ln type slis_fieldcat_alv.


  loop at p_fieldcat into lt_fieldcat.
    move-corresponding lt_fieldcat   to lt_fcat_def.
    append lt_fcat_def.
  endloop.

  move-corresponding ps_layout   to lt_layout.

  call function 'LT_FC_LOAD'
    exporting
*      I_TOOL                    = 'LT'
      is_variant                = p_variant
      i_tabname                 = 'MASTER'
*     I_TABNAME_SLAVE           =
    importing
      et_fieldcat               = lt_fcat_sav[]
      et_sort                   = lt_sort[]
*      ET_FILTER                 = LT_FILTER[]
    changing
      cs_layout                 = lt_layout
      ct_default_fieldcat       = lt_fcat_def[]
    exceptions
      fc_not_complete           = 1
      others                    = 2
            .

  sort  lt_fcat_sav by  col_pos.
  loop at lt_fcat_sav into wa_sav where no_out <> 'X'.
    move-corresponding wa_sav to fieldcat_ln.
    append fieldcat_ln to pt_fieldcat.
    clear fieldcat_ln.
  endloop.

endform.                    " GET_ALV_VARIANT_DETAIL

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



QQ|Archiver|手机版|小黑屋|www.sapbbs.com    

GMT+8, 2019-6-20 15:55 , Processed in 1.067781 second(s), 28 queries .

声明:本站严禁任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

本站内容由网友原创或转载,如果侵犯了您的合法权益,请及时联系处理!© admin@sapbbs.com

快速回复 返回顶部 返回列表