Текущее время: Чт, июн 26 2025, 04:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 10:37 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 13 2015, 17:40
Сообщения: 23
Добрый день.
У меня есть табличка, которую я выгружаю на ALV в виде иерархии с помощью класса cl_hrpayna_gui_alv_tree. Некоторые поля табличной части настроены так, что если сумма больше нуля, то выделяется красным.
Далее вывожу все данные в EXCEL с помощью XLSX Workbench, чтобы нормально отображалась иерархия.
Вопрос в том, как настроить вывод так, чтобы именно нужные данные так же выделялись красным и в экселе? Делал через условное форматирование, но проблема в том, что в других полях тоже могут быть числовые данные, в результате чего они выделяются красным, а это не нужно. Также есть еще одна заморочка - мы можем изменить формат вывода ALV, соответственно столбцы могут поменять место расположение, то есть привязать настройку в экселе к конкретному столбцу не получается.

Может кто-нибудь подсказать как либо настроить в экселе, чтобы данные проверялись в конкретном столбце, либо как это сделать программно?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 12:55 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Добрый день. Я так понимаю, проблема в этом:
Серега Panda написал(а):
есть еще одна заморочка - мы можем изменить формат вывода ALV, соответственно столбцы могут поменять место расположение
Единственное, что можно сделать - это выбрать некий фиксированный порядок следования столбцов для выгрузки в Excel и, соответственно, настроить формат ячеек в шаблоне для этого порядка. А непосредственно перед выгрузкой, приводить текущий филдкаталог в соответствие с выбранным порядком столбцов, посредством методов get_frontend_fieldcatalog и set_frontend_fieldcatalog.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 13:20 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 13 2015, 17:40
Сообщения: 23
Бородин Игорь написал(а):
Единственное, что можно сделать - это выбрать некий фиксированный порядок следования столбцов для выгрузки в Excel и, соответственно, настроить формат ячеек в шаблоне для этого порядка. А непосредственно перед выгрузкой, приводить текущий филдкаталог в соответствие с выбранным порядком столбцов, посредством методов get_frontend_fieldcatalog и set_frontend_fieldcatalog.


Не много не понял. У нас есть ALV, на которой слева - иерархия, справа значения из таблицы. Соответственно, табличную часть мы например меняем, и столбец, который должен окрашиваться и был 10 по счету переместился скажем на 5.
В экселе же он так и останется 10, а когда данные выведутся на экран экселя на него условия не наложуться
или я что-то не так понимаю?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 13:30 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Серега Panda написал(а):
столбец, который должен окрашиваться и был 10 по счету переместился скажем на 5
Я предлагаю этот столбец снова сделать 10 по счету непосредственно перед выгрузкой (программно cl_hrpayna_gui_alv_tree->get_frontend_fieldcatalog и cl_hrpayna_gui_alv_tree->set_frontend_fieldcatalog, поле филдкалатога col_pos ).


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 13:40 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 13 2015, 17:40
Сообщения: 23
Бородин Игорь написал(а):
Серега Panda написал(а):
столбец, который должен окрашиваться и был 10 по счету переместился скажем на 5
Я предлагаю этот столбец снова сделать 10 по счету непосредственно перед выгрузкой (программно cl_hrpayna_gui_alv_tree->get_frontend_fieldcatalog и cl_hrpayna_gui_alv_tree->set_frontend_fieldcatalog, поле филдкалатога col_pos ).


А уже непосредственно в экселе он будет отображаться на 5 месте или на 10?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 13:57 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Серега Panda написал(а):
А уже непосредственно в экселе он будет отображаться на 5 месте или на 10?
на 10 конечно.

Ну вот, например, вы решили, что в Excel будут выводиться поля ВСЕГДА в следующем порядке 1-BUKRS 2-BELNR 3-GJAHR .
Значит, перед выгрузкой необходимо расставить их в этом порядке (ведь пользователь мог их переставить местами). А для этого, надо:
1) получить актуальный филдкаталог (список полей) дерева
2) подредактировать полученный филдкаталог (конкретно - поле COL_POS позиция столбца по порядку)
3) вернуть филдкаталог обратно в дерево

Code:
      DATA lt_fcat TYPE lvc_t_fcat .
      FIELD-SYMBOLS <ls_fcat> TYPE lvc_s_fcat .

      g_alv_tree->get_frontend_fieldcatalog( IMPORTING et_fieldcatalog = lt_fcat ) .
      LOOP AT lt_fcat ASSIGNING <ls_fcat> .
        CASE <ls_fcat>-fieldname .
          WHEN 'BUKRS' .  <ls_fcat>-col_pos = 1 .
          WHEN 'BELNR' .  <ls_fcat>-col_pos = 2 .
          WHEN 'GJAHR' .  <ls_fcat>-col_pos = 3 .
        ENDCASE .
      ENDLOOP .
      g_alv_tree->set_frontend_fieldcatalog( EXPORTING it_fieldcatalog = lt_fcat ) .


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 14:26 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 13 2015, 17:40
Сообщения: 23
Бородин Игорь написал(а):
Ну вот, например, вы решили, что в Excel будут выводиться поля ВСЕГДА в следующем порядке 1-BUKRS 2-BELNR 3-GJAHR .
Значит, перед выгрузкой необходимо расставить их в этом порядке (ведь пользователь мог их переставить местами). А для этого, надо:
1) получить актуальный филдкаталог (список полей) дерева
2) подредактировать полученный филдкаталог (конкретно - поле COL_POS позиция столбца по порядку)
3) вернуть филдкаталог обратно в дерево


Сделал как и сказали. И делаю примерный тест такой, что остается столбец иерархии и мой столбец, и вывожу эти данные в эксель. В результате они стоит вместе рядом, то есть столбец на 2 позиции, вместо 8 как указано в филдкаталоге


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 15:16 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Смотрите, в XLWB разбор дерева реализован элементарно:
получаем из ALV таблицу филдкаталога (вызов метода get_frontend_fieldcatalog) и сортируем по полю COL_POS, удалив "скрытые" столбцы (т.е. у которых NO_OUT = X или TECH = X ) - вот это и будет тот порядок полей, который вы увидите в Excel.

Серега Panda написал(а):
делаю примерный тест такой, что остается столбец иерархии и мой столбец... в результате...столбец на 2 позиции, вместо 8 как указано в филдкаталоге
То есть имеем в ALV один столбец (остальные скрыли) , у которого COL_POS = 8. Но он не окажется на 8 позиции, если перед ним нет других видимых полей. Чтобы он оказался на 8 позиции, необходимо иметь 7 других видимых полей, у которых COL_POS < 8 . И они, наверное, у вас есть (иначе, с чего бы возникла цифра 8 ), просто они скрыты у них NO_OUT = 'X'. В общем, там где редактируете COL_POS сделайте ещё очистку NO_OUT:
Code:
      LOOP AT lt_fcat ASSIGNING <ls_fcat> .
        CASE <ls_fcat>-fieldname .
          WHEN 'BUKRS' .  <ls_fcat>-col_pos = 1 . CLEAR <ls_fcat>-no_out .
          WHEN 'BELNR' .  <ls_fcat>-col_pos = 2 . CLEAR <ls_fcat>-no_out .
          WHEN 'GJAHR' .  <ls_fcat>-col_pos = 3 . CLEAR <ls_fcat>-no_out .
        ENDCASE .
      ENDLOOP .


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 16:39 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 13 2015, 17:40
Сообщения: 23
Так как раз проблема в том и заключается, что в экселе поля должны быть такие же как и на ALV. И если у нас на ALV был один столбец с закрашенными ячейками, то тоже самое должно быть и в экселе


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Чт, мар 03 2016, 16:54 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Ну так ведь я с этого и начал
Бородин Игорь написал(а):
Единственное, что можно сделать - это выбрать некий фиксированный порядок следования столбцов для выгрузки в Excel
установить связь формата ячейки со столбцом дерева без привязки к порядку следования столбца - это требование, к сожалению, невозможно реализовать средствами XLSX Workbench. Используйте другие способы выгрузки, их много.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Пт, мар 04 2016, 06:14 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Можно в условие условного форматирования добавить проверку на то что наименование слолбца совпадает с тем который мы ожидаем и накладывать это форматирование на всю таблицу. Абсолютная адресация ($A1) вам в этом поможет.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Пт, мар 04 2016, 09:03 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 13 2015, 17:40
Сообщения: 23
AFH написал(а):
Можно в условие условного форматирования добавить проверку на то что наименование слолбца совпадает с тем который мы ожидаем и накладывать это форматирование на всю таблицу. Абсолютная адресация ($A1) вам в этом поможет.


А не можете подсказать как задать условие данного форматирования? Пытался уже искать столбец по имени, но пока не выходило.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench  Тема решена
СообщениеДобавлено: Пт, мар 04 2016, 10:19 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Как-то так:
Code:
=И(A1<0; A$1="Нужный столбец")

Если у вас именования столбцов в первой строке. Вешать условное форматирование можно целиком на весь лист.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Настройка вывода иерархии в XLSX Workbench
СообщениеДобавлено: Пт, мар 04 2016, 10:38 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 13 2015, 17:40
Сообщения: 23
AFH написал(а):
Как-то так:
Code:
=И(A1<0; A$1="Нужный столбец")

Если у вас именования столбцов в первой строке. Вешать условное форматирование можно целиком на весь лист.


Спасибо Вам огромное! Немного подправил под свои условия и все заработало как надо! Огромное спасибо!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

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


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

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


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

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