Текущее время: Пт, июл 18 2025, 23:51

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Вызов экрана из стандартной транзакции
СообщениеДобавлено: Чт, окт 05 2006, 13:12 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
Проблема вроде как простая - необходимо по нажатии кнопки в стандартной транзакции вызвать последовательность своих экранов с возможностью вернуться на экран транзакции.
Допустим, я нашел user-exit, где можно прописать свою кнопку. В коде этого расширения я хочу указать
perform <Вызвать мой экран> in program Z<my_program>.

В самой подпрограмме пишу:
form <Вызвать мой экран>.
call screen 100. " экран определен там же, в Z<my_program>
endform.

Подпрограмма вызывается, а экран нет. Почему?

P.S. Причем, если делать связку
Станд.прогр. ->
perform <Вызвать мой экран> in program Z<my_program> ->
call function <Моя функция> ->
call screen <Определенный в той же группе, что и ФМ>
то экран уже вызывается!

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 05 2006, 13:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Ну а почему бы в экзите сразу не позвать call function <Моя функция>


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 05 2006, 13:22 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Я так понимаю что вопрос не практический, а теоритический ;)
Если честно - х/з


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 05 2006, 13:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Дело в том, что хоть подпрограмма и в другой программе, экран она пытается позвать от вызывающей программы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 05 2006, 13:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
T написал:
Ну а почему бы в экзите сразу не позвать call function <Моя функция>


Чтобы не разбрасывать код по разным местам - хотел все в одном месте оставить, по привычке в program :)

T написал:
Дело в том, что хоть подпрограмма и в другой программе, экран она пытается позвать от вызывающей программы.


Протрассировал, похоже на правду... а почему тогда с ФМ прокатывает?

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 05 2006, 13:45 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Не ответ, конечно, но "Ну так на то он и ФМ", точнее на то он и FUNCTION-POOL.

Если ваша подпрограмма лежала бы в группе функций и вы бы её вызвали PERFORM ... IN PROGRAM ..., она бы работала как CALL FUNCTION. То есть вызывала бы экраны группы функций.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 05 2006, 13:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
If you call a function module belonging to a function group not yet loaded (with ( CALL FUNCTION), the system creates an additional program group.
..
If you call an external subroutine (with PERFORM form(prog) or PERFORM form IN PROGRAM prog), the system loads the relevant program and adds it to the (main or additional) program group of the calling program, as long as it has not already been loaded.
However, if the subroutine is in a function group that has not yet been loaded, the system behaves as with CALL FUNCTION and creates a new program group.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 05 2006, 15:25 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
Пасибо - теперь теория сошлась с практикой :)

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


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

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


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

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


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

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