Текущее время: Ср, июл 23 2025, 06:03

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Пн, май 16 2016, 14:00 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 690
Коллеги, есть селекционный экран.
На нём есть select-options
написал обработчик on value-request
вызываю нужное средство поиска с помощью F4IF_VALUE_REQUEST. Именно этот ФМ мне нужен для того, чтобы передать в СП параметры через поле shlp.
Указать сразу при вызове ФМ поле экрана dynpfield негде.
Поэтому после возврата значений (списка в таблице return_values) мне нужно их как-то поместить в so_param.
Если я делаю просто append so_param несколько раз, то пропадает первое добавленное значение, плюс сразу кнопка со списком значений не зеленеет. надо нажать enter.
как это сделать красиво?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Пн, май 16 2016, 14:38 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
DYNP_UPDATE_FIELDS разве не помогает?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Пн, май 16 2016, 21:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Osm написал(а):
Коллеги, есть селекционный экран.
На нём есть select-options
написал обработчик on value-request
вызываю нужное средство поиска с помощью F4IF_VALUE_REQUEST. Именно этот ФМ мне нужен для того, чтобы передать в СП параметры через поле shlp.
Указать сразу при вызове ФМ поле экрана dynpfield негде.
Поэтому после возврата значений (списка в таблице return_values) мне нужно их как-то поместить в so_param.
Если я делаю просто append so_param несколько раз, то пропадает первое добавленное значение, плюс сразу кнопка со списком значений не зеленеет. надо нажать enter.
как это сделать красиво?

Код покажите.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Вт, май 17 2016, 16:06 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 690
нормально передать список значений получилось вот так в событии on value request
so_param-sign = 'I'.
so_param-option='EQ'.
so_param-low = 'val1'.
append so_param.
so_param-sign = 'I'.
so_param-option='EQ'.
so_param-low = 'val2'.
append so_param.
read table so_param into so_param index 1.
после этого нажимаю enter и все значения видны при нажатии на кнопку со списком значений.
зачем делать read table не понятно, но пусть будет так.
остался вопрос - как сделать так, чтобы enter не приходилось нажимать, а кнопка со списком значений сразу зеленела?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Вт, май 17 2016, 16:18 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Ваш SO это вн таблица с хидер лайном, Read table для того чтобы заполнить хидер.

Я описАлся с именем ФМа, еще раз, используйте ФМ DYNP_VALUES_UPDATE.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Вт, май 17 2016, 18:49 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 690
я вызвал этот ФМ для поля so_param-low, передал туда первое значение из списка (val1). В итоге кнопка у меня не позеленела, но в список значений добавилось это значение ещё раз.
Как оно должно работать? Я почитал описание метода и мне кажется, что мне нужно что-то другое. Все значения у меня уже присвоены, нужно только сказать системе перерисовать кнопку, как будто я нажал Enter.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Вт, май 17 2016, 23:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 Osm: как написал коллеге Besa, select-options это внутр. таблица определенной структуры с хидер лайном. На экране вы видите именно хидерлайн. Кнопка зеленеет, если в тело сел-опта добавлена больше 1 строки (позеленение означает, что введены доп.условия).
Обновление данных любого экрана (не только селекционного) проходит по циклу PBO (process before output)-PAI(process after input). В PBO (у сел.экрана это событие AT SELCTION-SCREEN OUTPUT) происходит подготовка к выводу, значения из полей программы попадают в экранные поля. Потом пользователь смотрит на экран, что-то там делает, нажимает кнопки, которые привязаны к GUI-функциям. Вот после такого нажатия(в вашем примере это энтер) срабатывает PAI (у сел.экрана нет события, которое однозначно этому соответствует, грубо говоря это события AT SELECTION-SCREEN и AT SELECTION-SCREEN ON). В PAI система первым делом выполняет проверки типа введенных юзером значений и проч. неявные действия. Далее, данные из экранных передаются в переменные программы. Потом все повторяется: сперва PBO, затем - PAI.
on value-request не является событием PAI, его обработка не приводит к транспорту данных их экрана и последующему срабатыванию PBO с обратным транспортом. Что бы обновить данные на экране, в этом случае, после обработки on value-request, вызывают указанный Besa ФМ или альтернативный DYNP_VALUES_UPDATE.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Ср, май 18 2016, 06:14 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 690
если у меня к полю search-help привязан стандартным образом, т.е. через структуру или домен данных, например, то после его вызова и выбора значений кнопка со списком значений сразу зеленеет.
вот я хочу, чтобы после вызова search help из события on value request кнопка тоже позеленела.
как такое сделать?
и ещё - зачем нужно использовать dynp_valuess_update, если я могу сразу присвоить значения so_param? они в этом случае и на экране корректно отображаются


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Ср, май 18 2016, 07:01 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 690
нашёл способ:
suppress dialog.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Ср, май 18 2016, 09:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Цитата:
если у меня к полю search-help привязан стандартным образом, т.е. через структуру или домен данных, например, то после его вызова и выбора значений кнопка со списком значений сразу зеленеет.

Мне кажется, вы заблуждаетесь. Кнопка перекрашивается в случае, если у вас несколько условий в одном SO. Посмотрите внимательнее, что именно вы делаете. Какие манипуляции производите

Цитата:
и ещё - зачем нужно использовать dynp_valuess_update, если я могу сразу присвоить значения so_param? они в этом случае и на экране корректно отображаются

Обновления переменной напрямую не всегда приводят к отображению изменений на экране. Как я написал ранее, on value reuqest не приводит к полному циклу. Возможно, что у вас обновление поля происходило за счет вызова какого-нибудь стандартного ФМ, который сам выполняет и показ СП и обновление экранных полей.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Ср, май 18 2016, 17:06 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
Озеленение кнопки
Code:
    DATA: updatevalues TYPE dynpread.
    DATA: t_updatevalues TYPE TABLE OF dynpread.

    GET CURSOR FIELD updatevalues-fieldname.
    SPLIT updatevalues-fieldname AT '-' INTO updatevalues-fieldname updatevalues-fieldvalue.
    CONCATENATE '%_' updatevalues-fieldname '_%_APP_%-VALU_PUSH' INTO updatevalues-fieldname.
    updatevalues-fieldvalue = icon_display_more.
    APPEND updatevalues TO t_updatevalues.
    CALL FUNCTION 'DYNP_VALUES_UPDATE'
      EXPORTING
        dyname               = sy-repid
        dynumb               = sy-dynnr
      TABLES
        dynpfields           = t_updatevalues
      EXCEPTIONS
        invalid_abapworkarea = 1
        invalid_dynprofield  = 2
        invalid_dynproname   = 3
        invalid_dynpronummer = 4
        invalid_request      = 5
        no_fielddescription  = 6
        undefind_error       = 7
        OTHERS               = 8.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Ср, май 18 2016, 17:21 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
LAT +1 так и делали.

Osm написал(а):
если у меня к полю search-help привязан стандартным образом, т.е. через структуру или домен данных, например, то после его вызова и выбора значений кнопка со списком значений сразу зеленеет.
вот я хочу, чтобы после вызова search help из события on value request кнопка тоже позеленела.
как такое сделать?
и ещё - зачем нужно использовать dynp_valuess_update, если я могу сразу присвоить значения so_param? они в этом случае и на экране корректно отображаются

OSM, так она и зеленеет у Вас по стандарту таким же способом [s]через ФМ[/s]. Может не через конкретно тот Фм конечно, но суть в том что без передергивания PBO PAI.
То что Вы используете не явный тригер для вызова PBO и PAI не есть хорошо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обновить список значений в select-options после вызова средства поиска
СообщениеДобавлено: Чт, май 19 2016, 06:08 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 690
всё понял, спасибо.
я то пробовал менять через update_values значение поля so_param-low, а оказывается можно было изменить значение самой кнопки.


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

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


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

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


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

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