Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Wed Jan 23, 2013 9:46 am Post subject: Обновления полей экрана из обработчика событий ALV
Всем привет. Алв расположен на одной из закладок экрана. На этой же закладке есть различные поля.
На АЛВ собственные кнопки. По нажатию на одну из них, попадаем в хендлер, там происходит расчет, обновляются данные таблицы АЛВ, и должны обновиться поля на той же закладке. Через DYNP_VALUES_UPDATE не обновляется(кто знает механизм, как работает этот ФМ, отпишитесь). Можно вызвать SAPGUI_SET_FUNCTIONCODE, тогда попадем в PAI подэкрана с АЛВ, где я "обновил" поля, но тут же с редактируемых полей "старые" значения с экрана перетрут то что я рассчитал.
Можно конечно сделать обновление через этот фм с использованием промежуточной глобальной струкруры, но мне бы хотелось найти более элегантный способ решение данной проблемы.
Спасибо. _________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Wed Jan 23, 2013 10:24 am Post subject:
Можно конечно. Только ставить флаг для расчета по кнопке, потом в PAI считывать этот флаг, делать расчет, и стирать флаг.
Некоторые поля открыты для ввода открыты не просто так. Пользователь может руками вбить цифры, отличные от расчета. _________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Wed Jan 23, 2013 2:36 pm Post subject:
Спасибо, помогло. Правда появился смешной побочный эффект. По разбираюсь с ним, если это не мой "косяк" то напишу что именно произошло )). _________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Thu Jan 24, 2013 6:03 pm Post subject:
Теперь про побочный эффект. Когда обновляю с помощью этого ФМ-а метки(поле только для вывода кажется это называется) все буквы становятся БОЛЬШИМИ. Интересно это фича такая, или можно как нибудь побороть нормально. Могу конечно обновить такие поля другим способом, но может кто нибудь знает подробности, или встречал такое поведение.
Строка передаваемая в ФМ
Code:
GS_TEXT_0200-CALC_STAT_TEXT 0 Рассчитано
На экран попадает
Code:
РАССЧИТАНО
_________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Теперь про побочный эффект. Когда обновляю с помощью этого ФМ-а метки(поле только для вывода кажется это называется) все буквы становятся БОЛЬШИМИ. Интересно это фича такая, или можно как нибудь побороть нормально. Могу конечно обновить такие поля другим способом, но может кто нибудь знает подробности, или встречал такое поведение.
Строка передаваемая в ФМ
Code:
GS_TEXT_0200-CALC_STAT_TEXT 0 Рассчитано
На экран попадает
Code:
РАССЧИТАНО
Возможно из-за того, что домен не поддерживает строчные буквы
Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Fri Jan 25, 2013 11:24 am Post subject:
да если бы все было так просто....
На экране точно поддерживает, при обновлении другим механизмом все корректно.
Хотя сейчас проведу тест, вы натолкнули меня на одну мыслишку...
Не знаю что делать. выгружал в различные поля с различными свойствами результат всюду один и тот же все тексты большими буквами.
В конце модуля происходит вызов системной функции
Code:
call 'HELP_PUT_FIELD' id 'DYNAME' field dyname
id 'DYNUMB' field dynumb
id 'REQUEST' field request
id 'SSF' field SEARCH_OWN_SUBSCREENS_FIRST
id 'PROOT' field proot
id 'STACKPOS' field start_search_on_scr_stackpos
id 'PATH' field searchpath_of_subscreen_areas
id 'DYNPFLD' field 'DYNP_UPDATE_FIELDS'
id 'ABAPFLD' field 'DYNP_UPDATE_FIELDS'. "#EC CI_CCALL
После нее даже в логику программы не возвращается, чтобы можно было что то подправить.
Видимо с этими ФМ-ом мне не попути.
Есть еще предложения? как можно обновить поля? _________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Age: 46 Joined: 22 Aug 2013 Posts: 27 Location: г. Жлобин, Республика Беларусь
Posted: Wed Sep 25, 2013 1:41 am Post subject:
XXX_:) wrote:
да если бы все было так просто....
На экране точно поддерживает, при обновлении другим механизмом все корректно.
Хотя сейчас проведу тест, вы натолкнули меня на одну мыслишку...
Не знаю что делать. выгружал в различные поля с различными свойствами результат всюду один и тот же все тексты большими буквами.
В конце модуля происходит вызов системной функции
Code:
call 'HELP_PUT_FIELD' id 'DYNAME' field dyname
id 'DYNUMB' field dynumb
id 'REQUEST' field request
id 'SSF' field SEARCH_OWN_SUBSCREENS_FIRST
id 'PROOT' field proot
id 'STACKPOS' field start_search_on_scr_stackpos
id 'PATH' field searchpath_of_subscreen_areas
id 'DYNPFLD' field 'DYNP_UPDATE_FIELDS'
id 'ABAPFLD' field 'DYNP_UPDATE_FIELDS'. "#EC CI_CCALL
После нее даже в логику программы не возвращается, чтобы можно было что то подправить.
Видимо с этими ФМ-ом мне не попути.
Есть еще предложения? как можно обновить поля?
После того как сделали обновление таблицы в рамках handlerа, которую отображает ALV, вызовите метод alv, отвечающий за перерисовку, т. е. REFRESH_TABLE_DISPLAY c заполнением IS_STABLE на входе. Или же считайте где стоит курсор (GET_CURRENT_CELL), затем обновить содержимое (REFRESH_TABLE_DISPLAY) и установите курсор заново (SET_CURRENT_CELL_VIA_ID). Первый вариант вроде лучше. _________________ Когда другие слепо следуют за истиной, помни - ничто не истина.
да если бы все было так просто....
На экране точно поддерживает, при обновлении другим механизмом все корректно.
Хотя сейчас проведу тест, вы натолкнули меня на одну мыслишку...
Не знаю что делать. выгружал в различные поля с различными свойствами результат всюду один и тот же все тексты большими буквами.
В конце модуля происходит вызов системной функции
Code:
call 'HELP_PUT_FIELD' id 'DYNAME' field dyname
id 'DYNUMB' field dynumb
id 'REQUEST' field request
id 'SSF' field SEARCH_OWN_SUBSCREENS_FIRST
id 'PROOT' field proot
id 'STACKPOS' field start_search_on_scr_stackpos
id 'PATH' field searchpath_of_subscreen_areas
id 'DYNPFLD' field 'DYNP_UPDATE_FIELDS'
id 'ABAPFLD' field 'DYNP_UPDATE_FIELDS'. "#EC CI_CCALL
После нее даже в логику программы не возвращается, чтобы можно было что то подправить.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.