Текущее время: Ср, июн 18 2025, 23:15

Часовой пояс: 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 часа


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

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


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

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