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

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


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

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


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

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