Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Fri Jun 20, 2008 9:14 am Post subject: просмотр\запись значений на диалоговом экране ср.поиска?
Можно ли просматривать\записывать значения на диалоговом экране средства поиска?
Делал ли кто нибудь подобное? _________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Last edited by XXX_:) on Fri Jun 20, 2008 12:36 pm; edited 1 time in total
Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Fri Jun 20, 2008 10:25 am Post subject:
К сожалению в этом моем случае DYNP_VALUES_UPDATE, DYNP_VALUES_READ не отрабатывают, хотя остаются параметры START_SEARCH_IN_STACKED_SCREEN и REQUEST логику которых я до конца не понял .
У меня есть два средства поиска
средство поиска 1 (реализовано пользовательское ср.поиска)
Параметры
CASE_TYPE
CATEGORY
...........
Тип диалога Диалог с ограничением значений
В Диалоге пользователю предлагается выбрать параметры CASE_TYPE, CATEGORY, и др. по нажатию на F4 например на CASE_TYPE запускается еще одно средство поиска(моЁ)
средство поиска 2 (реализовано пользовательское ср.поиска)
Параметры
CASE_TYPE
CATEGORY
DESCRIPTION
После того как пользователь делает выбор, должно вернуться 2 значения на предыдущий экран: CASE_TYPE, CATEGORY соответственно.
Преамбула:
Если запустить ФМ 'F4UT_GET_ENVIRONMENT' в search help exit первого ср.поиска то он в MAIN параметрах возвращает параметры экрана программы с которой было вызвано ср.поиска, а SUB параметры оставляет пустыми.
Если запустить ФМ 'F4UT_GET_ENVIRONMENT' в search help exit
второго средства поиска то MAIN параметрах SAPLSDH4 0200, а в SUB SAPLSDH4 0220.
Пробовал вызывать DYNP_VALUES_UPDATE, DYNP_VALUES_READ с теми и с MAIN и с SUB параметрами, sy-subrc = 0. Но возвращаемые параметры пусты Поэкспериментировал с параметрами START_SEARCH_IN_STACKED_SCREEN и REQUEST к сожалению тот же результат. Возможно что я что то не то указываю в параметрах _________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Age: 165 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Fri Jun 20, 2008 11:16 am Post subject:
XXX_:) wrote:
Преамбула:
Если запустить ФМ 'F4UT_GET_ENVIRONMENT' в search help exit первого ср.поиска то он в MAIN параметрах возвращает параметры экрана программы с которой было вызвано ср.поиска, а SUB параметры оставляет пустыми.
Если запустить ФМ 'F4UT_GET_ENVIRONMENT' в search help exit
второго средства поиска то MAIN параметрах SAPLSDH4 0200, а в SUB SAPLSDH4 0220.
Должно вернуться окно, которое имеет фокус. Если текущий запущенный search-help еще не отобразился на экране, то он не будет иметь фокуса, поэтому будет возвращено другое окно.
В search-help exit на одних шагах ( CALLCONTROL-STEP )
текущий sh еще не будет отображен, на других будет отображен, поэтому F4UT_GET_ENVIRONMENT нужно вызывать в соотвествующем шаге, в зависимости какое окно вы хотите получить.
XXX_:) wrote:
Пробовал вызывать DYNP_VALUES_UPDATE, DYNP_VALUES_READ с теми и с MAIN и с SUB параметрами, sy-subrc = 0. Но возвращаемые параметры пусты Поэкспериментировал с параметрами START_SEARCH_IN_STACKED_SCREEN и REQUEST к сожалению тот же результат. Возможно что я что то не то указываю в параметрах
w_selopt-sign = 'I'.
w_selopt-option = 'EQ'.
LOOP AT DYFIELDS.
CHECK NOT DYFIELDS-FIELDVALUE IS INITIAL.
CASE DYFIELDS-FIELDNAME.
WHEN c_werks.
w_selopt-shlpfield = 'WERKS'.
w_selopt-low = DYFIELDS-FIELDVALUE.
append w_selopt to shlp-selopt.
WHEN c_stort.
w_selopt-shlpfield = 'STORT'.
w_selopt-low = DYFIELDS-FIELDVALUE.
append w_selopt to shlp-selopt.
ENDCASE.
ENDLOOP.
EXIT.
ENDIF.
обновление полей
Code:
IF CALLCONTROL-STEP = 'RETURN'.
DATA: LEN TYPE I.
DESCRIBE FIELD wa_ZGFRAUM1 LENGTH LEN.
MOVE RECORD_TAB(LEN) TO wa_ZGFRAUM1.
MOVE c_werks TO wa_dynpfields-fieldname.
MOVE wa_ZGFRAUM1-WERKS TO wa_dynpfields-fieldvalue.
TRANSLATE wa_dynpfields-fieldname TO UPPER CASE.
APPEND wa_dynpfields TO DYFIELDS.
MOVE c_stort TO wa_dynpfields-fieldname.
MOVE wa_ZGFRAUM1-STORT TO wa_dynpfields-fieldvalue.
TRANSLATE wa_dynpfields-fieldname TO UPPER CASE.
APPEND wa_dynpfields TO DYFIELDS.
Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Fri Jun 20, 2008 12:21 pm Post subject:
На первом ср.поиска нажимаю F4 на поле вид случая, запускается второе средство поиска на шаге PRESEL1 когда экрана второго средства поиска еще нет следующий код
структура env_info возвращается пустой. Это означает, что фокус не направлен в данный момент ни на один экран? о чтении или изменении полей пока думать рано по F1 вот такая информация по диалоговому экрану 1 ср.поиска
2.jpg
Description:
Filesize:
23.79 KB
Viewed:
14639 Time(s)
_________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Fri Jun 20, 2008 5:16 pm Post subject:
Провел еще пару тестов, в search help exit второго средства поиска запущенного с экрана Диалога первого поместил
Code:
GET CURSOR FIELD fieldname.
ASSIGN (fieldname) TO <fs>.
ни чего не вернул и
Code:
LOOP AT SCREEN.
ENDLOOP.[
оказалось что цикл идет по первоначальному экрану, с которого вызывалось первое средство поиска.
ЗЫ: Бантик на search help, не ожидал, что у такой казалось бы простой вещи есть такие грабли .
to vga спасибо за помощь _________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Age: 40 Joined: 01 Feb 2008 Posts: 387 Location: Воронеж
Posted: Fri Jun 20, 2008 5:26 pm Post subject:
Хотелось бы еще сказать, что это задание у меня не обязательное и я всегда могу отказаться от данного бантика, просто это уже спортивный интерес. В стандартных транзакциях ведуться специальные таблички, которые представляют собой стек экранов. Но может быть что то подобное ведет система? Может быть кто то знает как достать стек экранов, если он конечно существует. _________________ Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Возникла такая же проблема.Перепробовала всё, что знала, но результат не радует.А вот если с обычными экранами работать со вторым серч хелпом всё подставляется =(.
пробовала задать set/get параметры для полей и импортировать и экспортировать их в своем ФМ для серчхелпа.
пробовала с помощью F4UT_PARAMETER_VALUE_GET вытащить значение , если задавать на первом экране и потом ограничивать выбор, но в функции ничего не передается на втором серчхелпе и соответсвенно, выбранные значения через ФМ F4UT_PARAMETER_RESULTS_PUT во втором серчхелпе , не возвращаются в первый серчхелп, ну кроме того поля, на котором вызывался ФМ серчхелпа.
В таблицу SHLP и при вызове ФМ 'F4UT_GET_ENVIRONMENT' также никаких значений полей не передаётся.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.