Текущее время: Пт, апр 26 2024, 07:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Объединение ячеек в ALV Grid
СообщениеДобавлено: Пт, июл 21 2006, 12:20 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 28 2005, 08:50
Сообщения: 141
Есть ли возможность объединения ячеек в ALV-Grid?
Несколько строк в одном столбце и несколько столбцов в одной строке?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 21 2006, 13:15 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, мар 25 2005, 11:46
Сообщения: 282
Откуда: SPb
Несколько строк в одном столбце объединяются настройкой сортировки...

_________________
Лучше сделать и пожалеть, чем не сделать и потом жалеть.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 21 2006, 13:26 
Гость
можно группировать данные:
Code:

CONSTANTS:
    c_zsalv TYPE dd02l-tabname VALUE 'ZSALV_DOG', " наименование структуры вывода основного отчета

DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      gt_sortalv TYPE slis_t_sortinfo_alv WITH HEADER LINE,
      gt_group TYPE slis_t_sp_group_alv VALUE IS INITIAL WITH HEADER LINE, " occure 1."
      gs_layout TYPE slis_layout_alv,                " WITH HEADER LINE
      gt_filter TYPE slis_t_filter_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name       = c_zsalv
      i_bypassing_buffer     = true
    CHANGING
      ct_fieldcat            = gt_fieldcat[]
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2.

   
  CLEAR gt_sortalv.
  REFRESH gt_sortalv.
  gt_sortalv-fieldname = 'DOKNRDOG'.        " это 1 уровень группировки
  gt_sortalv-group = 1.
  gt_sortalv-spos  = 1.
  gt_sortalv-up    = 'X'.
  gt_sortalv-tabname = 'ZSALV_DOG'. " это 2 уровень группировки(подуровень)
  gt_sortalv-subtot = 'X'.
  APPEND gt_sortalv.
  gt_sortalv-fieldname = 'DOKNRD'.
  gt_sortalv-group = 2.
  gt_sortalv-spos  = 2.
  gt_sortalv-up    = 'X'.
  gt_sortalv-tabname = 'ZSALV_DOG'.
  gt_sortalv-subtot = 'X'.
  APPEND gt_sortalv.
  gt_sortalv-fieldname = 'DOKNRS'.
  gt_sortalv-group = 3.
  gt_sortalv-spos  = 3.
  gt_sortalv-up    = 'X'.
  gt_sortalv-tabname = 'ZSALV_DOG'.
  gt_sortalv-subtot = 'X'.
  APPEND gt_sortalv.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
      i_bypassing_buffer                = true
      i_callback_program                = report
      i_callback_pf_status_set          = 'MY_STATUS'
      i_callback_html_top_of_page       = 'NACHALO'
      i_callback_user_command           = 'OTZYV'
      is_layout                         = gs_layout
      it_fieldcat                       = gt_fieldcat[]
      it_sort                           = gt_sortalv[]
      it_filter                         = gt_filter[]
      i_save                            = 'U'
    TABLES
      t_outtab                          =  t_dog2



Если именно это вам нужно.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Объединение ячеек в ALV Grid
СообщениеДобавлено: Ср, фев 17 2021, 15:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Таки есть! Вот ведь, век живи - век учись.
Один немец нащупал:
https://tricktresor.de/blog/zellen-verbinden/

Однако, с ограничениями функциональности ALV GRID, придётся отказаться от сортировки и фильтрации, и только текстовые поля.
Его вариант работает только с маленькими отчётами, когда ALV Grid не нужна онлайн-подкачка данных при скроллинге.

Я нашёл решение, в общем идея понятна, остальную обвязку (структуру и заполнение gt_Merge_Cell) каждый сам себе сочинит.

Для нормальной работы нужно переопределить метод CL_GUI_ALV_GRID->On_Before_Send:
Code:
Method On_Before_Send.
  Data:
    lv_Col type I.
  Field-Symbols:
    <mergecell> like line of gt_Merge_Cell,
    <mtdata>    like line of Mt_Data,
    <mtinfo>    like line of Mt_Info.

  Call method Super->On_Before_Send
    exporting
      Firstline = Firstline
      Lastline  = Lastline.

*( обработка объединённых ячееек
  Loop at Mt_Data assigning <mtdata>.
    Read table mt_info assigning <mtinfo> index <mtdata>-Col_Pos.
    check sy-subrc = 0.
    lv_Col = <mtinfo>-Col_Id - 1.

    Read table gt_Merge_Cell assigning <mergecell>
      with key Row = <mtdata>-Row_Id "Row_Pos
               Col = lv_Col. "<mtdata>-Col_Pos.
    If sy-subrc = 0.
      <mtdata>-Mergehoriz = <mergecell>-Horz.
      <mtdata>-Mergevert  = <mergecell>-Vert.
    EndIf.
  EndLoop.
*)
EndMethod.


Эх! Ещё бы переносы текста и продление его поверх других ячеек. :-)

Изображение

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объединение ячеек в ALV Grid
СообщениеДобавлено: Пт, фев 19 2021, 17:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Обновил код метода для обработки скрытых строк и столбцов.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объединение ячеек в ALV Grid
СообщениеДобавлено: Пн, фев 22 2021, 17:55 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Объединение делается через стили.
Но пользователь может сделать вариант с другим порядком столбцов или сортировкой
и где будет вся красота?


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

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


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

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


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

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