использую:
REUSE_ALV_GRID_DISPLAY
slis_layout_alv
Проблема:
при редактировании записи в гриде, после чего рефрешу грид используя:
data: rs_selfield type slis_selfield.
...
rs_selfield-refresh = 'X'.
...
и курсор прыгает в начало грида, как сделать что бы оно оставалось на месте?
Ну или посоветуйте способ вывода АЛВ грида, где есть такая возможность?
Эххх, Sed0Y... Плохо! Чем вы уже несколько лет там занимаетесь?
Во-первых, есть куча демонстрационных программ BCALV_* (BCALV_GRID_EDIT* - ваш случай). Также можете посмотреть пакет SLIS. Отгуглите "An Easy Reference For ALV Grid Control".
В объектном гриде для обновления используется метод:
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 ). " т.н. "мягкое обновление", хранение сортировки и т.д.
Так же можно получить ссылку на указанный выше объект используя ФМ (использование обсуждалось на этом форуме), после чего попробовать воспользоваться методом класса:
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' ).
Но должно быть что-то для функции...
Цитата: Dmitriy від Листопад 26, 2012, 07:20:22 ПП
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. Ну мне чего-то так кажется :-\
Цитата: Uukrul від Листопад 26, 2012, 09:57:09 ПП
Вообще по факту REUSE_ALV_GRID_DISPLAY сейчас вызывает тот же самый объектный ALV, так что не думаю, что поможет, так как вот это вот rs_selfield-refresh = 'X', реализовано наверное, через тоже самое is_stable. Ну мне чего-то так кажется :-\
Да нашел (http://www.apentia-forum.de/viewtopic.php?t=9947) вроде в сети, пусть пробует.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.Эххх,
Sed0Y... :o
Цитата: Uukrul від Листопад 26, 2012, 09:57:09 ПП
Вообще по факту REUSE_ALV_GRID_DISPLAY сейчас вызывает тот же самый объектный ALV
Да не знаю, я 6 лет уже этот ФМ не юзал, предпочитаю классику.
Ну и CL_SALV_TABLE для получения каталога полей таблицы, объявленной ч/з тип, без структуры в СД:
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)Не помню, есть у тебя в параллельной теме это, или нет...
Цитата: Dmitriy від Листопад 26, 2012, 10:10:29 ПП
Да нашел (http://www.apentia-forum.de/viewtopic.php?t=9947) вроде в сети, пусть пробует.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
Эххх, Sed0Y... :o
хе хе :) Сработало! Это оно!
Спасибо Вам Dmitriy, и Вам Uukrul.
Цитата: Dmitriy від Листопад 26, 2012, 07:20:22 ПП
Эххх, Sed0Y... Плохо! Чем вы уже несколько лет там занимаетесь?
А по поводу этого, ну я давно уже не пишу отчеты, занимался отчетами только первых года 1,5, как Вы понимаете за этот срок я все усвоить не мог и тем более запомнить
Цитата: Sed0Y від Листопад 27, 2012, 10:38:35 ДП
я давно уже не пишу отчеты, занимался отчетами только первых года 1,5, как Вы понимаете за этот срок я все усвоить не мог и тем более запомнить
Понятно. А то начали возникать уже мысли, что Вы Родину позорите! 8)
Цитата: Dmitriy від Листопад 26, 2012, 10:18:01 ПП
Да не знаю, я 6 лет уже этот ФМ не юзал, предпочитаю классику.
...
предпочитаю классику. - это с помощью cl_gui_alv_grid? или как?