Текущее время: Вс, июл 27 2025, 18:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Опять ALV_GRID
СообщениеДобавлено: Вс, фев 24 2013, 11:38 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Господа!
Вопрос. Есть АЛВ ГРИД.
Хочу сделать при добавлении позиции автоподставление значений в некоторые поля. Сделал подстановку в событии DATA_CHANGED. И тут оказалось что все работает когда в АЛВ отображается мало строк. а когда много, то новая строка добавляется в кенец. АЛВ туда прокручиватся, но событие DATA_CHANGED не срабатывает. Если тут же нажать еще раз добавление позиции, то DATA_CHANGED срабатывает с двумя новыми строками.
Решил после вызова set_table_for_first_display прокрутиться в конец. DATA_CHANGED стал срабатывать при первом нажатии на кнопку добавления позиции. Но мне не нравится что при отображении АЛВ отображается не сначала. Попробовал после отображения прокруться вниз и сразу вверх. Опять перестал срабатывать DATA_CHANGED при первом добавлении. Как-то это можно решить не рисуя свою кнопку добавления позиции?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Опять ALV_GRID
СообщениеДобавлено: Пн, фев 25 2013, 08:36 
Ассистент
Ассистент

Зарегистрирован:
Чт, июл 08 2010, 07:35
Сообщения: 42
Пол: Мужской
Добрый день!
Попробуйте событие data_changed_finished.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять ALV_GRID
СообщениеДобавлено: Пн, фев 25 2013, 20:38 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
В нем нужно будет вызывать рефреш грида. А этого хотелось избежать.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Опять ALV_GRID
СообщениеДобавлено: Пн, мар 04 2013, 07:51 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 07 2011, 14:49
Сообщения: 6
Пол: Мужской
А что если после нажатии на кнопку добавления позиции:
вычислить добавленную строку, сделать рефреш и позиционировать на вычисленную строку?
Для примера, если мы хотим вернуться на туже ячейку, которая была выделена до рефреша:
DATA ls_lvc_s_row TYPE lvc_s_row.
DATA ls_lvc_s_col TYPE lvc_s_col.

CALL METHOD alv_grid->get_current_cell
IMPORTING
es_row_id = ls_lvc_s_row
es_col_id = ls_lvc_s_col.

CALL METHOD alv_grid->refresh_table_display.

CALL METHOD alv_grid->set_current_cell_via_id
EXPORTING
is_row_id = ls_lvc_s_row
is_column_id = ls_lvc_s_col.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Опять ALV_GRID
СообщениеДобавлено: Пн, мар 04 2013, 13:41 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 11 2011, 15:15
Сообщения: 14
Есть 2 способа добавлять строку
INSERT
APPEND

оставить кнопку INSERT, тогда будет добавление после текущей.

Code:
form exclude_tb_functions changing pt_exclude type ui_functions.
  data ls_exclude type ui_func.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.   " исключить кнопку APPEND
  append ls_exclude to pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.     " исключить кнопку INSERT
  append ls_exclude to pt_exclude.

endform.                               " EXCLUDE_TB_FUNCTIONS



Вызов :
Code:
* Exclude all edit functions in this example since we do not need them:
  perform exclude_tb_functions changing lt_exclude.



это из примера BCALV_EDIT_05 пакет SLIS.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Опять ALV_GRID
СообщениеДобавлено: Пн, мар 04 2013, 20:06 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Цитата:
А что если после нажатии на кнопку добавления позиции:
вычислить добавленную строку, сделать рефреш и позиционировать на вычисленную строку?


хочется без рефреша.

Цитата:
оставить кнопку INSERT, тогда будет добавление после текущей.

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

Просто сам факт кривости грида какой-то.

Еще вчера обнаружил такую вещь.
Есть грид. В нем поле, в домене которого прописаны значения (пустого значения нет). При добавлении позиции отрабатывает DATA_CHANGED, но не вызывается DATA_CHANGED_FINISHED (ругается что-то типа "Введите действительное значение". Это если протокол не чистить), хотя в DATA_CHANGED я протокол ошибок полностью очищаю. Но если очистить ref_table в каталоге для этого поля и чистить протокол, то DATA_CHANGED_FINISHED уже вызывается.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Опять ALV_GRID
СообщениеДобавлено: Чт, мар 14 2013, 12:39 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, янв 30 2007, 10:59
Сообщения: 61
Для ввода большого числа данных я предпочитаю использовать экранные таблицы вместо грида. В гриде больше проблем. А для таблиц я сделал универсальный инклюд на основе саповского tabscreen wizard - что-то вроде класса для экранных таблиц, и их создание и обработка теперь не сложнее грида.

_________________
Блаженны прыгающие, ибо они допрыгаются.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять ALV_GRID
СообщениеДобавлено: Пт, мар 15 2013, 10:02 
Директор
Директор

Зарегистрирован:
Вт, ноя 09 2010, 19:59
Сообщения: 792
Откуда: Novosibirsk
Пол: Мужской
всем доброго времени суток!

мне вот любопытно...
насколько сильно изменится работа с ALV_GRID с учетом With NW 7.40 SP02 we will release a new version of ALV ?
Code:
The classic ALV works on an internal table, created and filled by the application developer, and provides all the nice features like sorting, filtering, grouping and aggreation, single und multi selection, user functions and so on.

The new ALV changes this paradigm in integrating the data access. This allows us to push down features like authority checks, paging, sorting, aggregation and grouping to the database. We select only the data which is necessary for the actual page.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять ALV_GRID
СообщениеДобавлено: Сб, мар 16 2013, 00:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
jack_nsk написал:
насколько сильно изменится работа с ALV_GRID с учетом With NW 7.40 SP02 we will release a new version of ALV ?

1.Новичкам станет немного легче. А опытные ABAP-еры проверку полномочий стараются делать до выборки ;)
2.Как и все универсальное, такой подход будет работать медленнее, чем оптимизация в каждом конкретном случае.
Именно поэтому такую фичу прикрутили на Хану, чтобы нивелировать издержки.

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Опять ALV_GRID  Тема решена
СообщениеДобавлено: Сб, мар 16 2013, 15:04 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Цитата:
The new ALV changes this paradigm in integrating the data access. This allows us to push down features like authority checks, paging, sorting, aggregation and grouping to the database. We select only the data which is necessary for the actual page.
Code:
"Instantiate ALV
lo_alv_display = cl_salv_gui_table_ida=>create( iv_table_name    = 'SFLIGHT'
                                                io_gui_container = lo_container_d0555 ).
"Add authorization to the data selection
lo_alv_display->add_authorization_for_object( iv_authorization_object = 'S_CARRID'
                                              it_activities           = VALUE #( ( auth_field = 'ACTVT' value = '03' ) )
                                              it_field_mapping        = VALUE # ( auth_field = 'CARRID' view_field = 'CARRID' ) ) ).

Что-то я не догоняю, этот новый ALV сможет отображать только одну табличку/ракурс (но зачем он тогда нужен, ведь такие примитивные отчеты все-таки довольно редко встречаются)?
Или предполагается денормализовывать базу и для ключевых отчетов заполнять отдельной логикой таблички (наподобие спецрегистров)?
Такое ощущение, что просто бантики накручивают. Сделали бы уж html5 контейнеры лучше.


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

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


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

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


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

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