Текущее время: Чт, мар 04 2021, 16:27

Часовой пояс: 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
Сообщения: 1933
Откуда: Москва
Пол: Мужской
Таки есть! Вот ведь, век живи - век учись.
Один немец нащупал:
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
Сообщения: 1933
Откуда: Москва
Пол: Мужской
Обновил код метода для обработки скрытых строк и столбцов.

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


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

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


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

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


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

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


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

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