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

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


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

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


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

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