SAPфорум.RU
https://sapboard.ru/forum/

cl_salv_table выгрузка в XLSX. Как добавить текст перед таблицей.
https://sapboard.ru/forum/viewtopic.php?f=13&t=97225
Страница 1 из 1

Автор:  Primat [ Пт, янв 11 2019, 12:54 ]
Заголовок сообщения:  cl_salv_table выгрузка в XLSX. Как добавить текст перед таблицей.

Добрый день. Нужно выгрузить XLSX документ с текстом перед таблицей. Код выгружает только таблицу. Что не делал (Set Top of page) не получатся.

Code:
try.
      cl_salv_table=>factory(
      importing
        r_salv_table = lo_table
      changing
        t_table      = gt_tab_exp[] ).   "lt_data is your internal table
    catch cx_salv_msg.
  endtry.

  perform change_columns changing lo_table.

  lx_xml = lo_table->to_xml( xml_type = '10' ). "XLSX

  call function 'XML_EXPORT_DIALOG'
    exporting
      i_xml                      = lx_xml
      i_default_extension        = 'XLSX'
      i_initial_directory        = ''
                                                                                                                                                                                                             "     i_default_file_name        = 'export.XLSX'
      i_default_file_name        = lx_file_name
      i_mask                     = 'Excel (*.XLSX)|*.XLSX'
    exceptions
      application_not_executable = 1
      others                     = 2.

Нужен такой вывод:
Изображение

Автор:  Besa [ Пт, янв 11 2019, 13:23 ]
Заголовок сообщения:  Re: cl_salv_table выгрузка в XLSX. Как добавить текст перед таблицей.

Top of page не работает для SALV, насколько я помню. Он работает для других кейсов, например BCALV_FULLSCREEN_DEMO.

Есть одна хитрость для SALV, как вариант...

Code:

    data lt_list_commentary type slis_t_listheader.

    append initial line to lt_list_commentary assigning field-symbol(<ls_list_commentary>).
    <ls_list_commentary>-typ  = mc_header_type_h.
    <ls_list_commentary>-info = is_header-head.
    export it_list_commentary from lt_list_commentary to memory id 'DYNDOS_FOR_ALV_EXCEL'.

    mo_salv->display( ).


Перед отрисовкой ALV закинуть в память шапку (тоже самое делать ФМ REUSE_ALV_COMMENTARY_WRITE). Потом, при запуске excel inplace или просто выгрузки в excel из ALV, в стандартном коде будет место где система читает из памяти шапку и закидывает в excel.

В таком варианте

Code:
  lx_xml = lo_table->to_xml( xml_type = '10' ). "XLSX

  call function 'XML_EXPORT_DIALOG'


я не пробовал, но думаю что сработает.

Если нет, то выводите ALV с преднастроеным форматом Excel inplace и все.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/