Текущее время: Вт, июл 22 2025, 10:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: сохранить выделение строк в ALV после обновления грида
СообщениеДобавлено: Вт, мар 03 2009, 12:42 
Специалист
Специалист

Зарегистрирован:
Вт, мар 18 2008, 10:21
Сообщения: 136
Откуда: краснодар
Имеется следующая рабочая конструкция (возможно она неправильно реализована)
Code:
FORM DISPLAY_ALV_MAIN_GRID .
  G_VAR = 'M'.
  CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_LAYOUT       = G_LAYOT
      I_SAVE          = X_SAVE
      is_variant      = SPEC_LAYOUT
    CHANGING
      IT_OUTTAB       = itab[]
      IT_FIELDCATALOG = ALV_FIELDCATALOG
      IT_SORT         = G_SORT.
  CALL METHOD cl_gui_control=>set_focus
    EXPORTING
      control = grid.
ENDFORM.                    " DISPLAY_ALV_FACTUR_GRID

и
Code:
FORM DISPLAY_ALV_FACTUR_GRID_MM .
  G_VAR = 'F'.
  CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_LAYOUT       = G_LAYOT_F
      I_SAVE          = X_SAVE
      is_variant      = SPEC_LAYOUT_MM_F
    CHANGING
      IT_OUTTAB       = gf_itab[]
      IT_FIELDCATALOG = ALV_FIELDCATALOG_F
      IT_SORT         = G_SORT_F.
  CALL METHOD cl_gui_control=>set_focus
    EXPORTING
      control = GRID.
ENDFORM.                    " DISPLAY_ALV_FACTUR_GRID


Работает это следующим образом.
1. Запускается первоначально грид отчета PERFORM DISPLAY_ALV_MAIN_GRID
2. Далее пользователь выделяет интересующую группу строк в гриде, вызывает соответствующий подробный список итога PERFORM DISPLAY_ALV_FACTUR_GRID, анализирует подробный список
3. Далее по back возвращается назад в результате опять срабатывает PERFORM DISPLAY_ALV_MAIN_GRID
Проблема состоит в том что выделения строчек которые были сделаны в п.1 грид не сохраняет, как сделать чтобы сохранял? Может какой параметр активировать? или может поменять конструкцию в п.2 вместо SET_TABLE_FOR_FIRST_DISPLAY?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: сохранить выделение строк в ALV после обновления грида
СообщениеДобавлено: Вт, мар 03 2009, 12:58 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Ну в методе не зря написано FIRST.

Юзайте REFRESH_TABLE_DISPLAY


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: сохранить выделение строк в ALV после обновления грида
СообщениеДобавлено: Вт, мар 03 2009, 13:14 
Специалист
Специалист

Зарегистрирован:
Вт, мар 18 2008, 10:21
Сообщения: 136
Откуда: краснодар
Пономарев Артем написал:
Ну в методе не зря написано FIRST.

Юзайте REFRESH_TABLE_DISPLAY


А можно поподробнее пожалуйста, как использовать REFRESH_TABLE_DISPLAY в моей конструкции, у меня используется один и тот же грид но разные филдкаталоги их порядка 8-10


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: сохранить выделение строк в ALV после обновления грида
СообщениеДобавлено: Вт, мар 03 2009, 13:35 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Ну тогда SET_SELECTED_CELLS, SET_SELECTED_COLUMNS, SET_SELECTED_ROWS.
И запоминать чего там было выделено до этого.


Последний раз редактировалось Пономарев Артем Вт, мар 03 2009, 14:38, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: сохранить выделение строк в ALV после обновления грида
СообщениеДобавлено: Вт, мар 03 2009, 13:39 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, окт 27 2008, 16:21
Сообщения: 33
Откуда: Москва
Пол: Мужской
Не уверен что REFRESH_TABLE_DISPLAY поможет в данном случае. Когда с экрана на экарн не прыгаешь то да, нужно заполнить структурку:

Code:
  DATA: ls_stab     TYPE lvc_s_stbl.
  ls_stab-row = 'X'.
  ls_stab-col = 'X'.

  CALL METHOD gr_alvgrid->refresh_table_display
    EXPORTING
      is_stable      = ls_stab
      i_soft_refresh = 'X'
    EXCEPTIONS
      finished       = 1
      OTHERS         = 2.


И перерисовка пройдет "мякго", добавленые строки добавятся, измененные - изменятся. а строка с фокусом так и сотанется строкой с фокусом.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: сохранить выделение строк в ALV после обновления грида
СообщениеДобавлено: Вт, мар 03 2009, 15:32 
Специалист
Специалист

Зарегистрирован:
Вт, мар 18 2008, 10:21
Сообщения: 136
Откуда: краснодар
Всем спасибо
GET(SET)_SELECTED_ROWS помогли


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

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


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

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


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

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