Текущее время: Чт, июн 19 2025, 03:56

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Обновление в ALV
СообщениеДобавлено: Пт, мар 02 2012, 13:22 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 07:19
Сообщения: 129
Пол: Мужской
Всем привет!
Подскажите как обновить ALV в одной строке, использую ФМ (REUSE_ALV_GRID_DISPLAY_LVC) в нем срабатывает событие data_changed. На ячеике в ALV повешено ср поиска - все шикарно работает, проблемка в том что при заполнении следующей ячейки параметр row-id становится опять 1 хотя заполнял строку 2,3 и т.д., в конце формы обновляю CALL METHOD L_GRID->REFRESH_TABLE_DISPLAY. Если уберу обновление то моя вн таб заполняется данными как надо но экран пуст. Если использую обновление то параметр row-id постоянно равен 1, как мне обойти эту проблему..?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Пт, мар 02 2012, 14:06 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
что вы обрабатываете в data_changed?
приведите код


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Пт, мар 02 2012, 14:17 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 07:19
Сообщения: 129
Пол: Мужской
FORM DATA_CHANGED using rr_data_changed type REF TO cl_alv_changed_data_protocol.

data: ls_cell type lvc_s_modi.

*CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
* IMPORTING
* E_GRID = L_GRID.

loop at rr_data_changed->mt_mod_cells into ls_cell.

CASE ls_cell-fieldname.
WHEN 'KUNNR'.

Clear: kna1.
wa_tb2-kunnr = ls_cell-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_tb2-kunnr
IMPORTING
OUTPUT = wa_tb2-kunnr.

SELECT SINGLE * from kna1 where kunnr = wa_tb2-kunnr.

IF sy-subrc = 0.
wa_tb2-stcd1 = kna1-stcd1.
wa_tb2-name1 = kna1-name2.
ELSE.
wa_tb2-name1 = 'Поля пустые'.
endif.
MODIFY wa_tb2_ INDEX ls_cell-row_id from wa_tb2 TRANSPORTING kunnr stcd1 name1.
WHEN 'FICTR'.
wa_tb2-fictr = ls_cell-value.
MODIFY wa_tb2_ INDEX ls_cell-row_id from wa_tb2 TRANSPORTING fictr.

ENDCASE.
ENDLOOP.
*CALL METHOD L_GRID->REFRESH_TABLE_DISPLAY.
ENDFORM.

по номеру кл заполняю РНН и наименование кл,


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Пт, мар 02 2012, 14:35 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
попробуйте вызвать метод rr_data_changed->MODIFY_CELL для изменения содержимого ячеек экрана, без вызова обновления .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Пт, мар 02 2012, 16:17 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 07:19
Сообщения: 129
Пол: Мужской
в нем нет этого метода, или по точнее можно описать...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Пт, мар 02 2012, 17:40 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
Malych написал:
в нем нет этого метода, или по точнее можно описать...

как же нет?
класс CL_ALV_CHANGED_DATA_PROTOCOL метод MODIFY_CELL.
в подпрограмму DATA_CHANGED передается rr_data_changed type REF TO cl_alv_changed_data_protocol.
надо вызвать
Code:
call method rr_data_changed->modify_cell
exporting i_row_id =  ls_cell-row_id
i_fieldname = 'FICTR'
i_value = wa_tb2-fictr.


как-то так


Последний раз редактировалось bossjohn Пт, мар 02 2012, 17:42, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Сб, мар 03 2012, 22:51 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 07:19
Сообщения: 129
Пол: Мужской
Да, спутал, делал так, в отладке когда этот метод срабатывает отчет виснет...и приходиться выходить принудительно.. :( только указывал без параметров просто call method rr_data_changed->modify_cell, может в этом дело - попробую..!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Пн, мар 05 2012, 08:32 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 07:19
Сообщения: 129
Пол: Мужской
такой вариант, тож не срабатывает автоматом...сделал проще, повешал кнопку обновления и вызываю форму с ( CALL METHOD l_grid->REFRESH_TABLE_DISPLAY.) - работает...!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Пн, мар 05 2012, 09:52 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
Malych написал:
такой вариант, тож не срабатывает автоматом...сделал проще, повешал кнопку обновления и вызываю форму с ( CALL METHOD l_grid->REFRESH_TABLE_DISPLAY.) - работает...!

что значит не срабатывает автоматом? не обновляется поле на экране?
странно, должно работать


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Пн, мар 05 2012, 12:01 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 07:19
Сообщения: 129
Пол: Мужской
идея такова, после выбора номера кл, сразу же заполнить нужные поля,так не получилось...пришлось вешать кнп "обновить", т.е. в ячейке указали значение и нажали обновить все подтягивается.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Ср, мар 07 2012, 15:35 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
MODIFY_CELL должен поля в АЛВ обновлять. Скорее что-то не так делаете.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление в ALV
СообщениеДобавлено: Вс, мар 25 2012, 10:57 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
+1 к modify_cell, по-моему самый нормальный способ, без доп кнопки обновить конечно. Возможно в modify_cell название поля маленькими буквами написано.
Можете глянуть BCALV_EDIT_03 + зарегистрировать MC_EVT_ENTER и mc_evt_modified.

Как СП повесили на ячейку АЛВ? Можно через глобальную структуру повесить СП на клиента, чтобы оно экспортировало РНН. На основе этой структуры создать каталог полей и при выборе клиента по F4, АЛВ ячейка РНН автоматом заполнится.

Еще как вариант
Code:
  field-symbols <ft> type standard table.
  field-symbols <ft2> like line of ваша таблица.
  assign data_changed->mp_mod_rows->* to <ft>.
  read table <ft> index 1 assigning <ft2>.
  <ft2>-ваше поле = 'ыва'.


Можно еще решить это через data_change_finished, но там свои минусы.


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

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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