Текущее время: Вт, апр 23 2024, 14:00

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


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

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


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

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