Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: Sed0Y от Ноябрь 23, 2012, 06:22:35 pm

Название: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Sed0Y от Ноябрь 23, 2012, 06:22:35 pm
использую:
   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'.
...

и курсор прыгает в начало грида, как сделать что бы оно оставалось на месте?
Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Sed0Y от Ноябрь 26, 2012, 01:39:06 pm
Ну или посоветуйте способ вывода АЛВ грида, где есть такая возможность?
Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Dmitriy от Ноябрь 26, 2012, 07:20:22 pm
Эххх, 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 ). " т.н. "мягкое обновление", хранение сортировки и т.д.



Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Dmitriy от Ноябрь 26, 2012, 09:55:39 pm
Так же можно получить ссылку на указанный выше объект используя ФМ (использование обсуждалось на этом форуме), после чего попробовать воспользоваться методом класса:
Код: 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' ).
Но должно быть что-то для функции...
Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Uukrul от Ноябрь 26, 2012, 09:57:09 pm
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. Ну мне чего-то так  кажется  :-\
Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Dmitriy от Ноябрь 26, 2012, 10:10:29 pm
You are not allowed to view links. Register or Login
Вообще по факту REUSE_ALV_GRID_DISPLAY сейчас вызывает тот же самый объектный ALV, так что не думаю, что поможет, так как вот это вот rs_selfield-refresh = 'X', реализовано наверное, через тоже самое is_stable. Ну мне чего-то так  кажется  :-\
Да нашел (http://www.apentia-forum.de/viewtopic.php?t=9947) вроде в сети, пусть пробует.
Код: You are not allowed to view links. Register or Login
rs_selfield-col_stable = 'X'.       
rs_selfield-row_stable = 'X'.
Эххх, Sed0Y... :o
Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Dmitriy от Ноябрь 26, 2012, 10:18:01 pm
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)
Не помню, есть у тебя в параллельной теме это, или нет...
Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Sed0Y от Ноябрь 27, 2012, 10:38:35 am
You are not allowed to view links. Register or Login
Да нашел (http://www.apentia-forum.de/viewtopic.php?t=9947) вроде в сети, пусть пробует.
Код: 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, как Вы понимаете за этот срок я все усвоить не мог и тем более запомнить
Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Dmitriy от Ноябрь 27, 2012, 05:20:12 pm
You are not allowed to view links. Register or Login
я давно уже не пишу отчеты, занимался отчетами только первых года 1,5, как Вы понимаете за этот срок я все усвоить не мог и тем более запомнить
Понятно. А то начали возникать уже мысли, что Вы Родину позорите! 8)
Название: Re: REUSE_ALV_GRID_DISPLAY - проблема перехода в начало грида
Отправлено: Sed0Y от Декабрь 03, 2012, 01:52:05 am
You are not allowed to view links. Register or Login
Да не знаю, я 6 лет уже этот ФМ не юзал, предпочитаю классику.
...

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