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

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


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

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


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

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