Текущее время: Пн, июл 28 2025, 06:29

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Dynamic Search-help
СообщениеДобавлено: Вт, апр 26 2011, 15:52 
Начинающий
Начинающий

Зарегистрирован:
Вт, апр 26 2011, 15:30
Сообщения: 1
Пол: Мужской
Суть задачи в следующем:
Есть таблица TabA, в строках которой в поле SHName указаны средства поиска
В таблице TabB, есть поле FieldA, и поле FieldB.
В поле FieldA лежит ключ который однозначно определяет строку таблицы TabA, а для ввода значения в поле FieldB необходимо воспользоваться SH из поля SHName строки таблицы TabA
Пытаюсь реализовать через вызов пользовательского средства поиска
Создал следующий ФМ:
Code:
FUNCTION f4ut_zde_hdbk_pos_code_sap.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  TABLES
*"      SHLP_TAB TYPE  SHLP_DESCT
*"      RECORD_TAB STRUCTURE  SEAHLPRES
*"  CHANGING
*"     REFERENCE(SHLP) TYPE  SHLP_DESCR
*"     REFERENCE(CALLCONTROL) TYPE  DDSHF4CTRL
*"----------------------------------------------------------------------
  DATA: ls_shlp     TYPE shlp_descr
       ,ls_shlp_hlp TYPE shlp_descr
       ,ls_ifc      TYPE ddshiface
       ,ls_selopt   TYPE ddshselopt
       ,ls_seahlpres  TYPE seahlpres
       ,lv_value    TYPE char10
       .
  DATA: lv_hdbk_number_sap TYPE zde_hdbk_number_sap
       ,lv_hdbk_code TYPE zsap_hdbk_code
       ,lv_shlpname TYPE shlpname
       .
  FIELD-SYMBOLS: <ls_ifc>   TYPE ddshiface.
  DATA: lt_retval TYPE fkk_ddshretval_t
       ,ls_retval TYPE ddshretval
       ,lv_rc TYPE sysubrc
       .
  LOOP AT ls_shlp-interface
    ASSIGNING <ls_ifc>.
    <ls_ifc>-valfield = 'X'.
  ENDLOOP.
  IF callcontrol-step EQ 'SELECT'.
    READ TABLE shlp_tab
    INTO ls_shlp
    INDEX 1.
    CLEAR ls_ifc.
    READ TABLE ls_shlp-interface
    INTO ls_ifc
    WITH KEY shlpfield = 'HDBK_NUMBER_SAP'
    .
    IF sy-subrc EQ 0.
      lv_hdbk_number_sap = ls_ifc-value+0(10).
    ENDIF.
    IF lv_hdbk_number_sap IS INITIAL.
      READ TABLE ls_shlp-selopt
      INTO ls_selopt
      WITH KEY shlpfield = 'HDBK_NUMBER_SAP'
      .
      IF sy-subrc EQ 0.
        lv_hdbk_code = ls_selopt-low+0(10).
        CALL FUNCTION 'CONVERSION_EXIT_ZZHNR_INPUT'
          EXPORTING
            input  = lv_hdbk_code
          IMPORTING
            output = lv_hdbk_number_sap.
      ENDIF.
    ENDIF.
    CHECK lv_hdbk_number_sap IS NOT INITIAL.
    SELECT SINGLE
      shname
    FROM TabA
    INTO lv_shlpname
    WHERE hdbk_number EQ lv_hdbk_number_sap
          AND
          loevm EQ ''
      .
    IF sy-subrc EQ 0.
      CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
        EXPORTING
          shlpname = lv_shlpname
        IMPORTING
          shlp     = ls_shlp_hlp.
      LOOP AT ls_shlp_hlp-interface
        ASSIGNING <ls_ifc>.
        <ls_ifc>-valfield = 'X'.
      ENDLOOP.
      CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
        EXPORTING
          shlp          = ls_shlp_hlp
        IMPORTING
          rc            = lv_rc
        TABLES
          return_values = lt_retval.
      READ TABLE lt_retval
      INTO ls_retval
      INDEX 1
      .
      ls_seahlpres-string = ls_retval-fieldval+0(10).
      APPEND ls_seahlpres TO record_tab.
      callcontrol-step = 'EXIT'.
    ENDIF.
  ENDIF.
ENDFUNCTION.

средство поиска необходимое вызывается
'F4IF_START_VALUE_REQUEST' возвращает значения
а f4ut_zde_hdbk_pos_code_sap значения не возвращает


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Dynamic Search-help
СообщениеДобавлено: Ср, апр 27 2011, 06:07 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

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


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

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


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

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


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

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