Текущее время: Вс, мар 29 2020, 16:39

Часовой пояс: UTC + 4 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 173 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12
Автор Сообщение
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пт, май 24 2019, 10:45 
Специалист
Специалист

Зарегистрирован:
Пт, июл 27 2007, 14:06
Сообщения: 132
На паттернах+циклах это по этому примеру? https://sites.google.com/site/sapxlwb/h ... mples/ex09

Таблица динамическая с данными уже создана? Если да, то можно ее засунуть в cl_salv_tree (иерархию не делать, всё верхним уровнем) и вывести под заголовком. Тогда не надо будет "переворачивать" таблицу для вывода как в примере.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Чт, май 30 2019, 11:34 
Начинающий
Начинающий

Зарегистрирован:
Вт, дек 11 2018, 15:09
Сообщения: 6
Sam Stone написал(а):
На паттернах+циклах это по этому примеру? https://sites.google.com/site/sapxlwb/h ... mples/ex09

Таблица динамическая с данными уже создана? Если да, то можно ее засунуть в cl_salv_tree (иерархию не делать, всё верхним уровнем) и вывести под заголовком. Тогда не надо будет "переворачивать" таблицу для вывода как в примере.


Да на этом примере.

Написал разработчику, он помог с решением.
Единственное что не корректно указал в проблеме, что позиции должны схлопываться по matnr, если есть количества по разным заводам.

Обернул позиции в папку->цикл и внутри позиций ещё одна вложенная таблица с количеством, которую тоже обернул в папку и сделал вывод в строчку.
Вывод соответственно добил логикой.

Спасибо за ответ.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пн, дек 16 2019, 09:57 
Ассистент
Ассистент

Зарегистрирован:
Вт, окт 06 2009, 12:02
Сообщения: 37
Добрый день, Игорь.
Внес небольшую доработку в Workbench, может она Вас заинтересует, и Вы добавите ее в новую версию.
Суть доработки - добавлен функционал, позволяющий импортировать новый файл Excel в готовый формуляр, с сохранением настроек формуляра.
Реализация:
Изменен
CLASS lcl_workbench
METHOD action_import

Code:
*   check existence
    IF lcl_form=>get_devclass( lv_formname ) IS NOT INITIAL .
*** + <
      me->reimport( lv_formname ).
      EXIT.
*** + >
***      MESSAGE i000(lp)
***         WITH v_text-t014                   " text: A form already exists with the name
***              lv_formname
***      RAISING process_terminated .
    ENDIF .


Добавлен метод reimport
Code:
  METHOD reimport.
    DATA: l_answer          TYPE char20,
          ls_head           TYPE lcl_form=>ty_s_head,
          lt_properties     TYPE lcl_form=>ty_t_properties,
          lt_hierarchy      TYPE lcl_form=>ty_t_hierarchy,
          ls_key            TYPE wwwdatatab,
          lv_devclass       TYPE tadir-devclass,
          lv_objid          TYPE wwwdatatab-objid,
          lt_document_table TYPE tsfmime,
          lv_document_size  TYPE i,
          lt_html_table     TYPE STANDARD TABLE OF w3html,
          cl_form           TYPE REF TO lcl_form,
          lv_formdescr      TYPE wwwdatatab-text.

    " Диалог с пользователем
    CALL FUNCTION 'POPUP_TO_CONFIRM'
      EXPORTING
        titlebar              = 'Импорт'
        text_question         = 'Формуляр существует. Перегрузить?'
        default_button        = '2'
        display_cancel_button = ''
      IMPORTING
        answer                = l_answer
      EXCEPTIONS
        text_not_found        = 1
        OTHERS                = 2.
    CHECK l_answer EQ '1'.

    " Загрузка старого формуляра
    CREATE OBJECT r_formtemplate
      EXPORTING
        iv_formname   = iv_formname
        iv_create_new = space
        iv_editor     = abap_on
      EXCEPTIONS
        OTHERS        = 1.
    IF sy-subrc NE 0 .
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .
      RAISE process_terminated .
    ENDIF .

    " Запоминаем настройки формуляра
    cl_form ?= r_formtemplate.
    lv_formdescr = cl_form->v_formdescr.
    r_formtemplate->r_exceltemplate->formparameters_struc_get(
                EXPORTING iv_path  = r_formtemplate->r_exceltemplate->c_path-formhead
                CHANGING  cs_struc = ls_head ) .
    r_formtemplate->r_exceltemplate->formparameters_table_get(
                EXPORTING iv_path  = r_formtemplate->r_exceltemplate->c_path-formproperties
                CHANGING  ct_tab   = lt_properties ) .
    r_formtemplate->r_exceltemplate->formparameters_table_get(
                EXPORTING iv_path  = r_formtemplate->r_exceltemplate->c_path-formhierarchy
                CHANGING  ct_tab   = lt_hierarchy ) .
    r_formtemplate->r_exceltemplate->free( ).
    CLEAR: r_formtemplate.


    " UPLOAD новый формуляр

*   lock an object
    IF lcl_form=>enq_lock( iv_formname = iv_formname ) IS NOT INITIAL .
      MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
      RAISING process_terminated .
    ENDIF .
*   upload file
    ls_key-relid = lcl_form=>c_relid .
    ls_key-objid = lcl_form=>conv_formname_ei( iv_formname ) .
    ls_key-text  = lv_formdescr .
    CALL FUNCTION 'UPLOAD_WEB_OBJECT'
      EXPORTING
        key = ls_key.
*   unlock the object
    lcl_form=>enq_unlock( iv_formname = iv_formname ) .


    " Считываем загруженный формуляр
    CREATE OBJECT r_formtemplate
      EXPORTING
        iv_formname   = iv_formname
        iv_create_new = space
        iv_editor     = abap_on
      EXCEPTIONS
        OTHERS        = 1.
    IF sy-subrc NE 0 .
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .
      RAISE process_terminated .
    ENDIF .

    " Настройки формуляра
    r_formtemplate->r_exceltemplate->formparameters_struc_set(
                EXPORTING iv_path  = r_formtemplate->r_exceltemplate->c_path-formhead
                          is_struc = ls_head ) .
    r_formtemplate->r_exceltemplate->formparameters_table_set(
                EXPORTING iv_path  = r_formtemplate->r_exceltemplate->c_path-formproperties
                          it_tab   = lt_properties ) .
    r_formtemplate->r_exceltemplate->formparameters_table_set(
                EXPORTING iv_path  = r_formtemplate->r_exceltemplate->c_path-formhierarchy
                          it_tab   = lt_hierarchy ) .

    " Сохраняем
    lv_objid = r_formtemplate->conv_formname_ei( r_formtemplate->v_formname ).
    IF r_formtemplate->v_devclass IS INITIAL .
      lv_devclass = popup_devclass( iv_objid = lv_objid ) .
    ELSE .
      lv_devclass = r_formtemplate->v_devclass .
    ENDIF.
    CHECK lv_devclass IS NOT INITIAL .
    r_formtemplate->r_exceltemplate->rawdata_get_as_table(
               IMPORTING  et_document_table = lt_document_table
                          ev_document_size  = lv_document_size ) .

    CALL FUNCTION 'EXPORT_WEB_OBJECT'
      EXPORTING
        object_id          = lv_objid
        mimetype           = lcl_form=>c_mimetype
        text               = lv_formdescr
        size               = lv_document_size
        devclass           = lv_devclass
      TABLES
        html               = lt_html_table
        mime               = lt_document_table
      EXCEPTIONS
        size_not_specified = 1
        object_locked      = 2
        OTHERS             = 3.
    IF sy-subrc NE 0 .
      msg_syst_catch( ) .
      EXIT .
    ENDIF .

  ENDMETHOD.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пн, дек 16 2019, 20:08 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 202
Wise-Kaa написал(а):
Суть доработки - добавлен функционал, позволяющий импортировать новый файл Excel в готовый формуляр, с сохранением настроек формуляра.
Добрый день. Я правильно понимаю, что этот код обновляет форматирование, сохраняя дерево структуры формуляра? Спасибо, я вставлю этот код в будущих обновлениях.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пт, мар 20 2020, 19:36 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 15 2019, 18:02
Сообщения: 5
Добрый день.
Есть проблемка: экспортирую в эксель дерево (класс - cl_hrpayna_gui_alv_tree, через вызов ФМ ZXLWB_CALLFORM),
но в fieldcatalog-е дерева есть поля-иконки (ICON = 'X').
Грид отрисовывает их нормально, однако в эксель такие ячейки передаются как пустые. Меня бы полностью устроило, если бы
значение передавалось как строка, я бы просто макросом их потом в экселе отработал. Есть вариант передачи таких полей в эксель?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пн, мар 23 2020, 06:54 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 202
UncleV написал(а):
Грид отрисовывает их нормально, однако в эксель такие ячейки передаются как пустые.
Это странно, потому, что иконки должны нормально вставляться в форму. Вот пример:
Code:
REPORT  ZTEST_ALVTREE.

TYPE-POOLS:
  abap ,
  icon .
TYPES:
  BEGIN OF ty_s_alvtree_outtab ,
    status_icon       TYPE icon_d ,
  END   OF ty_s_alvtree_outtab ,
  ty_t_alvtree_outtab TYPE STANDARD TABLE OF ty_s_alvtree_outtab .
DATA:
  go_alvtree          TYPE REF TO cl_hrpayna_gui_alv_tree ,  " -->> inherited from CL_GUI_ALV_TREE
  gt_alvtree_outtab   TYPE ty_t_alvtree_outtab .

* fill the context
PERFORM fill_context .

* call the form
CALL FUNCTION 'ZXLWB_CALLFORM'
  EXPORTING
    iv_formname        = 'ZTEST_ALVTREE'
    iv_context_ref     = go_alvtree
  EXCEPTIONS
    process_terminated = 1
    OTHERS             = 2.
IF sy-subrc NE 0 .
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .
  EXIT .
ENDIF .

*&---------------------------------------------------------------------*
*&      Form  fill_context
*&---------------------------------------------------------------------*
FORM fill_context .

*---->> create tree
  CREATE OBJECT go_alvtree
    EXPORTING
      parent              = cl_gui_container=>default_screen
      node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
    EXCEPTIONS
      others              = 7.
  CHECK sy-subrc EQ 0 .

*---->> fieldcatalog
  DATA:
    ls_fct            TYPE lvc_s_fcat ,
    lt_fct            TYPE lvc_t_fcat .

  ls_fct-fieldname = 'STATUS_ICON' .
  ls_fct-icon        = 'X' .
  APPEND ls_fct TO lt_fct .

*---->> initialization
  go_alvtree->set_table_for_first_display(
    CHANGING  it_fieldcatalog     = lt_fct[]
              it_outtab           = gt_alvtree_outtab[] ) .

  cl_gui_cfw=>flush( EXCEPTIONS OTHERS = 0 ) .

*---->> add nodes to the tree
  DATA:
    ls_alvtree_outtab   TYPE ty_s_alvtree_outtab ,
    lv_nkey             TYPE lvc_nkey .

* ------------
  ls_alvtree_outtab-status_icon = icon_system_okay .

  go_alvtree->add_node(
        EXPORTING i_relat_node_key = space
                  i_relationship   = cl_gui_column_tree=>relat_last_child
                  i_node_text      = 'Parent'
                  is_outtab_line   = ls_alvtree_outtab
        IMPORTING e_new_node_key   = lv_nkey ) .

* ------------
  ls_alvtree_outtab-status_icon = icon_system_save .

  go_alvtree->add_node(
        EXPORTING i_relat_node_key = lv_nkey
                  i_relationship   = cl_gui_column_tree=>relat_last_child
                  i_node_text      = 'Child 1'
                  is_outtab_line   = ls_alvtree_outtab
        IMPORTING e_new_node_key   = lv_nkey ) .

* ------------
  ls_alvtree_outtab-status_icon = icon_system_back .

  go_alvtree->add_node(
        EXPORTING i_relat_node_key = lv_nkey
                  i_relationship   = cl_gui_column_tree=>relat_last_child
                  i_node_text      = 'Child 2'
                  is_outtab_line   = ls_alvtree_outtab ) .

* ------------
  ls_alvtree_outtab-status_icon = icon_system_cancel .

  go_alvtree->add_node(
        EXPORTING i_relat_node_key = lv_nkey
                  i_relationship   = cl_gui_column_tree=>relat_last_child
                  i_node_text      = 'Child 3'
                  is_outtab_line   = ls_alvtree_outtab ) .

  cl_gui_cfw=>flush( EXCEPTIONS OTHERS = 0 ) .

ENDFORM .                    "fill_context

Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пн, мар 23 2020, 10:53 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 15 2019, 18:02
Сообщения: 5
Бородин Игорь написал(а):
UncleV написал(а):
Грид отрисовывает их нормально, однако в эксель такие ячейки передаются как пустые.
Это странно, потому, что иконки должны нормально вставляться в форму. Вот пример...

А можно для этого примера скрин из ZXLWB_WORKBENCH с настройками?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пн, мар 23 2020, 12:46 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 202
UncleV написал(а):
А можно для этого примера скрин из ZXLWB_WORKBENCH с настройками?
Все настройки начальные
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 173 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB