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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 11:20 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 29 2011, 15:55
Сообщения: 91
Пол: Мужской
Добрый день
Вроде не первый раз пишу селекционник, но здесь что-то ступил.
На селекционном экране есть PARAMETER p_id. Изначально он пустой, а поле невидимое. Поле появляется/скрывается в зависимости от переключателей на экране.
В start-of-selection значение этого параметра изменяется. Ему присваивается результат выполнения функции. В отладчике это видно.
Однако после этого в at selection-screen output параметр опять пустой (отладчик показывает, что значение не присвоено).
Значение параметра нигде больше в программе не изменяется. Только читается.
Почему так и что я делаю не так???


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 11:44 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
start-of-selection отрабатывает после at selection-screnn output.

Когда отработал start-of-selection экран выбора уже закрыт.

Когда после программы вы возвращаетесь на селекционник, он заново инициализируется. и как вы меняли параметры уже не важно


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 11:53 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 29 2011, 15:55
Сообщения: 91
Пол: Мужской
Kuranov.Dmitry написал(а):
start-of-selection отрабатывает после at selection-screnn output.

Когда отработал start-of-selection экран выбора уже закрыт.

Когда после программы вы возвращаетесь на селекционник, он заново инициализируется. и как вы меняли параметры уже не важно

Но то, что введено в поля вручную - сохраняется. Можно ли сделать что-то аналогичное программно?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 11:57 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
swd написал:
Kuranov.Dmitry написал(а):
start-of-selection отрабатывает после at selection-screnn output.

Когда отработал start-of-selection экран выбора уже закрыт.

Когда после программы вы возвращаетесь на селекционник, он заново инициализируется. и как вы меняли параметры уже не важно

Но то, что введено в поля вручную - сохраняется. Можно ли сделать что-то аналогичное программно?

он восстанавливает состояние которое было при уходе с селекционника.
Пример:

Code:

PARAMETERS p TYPE text4.

AT SELECTION-SCREEN.
  p = 'qwer'.

START-OF-SELECTION.
write p.
p =  'dsf'.
write p.



в итоге программа напишет qwer dsf.

при возврате на селекционник будет заполнено qwer независимо что ввел пользователь.

Можете попробовать вынести вызов своего ФМ в блок AT SELECTION-SCREEN если вам некритичен вызов ФМ при каждом выполнении экранного цикла

Ну или глянуть в сторону GET/SET параметров

или EXPORT/IMPORT

Code:
PARAMETERS p TYPE text4.

AT SELECTION-SCREEN OUTPUT.
  IMPORT p FROM MEMORY ID 'P'.


START-OF-SELECTION.
  WRITE p.
  p =  'dsf'.
  WRITE p.
  EXPORT p TO MEMORY ID 'P'.



Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 12:17 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 29 2011, 15:55
Сообщения: 91
Пол: Мужской
Kuranov.Dmitry написал(а):
Ну или глянуть в сторону GET/SET параметров

Вот как раз гляжу. Еще в упор не пойму, почему событие load-of-program вызывается не 1 раз при запуске программы, а каждый раз вместе с at selection-screen output


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 12:28 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
swd написал:
Kuranov.Dmitry написал(а):
Ну или глянуть в сторону GET/SET параметров

Вот как раз гляжу. Еще в упор не пойму, почему событие load-of-program вызывается не 1 раз при запуске программы, а каждый раз вместе с at selection-screen output


Он вызывается когда программа загружается в память.

ваш цикл:

запустили транзакцию.
1)->загрузилась программа в память
2)-> отработал LOAD-OF-PROGRAM
3)-> отрабатывает цикл SELECTION SCREEN
4)-> вышел в START-OF-SELECTION
5)-> Программа отработала -> goto 1
вот пример, посмотрите что и когда вызывается

Code:
LOAD-OF-PROGRAM.
CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
    text_question               = 'LOAD'.

INITIALIZATION.
CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
    text_question               = 'INIT'.


PARAMETERS p TYPE text4.


AT SELECTION-SCREEN OUTPUT.
CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
    text_question               = 'SEL-OUT'.

AT SELECTION-SCREEN .
  CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
    text_question               = 'SEL-INPUT'.

START-OF-SELECTION.
CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
    text_question               = 'START'.


Последний раз редактировалось Kuranov.Dmitry Чт, ноя 21 2019, 12:35, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 12:33 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, авг 29 2011, 15:55
Сообщения: 91
Пол: Мужской
Kuranov.Dmitry написал(а):
Он вызывается когда программа загружается в память.

ваш цикл:

запустили транзакцию.
1)->загрузилась программа в память
2)-> отработал LOAD-OF-PROGRAM
3)-> отрабатывает цикл SELECTION SCREEN
4)-> вышел в START-OF-SELECTION
5)-> Программа отработала -> goto 1

Разве не
1. load-of-program
2. initialization
3. at selection-screen output
4. at selection-screen
5. goto 2?
Программа ведь уже загружена, после at selection-screen вновь показывается селекционник. Если она загружается заново, то как селекционник помнит введенные после шага 3 значения полей?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 12:42 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
swd написал:
Kuranov.Dmitry написал(а):
Он вызывается когда программа загружается в память.

ваш цикл:

запустили транзакцию.
1)->загрузилась программа в память
2)-> отработал LOAD-OF-PROGRAM
3)-> отрабатывает цикл SELECTION SCREEN
4)-> вышел в START-OF-SELECTION
5)-> Программа отработала -> goto 1

Разве не
1. load-of-program
2. initialization
3. at selection-screen output
4. at selection-screen
5. goto 2?
Программа ведь уже загружена, после at selection-screen вновь показывается селекционник. Если она загружается заново, то как селекционник помнит введенные после шага 3 значения полей?


после 5 все программа отработала и выгрузилась. Глобальные переменные сбросились, программа вывалилась из памяти.
Сохранение полей селекционника видать внутренняя фишка механики селекционных экранов


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 12:56 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
swd написал:
Можно ли сделать что-то аналогичное программно?
Можно сделать обработку и присвоение в AT SELECTION-SCREEN:
Code:
AT SELECTION-SCREEN.
  IF sy-ucomm = 'ONLI'.
    тут код, который ранее вызывался из START-OF-SELECTION
  ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 14:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
LAT написал(а):
IF sy-ucomm = 'ONLI'.

... И тут пользователь такой - рррраз, и запускает программу по F9.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 15:58 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Кодер написал(а):
LAT написал(а):
IF sy-ucomm = 'ONLI'.

... И тут пользователь такой - рррраз, и запускает программу по F9.

Ну тогда можно и на SJOB проверить


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

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
swd написал:
В start-of-selection значение этого параметра изменяется. Ему присваивается результат выполнения функции. В отладчике это видно.
Однако после этого в at selection-screen output параметр опять пустой (отладчик показывает, что значение не присвоено).
Значение параметра нигде больше в программе не изменяется. Только читается.
Кодер написал(а):
LAT написал(а):
IF sy-ucomm = 'ONLI'.
... И тут пользователь такой - рррраз, и запускает программу по F9.
Если пользователь состоит в секте Свидетелей Второго Пришествия at selection-screen output, почему бы и нет?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 18:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Kuranov.Dmitry написал(а):
Ну тогда можно и на SJOB проверить

LAT написал(а):
Если пользователь состоит в секте Свидетелей Второго Пришествия at selection-screen output, почему бы и нет?

... а потом пользователь сперва не заполняет обязательное поле. Система ругается. Пользователь вводит нужное поле и - о ужас! - нажимает энтер!
(да, я люблю изворотливость юзеров)

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


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

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
Кодер написал(а):
... а потом пользователь сперва не заполняет обязательное поле. Система ругается. Пользователь вводит нужное поле и - о ужас! - нажимает энтер!
А в чем состоит суть ужаса?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Значение параметра селекционного экрана
СообщениеДобавлено: Чт, ноя 21 2019, 18:18 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Кодер написал(а):
Kuranov.Dmitry написал(а):
Ну тогда можно и на SJOB проверить

LAT написал(а):
Если пользователь состоит в секте Свидетелей Второго Пришествия at selection-screen output, почему бы и нет?

... а потом пользователь сперва не заполняет обязательное поле. Система ругается. Пользователь вводит нужное поле и - о ужас! - нажимает энтер!
(да, я люблю изворотливость юзеров)

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.

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


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

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


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

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