SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

просмотр\запись значений на диалоговом экране ср.поиска?



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
XXX_:)
Аналитик
Аналитик


Age: 40
Joined: 01 Feb 2008
Posts: 387
Location: Воронеж

PostPosted: Fri Jun 20, 2008 9:14 am    Post subject: просмотр\запись значений на диалоговом экране ср.поиска? Reply with quote

Можно ли просматривать\записывать значения на диалоговом экране средства поиска?
Делал ли кто нибудь подобное?

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


Last edited by XXX_:) on Fri Jun 20, 2008 12:36 pm; edited 1 time in total
Back to top
View user's profile Send private message Blog
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Fri Jun 20, 2008 9:56 am    Post subject: Reply with quote

Привет,
а DYNP_VALUES_UPDATE, DYNP_VALUES_READ
не работают?
Back to top
View user's profile Send private message Blog Visit poster's website
XXX_:)
Аналитик
Аналитик


Age: 40
Joined: 01 Feb 2008
Posts: 387
Location: Воронеж

PostPosted: Fri Jun 20, 2008 10:25 am    Post subject: Reply with quote

К сожалению в этом моем случае DYNP_VALUES_UPDATE, DYNP_VALUES_READ не отрабатывают, хотя остаются параметры START_SEARCH_IN_STACKED_SCREEN и REQUEST логику которых я до конца не понял Sad.
У меня есть два средства поиска

средство поиска 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. Но возвращаемые параметры пусты Sad Поэкспериментировал с параметрами START_SEARCH_IN_STACKED_SCREEN и REQUEST Sad к сожалению тот же результат. Возможно что я что то не то указываю в параметрах Sad

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Back to top
View user's profile Send private message Blog
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Fri Jun 20, 2008 11:16 am    Post subject: Reply with quote

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. Но возвращаемые параметры пусты Sad Поэкспериментировал с параметрами START_SEARCH_IN_STACKED_SCREEN и REQUEST Sad к сожалению тот же результат. Возможно что я что то не то указываю в параметрах Sad


Например так работает в sh exit

чтение:
Code:
  IF CALLCONTROL-STEP = 'PRESEL1'.

    DYFIELDS-FIELDNAME = c_werks.
    APPEND DYFIELDS.
    DYFIELDS-FIELDNAME = c_stort.
    APPEND DYFIELDS.

    CALL FUNCTION 'DYNP_VALUES_READ'
       EXPORTING
            DYNAME                   = ENV_INFO-SUBPROG
            DYNUMB                   = ENV_INFO-SUBDYNP
       TABLES
            DYNPFIELDS               = DYFIELDS
       EXCEPTIONS
            invalid_abapworkarea = 01
            invalid_dynprofield = 02
            invalid_dynproname = 03
            invalid_dynpronummer = 04
            invalid_request = 05
            no_fielddescription = 06
            undefind_error = 07.

    CHECK SY-SUBRC IS INITIAL.

    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.

    CALL FUNCTION 'DYNP_UPDATE_FIELDS'
        EXPORTING
          DYNAME               = ENV_INFO-SUBPROG
          DYNUMB               = ENV_INFO-SUBDYNP
          request              = 'A'
        TABLES
          dynpfields           = DYFIELDS
        EXCEPTIONS
          INVALID_ABAPWORKAREA = 1
          INVALID_DYNPROFIELD  = 2
          INVALID_DYNPRONAME   = 3
          INVALID_DYNPRONUMMER = 4
          INVALID_REQUEST      = 5
          NO_FIELDDESCRIPTION  = 6
          UNDEFIND_ERROR       = 7
          OTHERS               = 8.
    EXIT.
  ENDIF.
Back to top
View user's profile Send private message Blog Visit poster's website
XXX_:)
Аналитик
Аналитик


Age: 40
Joined: 01 Feb 2008
Posts: 387
Location: Воронеж

PostPosted: Fri Jun 20, 2008 12:21 pm    Post subject: Reply with quote

На первом ср.поиска нажимаю F4 на поле вид случая, запускается второе средство поиска на шаге PRESEL1 когда экрана второго средства поиска еще нет следующий код
Code:
   IF callcontrol-step = 'PRESEL1'.

CALL FUNCTION 'F4UT_GET_ENVIRONMENT'
 IMPORTING
   ENV_INFO            = env_info
 EXCEPTIONS
   F4_NOT_ACTIVE       = 1
   OTHERS              = 2
          .
...
структура env_info возвращается пустой. Это означает, что фокус не направлен в данный момент ни на один экран? о чтении или изменении полей пока думать рано Sad по F1 вот такая информация по диалоговому экрану 1 ср.поиска


2.jpg
 Description:
 Filesize:  23.79 KB
 Viewed:  14644 Time(s)

2.jpg



_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Back to top
View user's profile Send private message Blog
XXX_:)
Аналитик
Аналитик


Age: 40
Joined: 01 Feb 2008
Posts: 387
Location: Воронеж

PostPosted: Fri Jun 20, 2008 5:16 pm    Post subject: Reply with quote

Провел еще пару тестов, в search help exit второго средства поиска запущенного с экрана Диалога первого поместил
Code:
  GET CURSOR FIELD fieldname.
  ASSIGN (fieldname) TO <fs>.
ни чего не вернул и
Code:
LOOP AT SCREEN.

  ENDLOOP.[
оказалось что цикл идет по первоначальному экрану, с которого вызывалось первое средство поиска.

ЗЫ: Бантик на search help, не ожидал, что у такой казалось бы простой вещи есть такие грабли .
to vga спасибо за помощь

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Back to top
View user's profile Send private message Blog
XXX_:)
Аналитик
Аналитик


Age: 40
Joined: 01 Feb 2008
Posts: 387
Location: Воронеж

PostPosted: Fri Jun 20, 2008 5:26 pm    Post subject: Reply with quote

Хотелось бы еще сказать, что это задание у меня не обязательное и я всегда могу отказаться от данного бантика, просто это уже спортивный интерес. В стандартных транзакциях ведуться специальные таблички, которые представляют собой стек экранов. Но может быть что то подобное ведет система? Может быть кто то знает как достать стек экранов, если он конечно существует.
_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Back to top
View user's profile Send private message Blog
polin@
Участник
Участник



Joined: 20 Aug 2008
Posts: 1

PostPosted: Wed Aug 20, 2008 4:04 pm    Post subject: Reply with quote

Возникла такая же проблема.Перепробовала всё, что знала, но результат не радует.А вот если с обычными экранами работать со вторым серч хелпом всё подставляется =(.

пробовала задать set/get параметры для полей и импортировать и экспортировать их в своем ФМ для серчхелпа.

пробовала с помощью F4UT_PARAMETER_VALUE_GET вытащить значение , если задавать на первом экране и потом ограничивать выбор, но в функции ничего не передается на втором серчхелпе и соответсвенно, выбранные значения через ФМ F4UT_PARAMETER_RESULTS_PUT во втором серчхелпе , не возвращаются в первый серчхелп, ну кроме того поля, на котором вызывался ФМ серчхелпа.

В таблицу SHLP и при вызове ФМ 'F4UT_GET_ENVIRONMENT' также никаких значений полей не передаётся.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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.