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

XLSX Workbench
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=86294
Страница 3 из 15

Автор:  peper- [ Пт, авг 15 2014, 12:36 ]
Заголовок сообщения:  Re: XLSX Workbench

Parazit написал:
peper- написал(а):
...Но Excel никогда не был WYSIWYG. Эта проблема существует со времен царя Гороха.
Я пользовался Excel еще с 5-й версии и уже тогда она была. И до сих пор существует в 2010-м (на 2013-й не переходил).

Есть такая проблема, сталкивался с ней не раз. Иногда удается побороть тонкой настройкой шрифтов, размеров ячеек и еще какой-то магии... :) Но, допускаю, что у MS есть какие-то рычажки, о которых просто не знаю, ибо пути БГ неисповедимы! :)

Самая прелесть в том, что в обсуждениях этого бага встречаются утверждения про отсутствие этой проблемы у Excel под Mac - она только под Windows имеет место быть. Я проверил - вроде действительно на Маке как на экране так и на предпросмотре перед печатью. Ну, не считая того, что на Маке оно сразу все выглядет не так, как на Виндах - шрифты другие по большей части и система подменяет их, отчего все отображение изменяется.
Более менее приемлемого результата под Виндами удается добиться, если работать с листами в Excel только при 100% масштабе и, тут не уверен, использовать новые шрифты Cambria и т.п., а не старые-добрые Arial/Times/Tahoma. Хотя на 100% проблему точного расположения на печати ярешаю только использованием Word.

Автор:  Бородин Игорь [ Пн, сен 01 2014, 13:58 ]
Заголовок сообщения:  Re: XLSX Workbench

Кодер написал(а):
Эти примеры не подходят для сложных заголовков. Ну когда у нас есть блок столбцами сложной структуры (на верху одна графа, внизу - 2 и более), а затем эти блоки могут повторятся, а в конце - замыкает итоговый столбец.
_____________________________
|__________________|_________|
|_______|__________|_________|

Реализовал данное требование (динамическое объединение ячеек).
Вот здесь описание нового компонента, а здесь и здесь примеры использования.

Автор:  Бородин Игорь [ Ср, окт 15 2014, 09:57 ]
Заголовок сообщения:  Re: XLSX Workbench

Добавлена новая возможность: экспорт ALV-Tree в Excel с гибкими настройками по форматированию.

Автор:  Бородин Игорь [ Чт, июл 30 2015, 17:57 ]
Заголовок сообщения:  Re: XLSX Workbench

Теперь и Диаграммы (графики)

Автор:  camelotka [ Пн, авг 10 2015, 07:58 ]
Заголовок сообщения:  Re: XLSX Workbench

Немного офтопа, очень полезный функционал и приятный на ощупь =) Спасибо

Автор:  Wise-Kaa [ Чт, мар 31 2016, 17:01 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день, Игорь.
Выражаю Вам благодарность за проделанную работу. Функционал БОМБА! Набор функций и простота использования делают его лучшим!
Есть вопрос.
У Вас есть пример с группировкой строк (3.2.08).
Шаблон состоит из двух уровней: верхнего («не сворачиваемая» строка) и нижнего («сворачиваемая» область).
Подскажите, как сделать, чтоб не сворачиваемая строка располагалась ниже сворачиваемой области? Если я PATTERN и FOLDER меняю местами, то «плюсик», сворачивающий/разворачивающий группу, располагается выше сворачиваемой области, а не сворачиваемая строка ниже и получаю чехарду.

Автор:  Бородин Игорь [ Чт, мар 31 2016, 18:34 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день, большое спасибо!
В меню Excel: Данные > Структура > Настройка Установите галочки Итоговые строки под данными

Автор:  Wise-Kaa [ Чт, мар 31 2016, 19:29 ]
Заголовок сообщения:  Re: XLSX Workbench

Игорь, ОГРОМНОЕ СПАСИБО, и прошу прошения, у Вас в примере это было описано, и я это видел, но по непонятной причине на меня напал тупизм…

Автор:  Wise-Kaa [ Ср, апр 06 2016, 13:27 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день, Игорь.
Подскажите, как Вашим функционалом можно реализовать скрытие столбцов по условию?
У Вас есть пример 3.2.08a Скрытие/отображение столбцов в таблице, но там фактически столбец выводится или не выводится по условию. Требуется выводить столбец(ы) всегда, но по условию скрывать (признак hidden = '1'). Вы подобное делаете при группировке по столбцам.

Автор:  Бородин Игорь [ Ср, апр 06 2016, 14:18 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день! На один столбец таблицы необходимо в формуляре предусмотреть 2 паттерна: открытый столбец и скрытый столбец и выводить каждый из этих паттернов по условию. Т.е. когда выводится один паттерн - не выводится другой.

Автор:  Wise-Kaa [ Ср, апр 06 2016, 15:46 ]
Заголовок сообщения:  Re: XLSX Workbench

Спасибо!
Игорь, может Вы сталкивались с такой проблемой.
Набор данных, полученных из ФМ 'ZXLWB_CALLFORM' по параметру ev_document_rawdata не открывается (дамп при чтении документа) с помощью средств пакета abap2xlsx. Но если пере сохранить в Excel, то все работает.
Если Вам это интересно, но времени нет, могу проанализировать отличия.

Автор:  Бородин Игорь [ Ср, апр 06 2016, 16:03 ]
Заголовок сообщения:  Re: XLSX Workbench

К сожалению, я весьма поверхностно знаком с abap2xlsx . По поводу различий между исходным файлом и пересохраненным в Excel - их будет довольно много. Думаю, имеет смысл анализировать дамп, полученный посредством abap2xlsx .

Автор:  Wise-Kaa [ Чт, апр 07 2016, 16:51 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день, Игорь.
Предлагаю Вам мелкие изменения, которые я внес в Workbench, возможно они Вас заинтересуют.
[Version 3.03]

1) Не подтягивалось название компонентов структуры данных, при создании структуры формуляра автоматически.
CLASS lcl_formtemplate
METHOD autostructure_recurs

Добавил присвоение соответствующих полей в цикле
LOOP AT r_context->t_hierarchy INTO ls_ctxt_hier

Code:
***< +
ls_form_prop-comp_descr = ls_ctxt_prop-comp_shortdescr.
***> +


2) Набор данных, полученных из ФМ 'ZXLWB_CALLFORM' по параметру ev_document_rawdata не открывается с помощью средств пакета abap2xlsx
CLASS lcl_excel
METHOD xml_save

Убрал pretty_print = abap_on. Возможно это было нужно, но я не знаю зачем.
Code:
***< - 
*    lr_ostream->set_pretty_print( pretty_print = abap_on ) .
***> -


3)Не срабатывала настройка, указывающая, что нужно брать часть поля контента
CLASS lcl_workbench
METHOD popup_charpos

На мой взгляд, было неверное условие выхода
Code:
      popup_to_get_value(
          EXPORTING iv_title       = lv_title
                    iv_tabname     = 'SYST'
                    iv_fieldname   = 'INDEX'
                    iv_fieldtext   = v_text-t098    " text: from position
                    iv_2tabname    = 'SYST'
                    iv_2fieldname  = 'TABIX'
                    iv_2fieldtext  = v_text-t024    " text: Chars number
          IMPORTING ev_cancel      = cv_cancel
          CHANGING  cv_value       = lv_offset
                    cv_2value      = lv_match ) .

***< -
*      IF cv_cancel IS INITIAL .
***> -
***< +
      IF cv_cancel IS NOT INITIAL .
***> +
        EXIT . " -->> do
      ENDIF .

Автор:  Бородин Игорь [ Чт, апр 07 2016, 17:37 ]
Заголовок сообщения:  Re: XLSX Workbench

Wise-Kaa
Большое спасибо за замечания! По поводу 3 пункта - это уже исправлено в последующих версиях (на данный момент актуальная 3.05). По остальным изменениям - включу в следующую версию.

Автор:  Wise-Kaa [ Пт, апр 08 2016, 10:55 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день, Игорь.
Опишу еще одну доработку Workbench. Это не ошибка, и Вы можете не обращать на это внимание.
Описание.
Мне было неудобно при настройке связей компонентов с шаблоном:
1) что каждый раз при выборе не связанного компонента терялась текущая выделанная ячейка в шаблоне и выделялся весь лист. При настройке связей большого количества компонентов терялся ориентир.
2) В панеле инструментов менялась активная закладка со «Свойства компонента» на «Сообщения». Каждый раз приходилось возвращается на закладку «Свойства компонента»

Что я переделал:
1) При выборе не присвоенного элемента, в XLS не сбрасываю выделенную ячейку
CLASS lcl_workbench
METHOD actn_comp_selected


Вызов r_excelole->selection_set обернул в условие
Code:
***<
    IF NOT ( ls_form_prop-tb_area_rows IS INITIAL AND ls_form_prop-tb_area_columns IS INITIAL AND ls_form_prop-comp_type EQ lcl_form=>c_comp_type-field ).
***>

      lv_sheet_not_found =
      r_excelole->selection_set( iv_sheet        = lv_tb_sheetname
                                 iv_sheet_only   = lv_sheet_only
                                 iv_area_top     = ls_form_prop-tb_area_top
                                 iv_area_left    = ls_form_prop-tb_area_left
                                 iv_area_rows    = ls_form_prop-tb_area_rows
                                 iv_area_columns = ls_form_prop-tb_area_columns ) .

***<
    ENDIF.
***>


2) Изменил отображение закладок. Закладка с сообщениями выводится, но активной остается «Свойства компонента» (получилось немного грубо, но работает)
CLASS lcl_wb_protab
METHOD redraw


Code:
*------ set active tab
    IF iv_activetab_id IS NOT INITIAL .
      r_container_bar->set_active( id = iv_activetab_id ) .
    ELSE .
      IF lv_ms_error IS NOT INITIAL .
        v_ms_show = abap_on.
      ENDIF.
      CASE abap_on .
        WHEN v_rt_show. r_container_bar->set_active( id = c_tab_id-root ) .
        WHEN v_pr_show. r_container_bar->set_active( id = c_tab_id-adjustments ) .
        WHEN v_cm_show. r_container_bar->set_active( id = c_tab_id-common ) .
        WHEN OTHERS .
      ENDCASE .
    ENDIF .


3) Так как закладка «Сообщения» не бросается в глаза пользователю, то для информирования пользователя вывожу в строке GUI статуса первое сообщение об ошибке.
CLASS lcl_form
METHOD node_get_protab_relevance


Анализирую таблицу ls_exceptions-t_retmess на ошибочные сообщения и если они есть, то вывожу первое TYPE 'S' DISPLAY LIKE 'E'
Для просмотра всех сообщений пользователь всегда может переключится на закладку «Сообщения».

Еще раз выражаю Вам благодарность за XLSX Workbench!

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