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

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


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

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


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

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