Текущее время: Сб, авг 02 2025, 22:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Не могу разобраться с логикой...
СообщениеДобавлено: Вт, янв 20 2009, 17:03 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Добрый день!

Возникла такая проблема. На экране имею грид, к которому подвешен собственный toolbar. И есть subscreen с набором полей для ввода/вывода. Так вот по нажатию одной из кнопок на гриде пытаюсь обнулить поля в subscreen. Т.е. в handle_user_command пишу просто clear: p_qwe, p_asd .... После этого они пустые. Потом вызываю cl_gui_cfw=>set_new_ok_code с неиспользуемым кодом, чтобы перерисовать экран, т.к. некоторые поля должны быть заблокированы/разблокированы. Так вот как только доходит до вызова CALL SUBSCREEN gs_sub_details (это сабскрин, который и содержит поля), то в поля возвращаются их значения до clear (кроме одного поля, которое я делаю активным/неактивным). Отладка ессно не заходит в этот вызов. Бьюсь не могу понять, почему возвращаются значения. Помогите разобраться. Заранее спасибо!

_________________
Вежливость - лучшее оружие чайника :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу разобраться с логикой...
СообщениеДобавлено: Вт, янв 20 2009, 18:34 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, окт 27 2008, 16:21
Сообщения: 33
Откуда: Москва
Пол: Мужской
я попадал в подобную ситуацию, но в моем случае значения в поля лезли из-за того что в PBO жестко прописано что туда нужно подставить. Я сейчас попробовал подебажить CALL SUBSCREEN и отладчик четко зашел в PBO подэкрана. Я зашел в программу с подэкранами, выбрал "Отладка экрана" из меню "Система"->"Утилиты" И вызвал одну из функций, пробежал PBO основного экрана а потом отладчик вошел в PBO подэкрана. Попробуйте посмотреть чему равны Ваши переменные в PBO подэкрана. Я бы сделал глобальные переменные и копировал бы их значения в поля в PBO подэкрана, прежде установив их в обработчике нажатия на кнопке


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу разобраться с логикой...
СообщениеДобавлено: Вт, янв 20 2009, 19:00 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Может я чего-то не понял, но вот как у меня происходит.

Запускаю программу. Дохожу до нужного места (перед нажатием кнопки на гриде). Включаю отладку экрана через меню (не понял только в чем разница с break-point в нужном месте). После этого программа проходит до clear, все нужные параметры очищаются. Дальше идем в PAI экрана, т.к. был вызван cl_gui_cfw=>set_new_ok_code. И вот уже в PAI после вызова CALL SUBSCREEN gs_sub_details в параметры возвращаются значения. Зайти в этот вызов пока не представляю как.

_________________
Вежливость - лучшее оружие чайника :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу разобраться с логикой...
СообщениеДобавлено: Вт, янв 20 2009, 19:13 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
В обработчике событий поднимите какой-нибудь флажок, а в PBO по этому флажку уже переменные обнуляйте.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу разобраться с логикой...
СообщениеДобавлено: Вт, янв 20 2009, 19:32 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
VID написал:
Может я чего-то не понял, но вот как у меня происходит.

Запускаю программу. Дохожу до нужного места (перед нажатием кнопки на гриде). Включаю отладку экрана через меню (не понял только в чем разница с break-point в нужном месте). После этого программа проходит до clear, все нужные параметры очищаются. Дальше идем в PAI экрана, т.к. был вызван cl_gui_cfw=>set_new_ok_code. И вот уже в PAI после вызова CALL SUBSCREEN gs_sub_details в параметры возвращаются значения. Зайти в этот вызов пока не представляю как.
И что же Вы хотите, если у Вас запустилось PAI? PAI по определению приводит к передаче содержимого полей экрана в переменные ABAP. Так что всё логично.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу разобраться с логикой...
СообщениеДобавлено: Ср, янв 21 2009, 18:10 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Спасибо за объяснения, ситуация прояснилась :pivo:

_________________
Вежливость - лучшее оружие чайника :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу разобраться с логикой...
СообщениеДобавлено: Чт, янв 22 2009, 11:48 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Сделал по совету Джона. Поля обнуляются по флажку в PBO основного экрана, т.к. сами поля лежат в subscreen, который описан с помощью selection-screen begin of screen ... as subscreen. Так вот, обнуление происходит, в отладчике все время показывает, что поля пустые, дальше по F5 прохожу до конца - поля все время пустые. Как только отладка заканчивается - поля снова заполнены, хотя на последнем шаге в отладчике были пустые... Непонятно...

_________________
Вежливость - лучшее оружие чайника :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу разобраться с логикой...
СообщениеДобавлено: Чт, янв 22 2009, 12:03 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 20 2008, 10:29
Сообщения: 339
Откуда: Мюнхен
Пол: Мужской
Переместил Clear в at selection-screen output и все заработало :D Спасибо за помощь еще раз!

_________________
Вежливость - лучшее оружие чайника :-)


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

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


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

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


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

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