Текущее время: Ср, апр 24 2024, 07:32

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Как добавить значение переменной из программы на основной экран?
СообщениеДобавлено: Вт, апр 06 2021, 08:47 
Ассистент
Ассистент

Зарегистрирован:
Чт, янв 14 2021, 05:38
Сообщения: 31
Здравствуйте!

Может, кто-то подскажет, как добавлять значение из программы в текстовое поле экрана. Не selection-screen, а просто экран. Нагуглить не получается, уже пытался)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить значение поля на экран
СообщениеДобавлено: Вт, апр 06 2021, 09:32 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, май 15 2006, 07:01
Сообщения: 286
Откуда: Almaty
se80 программа экран редактирование
запустится редактор экранов


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить значение поля на экран
СообщениеДобавлено: Вт, апр 06 2021, 09:37 
Ассистент
Ассистент

Зарегистрирован:
Чт, янв 14 2021, 05:38
Сообщения: 31
Friday написал(а):
se80 программа экран редактирование
запустится редактор экранов


Мне нужно не вручную добавить значение, а динамически, из программы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить значение поля на экран
СообщениеДобавлено: Вт, апр 06 2021, 10:03 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Если именно добавить поле, которого не было на экране, - то никак.
Точнее, можно, но это будет даже не костыль, а сразу коляска (см. команду GENERATE DYNPRO).
Если же просто динамически менять текстовое поле, то никаких проблем - использовать переменную.
Есть ещё STEP-LOOP-ы (см. ФМ POPUP_GET_VALUES), хотя сомневаюсь, что это то, что нужно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить значение поля на экран
СообщениеДобавлено: Вт, апр 06 2021, 10:15 
Ассистент
Ассистент

Зарегистрирован:
Чт, янв 14 2021, 05:38
Сообщения: 31
baboon написал(а):
Если именно добавить поле, которго не было на экране, то никак.
Точнее, можно, но это будет, даже не костыль, а сразу коляска (см. команду GENERATE DYNPRO).
Если же, просто, динамически менять текстовое поле, то никаких проблем - использовать переменную.
Есть ещё STEP-LOOPы (см. ФМ POPUP_GET_VALUES), хотя сомневаюсь, что это то, что нужно.


Само текстовое поле на экране есть, мне и нужно чтобы с помощью переменной в этом поле менялось значение в зависимости от результатов вычисления. В том и проблема, что не знаю как это делается) Не знаю как поместить значение этой переменной в поле


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить значение поля на экран
СообщениеДобавлено: Вт, апр 06 2021, 10:44 
Начинающий
Начинающий

Зарегистрирован:
Вт, май 26 2020, 20:58
Сообщения: 16
Не гость написал(а):
baboon написал(а):
Если именно добавить поле, которго не было на экране, то никак.
Точнее, можно, но это будет, даже не костыль, а сразу коляска (см. команду GENERATE DYNPRO).
Если же, просто, динамически менять текстовое поле, то никаких проблем - использовать переменную.
Есть ещё STEP-LOOPы (см. ФМ POPUP_GET_VALUES), хотя сомневаюсь, что это то, что нужно.


Само текстовое поле на экране есть, мне и нужно чтобы с помощью переменной в этом поле менялось значение в зависимости от результатов вычисления. В том и проблема, что не знаю как это делается) Не знаю как поместить значение этой переменной в поле


Через = не работает? ИмяТекстовогоПоля = ЗначениеПеременной.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить значение поля на экран
СообщениеДобавлено: Вт, апр 06 2021, 10:50 
Ассистент
Ассистент

Зарегистрирован:
Чт, янв 14 2021, 05:38
Сообщения: 31
ZanzibarZ написал(а):
Через = не работает? ИмяТекстовогоПоля = ЗначениеПеременной.


Code:
LOOP AT SCREEN.

    IF screen-name = 'AUFNR'.
     
    ENDIF.

    MODIFY SCREEN.


Так я обращаюсь к текстовому полю в программе. Если просто имя текстового поля писать, то это не работает


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить значение поля на экран
СообщениеДобавлено: Вт, апр 06 2021, 10:59 
Начинающий
Начинающий

Зарегистрирован:
Вт, май 26 2020, 20:58
Сообщения: 16
Вспомнил, там не все так просто, чтоб читать и писать значения нужно использовать ФМ
DYNP_VALUES_READ и DYNP_VALUES_UPDATE


Последний раз редактировалось ZanzibarZ Вт, апр 06 2021, 15:08, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить значение поля на экран
СообщениеДобавлено: Вт, апр 06 2021, 12:15 
Ассистент
Ассистент

Зарегистрирован:
Чт, янв 14 2021, 05:38
Сообщения: 31
ZanzibarZ написал(а):
Вспомнил, там не все так просто, чтоб читать и писать значения нужно использовать ФМ
DYNP_VALUES_READ и DYNP_VALUE_UPDATE

Попробовал и таким способом, но на экране пусто. Вот код:
Code:
data: lt_fld type table of dynpread,
      ls_fld type dynpread.
ls_fld-fieldname = 'AUFNR'.
ls_fld-fieldvalue = '10000041'.
append ls_fld to lt_fld.
clear ls_fld.
CALL FUNCTION 'DYNP_UPDATE_FIELDS'
  EXPORTING
    dyname                               = sy-cprog
    dynumb                               = sy-dynnr
   REQUEST                              = 'A'

  TABLES
    dynpfields                           = lt_fld.


Может что то не так пишу. И код находится в PBO экрана


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как добавить значение переменной из программы на основной экран?
СообщениеДобавлено: Вт, апр 06 2021, 14:20 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Посмотрите как называется поле на экране в редакторе экранов.
Мне кажется, что там не просто AUFNR, а что-нибудь вроде Имя_структуры-AUFNR.
Достаточно присвоить этой переменной требуемое значение и, после PBO, оно выведется на экран.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как добавить значение переменной из программы на основной экран?
СообщениеДобавлено: Ср, апр 07 2021, 05:59 
Ассистент
Ассистент

Зарегистрирован:
Чт, янв 14 2021, 05:38
Сообщения: 31
baboon написал(а):
Посмотрите как называется поле на экране в редакторе экранов.
Мне кажется, что там не просто AUFNR, а что-нибудь вроде Имя_структуры-AUFNR.
Достаточно присвоить этой переменной требуемое значение и, после PBO, оно выведется на экран.


Поле на экране я сам создавал и назвал его так)) Но у меня в программе не было объявлено этого элемента, поэтому и не получалось. В итоге создал структуру в программе, а в ней элемент AUFNR, то есть SCREEN-AUFNR и элементу экрана присвоил имя SCREEN-AUFNR.
Далее SCREEN-AUFNR = "значение" и всё заработало. Спасибо всем за подсказки. Вроде бы просто, но нужно догадаться как))

Что интересно, CALL FUNCTION 'DYNP_UPDATE_FIELDS' отрабатывает, но не совсем как надо. Нужно добавить
EXPORTING
REQUEST = 'A'
чтобы выводилось значение. Но при этом окно становится неактивным. Не понятно, то ли это баг, то ли где то скрытая фича


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

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


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

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


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

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