Автор Тема: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида  (Прочитано 12932 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
использую:
   REUSE_ALV_GRID_DISPLAY
   slis_layout_alv

Проблема:
при редактировании записи в гриде, после чего рефрешу грид используя:
Код: You are not allowed to view links. Register or Login
data: rs_selfield type slis_selfield.
...
rs_selfield-refresh = 'X'.
...

и курсор прыгает в начало грида, как сделать что бы оно оставалось на месте?
« Последнее редактирование: Ноябрь 23, 2012, 06:26:25 pm от Sed0Y »

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Ну или посоветуйте способ вывода АЛВ грида, где есть такая возможность?

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Эххх, Sed0Y... Плохо! Чем вы уже несколько лет там занимаетесь?
Во-первых, есть куча демонстрационных программ BCALV_* (BCALV_GRID_EDIT* - ваш случай). Также можете посмотреть пакет SLIS. Отгуглите "An Easy Reference For ALV Grid Control".
В объектном гриде для обновления используется метод:
Код: You are not allowed to view links. Register or Login
DATA: go_grid TYPE REF TO cl_gui_alv_grid,
      gs_stbl TYPE lvc_s_stbl VALUE 'XX'.
...
go_grid->refresh_table_display( is_stable = gs_stbl      " хранение положения прокрутки
                           i_soft_refresh = abap_true ). " т.н. "мягкое обновление", хранение сортировки и т.д.



« Последнее редактирование: Ноябрь 26, 2012, 09:58:33 pm от Dmitriy »

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Так же можно получить ссылку на указанный выше объект используя ФМ (использование обсуждалось на этом форуме), после чего попробовать воспользоваться методом класса:
Код: You are not allowed to view links. Register or Login
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = li_grid.

li_grid->refresh_table_display( is_stable = gs_stbl i_soft_refresh = 'X' ).
Но должно быть что-то для функции...
« Последнее редактирование: Ноябрь 26, 2012, 10:07:58 pm от Dmitriy »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 780
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Код: You are not allowed to view links. Register or Login
go_grid->refresh_table_display( is_stable = gs_stbl      " хранение положения прокрутки
                           i_soft_refresh = abap_true ). " т.н. "мягкое обновление", хранение сортировки и т.д.
Вообще по факту REUSE_ALV_GRID_DISPLAY сейчас вызывает тот же самый объектный ALV, так что не думаю, что поможет, так как вот это вот rs_selfield-refresh = 'X', реализовано наверное, через тоже самое is_stable. Ну мне чего-то так  кажется  :-\

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
Вообще по факту REUSE_ALV_GRID_DISPLAY сейчас вызывает тот же самый объектный ALV, так что не думаю, что поможет, так как вот это вот rs_selfield-refresh = 'X', реализовано наверное, через тоже самое is_stable. Ну мне чего-то так  кажется  :-\
Да You are not allowed to view links. Register or Login вроде в сети, пусть пробует.
Код: You are not allowed to view links. Register or Login
rs_selfield-col_stable = 'X'.       
rs_selfield-row_stable = 'X'.
Эххх, Sed0Y... :o
« Последнее редактирование: Ноябрь 26, 2012, 10:13:46 pm от Dmitriy »

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
Вообще по факту REUSE_ALV_GRID_DISPLAY сейчас вызывает тот же самый объектный ALV
Да не знаю, я 6 лет уже этот ФМ не юзал, предпочитаю классику.
Ну и CL_SALV_TABLE для получения каталога полей таблицы, объявленной ч/з тип, без структуры в СД:
Код: You are not allowed to view links. Register or Login

 DATA: lo_table      TYPE REF TO cl_salv_table,
            lo_cols       TYPE REF TO cl_salv_columns_table,
            lo_aggr      TYPE REF TO cl_salv_aggregations.

  DATA: lt_fcat  TYPE slis_t_fieldcat_alv. " это для ФМ 'REUSE_ALV_GRID_DISPLAY'

* Формируем филд-каталог
  TRY.
      cl_salv_table=>factory(
        IMPORTING
          r_salv_table = lo_table
        CHANGING
          t_table      = gt_data[] ). " Наша внутр. таблица, объявленная ч/з тип
    CATCH cx_salv_msg .
      EXIT.
  ENDTRY.
  lo_aggr = lo_table->get_aggregations( ).
  lo_cols = lo_table->get_columns( ).
  lt_fcat = cl_salv_controller_metadata=>get_slis_fieldcatalog( r_columns = lo_cols r_aggregations = lo_aggr ).
  FREE: lo_aggr, lo_cols, lo_table.

* Можно также получить каталог LVC (если используется класс cl_gui_alv_grid) – метод get_lvc_fieldcatalog (тип таблицы каталога  lvc_t_fcat)
Не помню, есть у тебя в параллельной теме это, или нет...
« Последнее редактирование: Ноябрь 26, 2012, 10:20:26 pm от Dmitriy »

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
Да You are not allowed to view links. Register or Login вроде в сети, пусть пробует.
Код: You are not allowed to view links. Register or Login
rs_selfield-col_stable = 'X'.       
rs_selfield-row_stable = 'X'.
Эххх, Sed0Y... :o

хе хе :) Сработало! Это оно!
Спасибо Вам Dmitriy, и Вам Uukrul.

You are not allowed to view links. Register or Login
Эххх, Sed0Y... Плохо! Чем вы уже несколько лет там занимаетесь?

А по поводу этого, ну я давно уже не пишу отчеты, занимался отчетами только первых года 1,5, как Вы понимаете за этот срок я все усвоить не мог и тем более запомнить

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
я давно уже не пишу отчеты, занимался отчетами только первых года 1,5, как Вы понимаете за этот срок я все усвоить не мог и тем более запомнить
Понятно. А то начали возникать уже мысли, что Вы Родину позорите! 8)

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
« Ответ #9 : Декабрь 03, 2012, 01:52:05 am »
You are not allowed to view links. Register or Login
Да не знаю, я 6 лет уже этот ФМ не юзал, предпочитаю классику.
...

 предпочитаю классику. -  это с помощью cl_gui_alv_grid? или как?