Текущее время: Ср, апр 24 2024, 14:15

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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