Текущее время: Пн, авг 04 2025, 21:55

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: F4IF_INT_TABLE_VALUE_REQUEST - неправильное отображение содержимого таблицы значений
СообщениеДобавлено: Пт, окт 24 2008, 12:59 
Специалист
Специалист

Зарегистрирован:
Пн, фев 11 2008, 16:17
Сообщения: 122
Пол: Мужской
Добрый день, Коллеги.

В процессе использования функционального модуля F4IF_INT_TABLE_VALUE_REQUEST столкнулся со следующей проблеммой.
В качестве значение, по которым должен осуществляться поиск использую внутреннюю таблицу: IT_TAB, имеющую структуру, состоящую из 2-х полей: FIELD1 и FIELD2. Эти же поля указываю в таблице IT_FIELDS, которую передаю в ФМ в качестве параметра FIELD_TAB.
Таблица IT_TAB сщдержит 3 записи:
FIELD1 | FIELD2
TEXT11 | TEXT12
TEXT21 | TEXT22
TEXT31 | TEXT32

Вот код:
Code:
     
* Заполнение каталога полей для вывода средства поиска:

      CLEAR wa_fields.
      wa_fields-tabname       = 'IT_TAB'.
      wa_fields-fieldname     = 'FIELD1'.
      wa_fields-leng = 10.
      wa_fields-intlen = 10.
      wa_fields-outputlen     = 10.
      APPEND wa_fields TO it_fields.

      CLEAR wa_fields.
      wa_fields-tabname       = 'IT_TAB'.
      wa_fields-fieldname     = 'FIELD2'.
      wa_fields-leng = 10.
      wa_fields-intlen = 10.
      wa_fields-outputlen     = 10.
      APPEND wa_fields TO it_fields.

* Вывод средства поиска:

      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD               = 'FIELD1'
          DYNPPROG               = sy-repid
          DYNPNR                 = sy-dynnr
        TABLES
          VALUE_TAB              = IT_TAB
          FIELD_TAB              = IT_FIELDS
          RETURN_TAB             = IT_TAB_RETURN
       EXCEPTIONS
          PARAMETER_ERROR        = 1
          NO_VALUES_FOUND        = 2
          OTHERS                 = 3
                .
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.


после запуска средство поиска отображается неправильно. а именно:

FIELD1 | FIELD2
TEXT11 | TEXT12 TEXT22
TEXT31 |

И всё.
Пробовал "играть" с параметрами длины вывода, но положительного результата достигнуть не удалось...
Также пробовал передавать на вход в качестве таблицы IT_TAB строковую таблицу, содержащую в каждой записи конкатенацию FIELD1+FIELD2, т. е. TEXT11TEXT12, например, для 1-й записи, но это также не сказалось на результате.

Подскажите, пожалуйста, как можно решить данную проблемму, или же какой аналогичный ФМ можно использовать для данной задачи.

Заранее благодарен!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 24 2008, 13:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Закомментируйте параметр FIELD_TAB, параметру VALUE_ORG присвойте 'S'

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 24 2008, 13:07 
Специалист
Специалист

Зарегистрирован:
Пн, фев 11 2008, 16:17
Сообщения: 122
Пол: Мужской
Удав написал(а):
Закомментируйте параметр FIELD_TAB.


В этом случае выдаётся сообщение "Значения не найдены" :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 24 2008, 13:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Вот рабочий код:
Code:
  DATA: return_tab TYPE TABLE OF ddshretval WITH HEADER LINE
      , BEGIN OF value_tab OCCURS 0
      ,   bukrs LIKE anla-bukrs
      ,   invnr LIKE anla-invnr
      ,   txt50 LIKE anla-txt50
      , END   OF value_tab.
  FIELD-SYMBOLS: <fs> TYPE ANY.
  SELECT bukrs invnr txt50
    FROM anla
    APPENDING CORRESPONDING FIELDS OF TABLE value_tab
    WHERE bukrs = p_bukrs.
  SORT value_tab BY invnr txt50.
  DELETE value_tab WHERE invnr IS INITIAL.
  DELETE ADJACENT DUPLICATES FROM value_tab COMPARING invnr.


  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield               = 'INVNR'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      value_org   = 'S'
    TABLES
      value_tab              = value_tab[]
*     FIELD_TAB               = field_tab[]
      return_tab             = return_tab[]
   EXCEPTIONS
     parameter_error        = 1
     no_values_found        = 2
     OTHERS                 = 3.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 24 2008, 13:21 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Ну тогда уж и мой рабочий, без комментирования :)

Code:
DATA: lt_matnr_hu  TYPE v_matnr_hu_t,
        ls_fieldtab  TYPE dfies,
        lt_fieldtab  TYPE TABLE OF dfies,
        ls_return    TYPE bapiret2.
 
  ls_fieldtab-tabname   = 'V_MATNR_HU'.
  ls_fieldtab-fieldname = 'MATNR'. APPEND ls_fieldtab TO lt_fieldtab.
  ls_fieldtab-fieldname = 'MAKTX'. APPEND ls_fieldtab TO lt_fieldtab.
  ls_fieldtab-fieldname = 'VHART'. APPEND ls_fieldtab TO lt_fieldtab.
  ls_fieldtab-fieldname = 'MAGRV'. APPEND ls_fieldtab TO lt_fieldtab.
  ls_fieldtab-fieldname = 'MEINS'. APPEND ls_fieldtab TO lt_fieldtab.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield     = 'MATNR'
      window_title = text-001
      value_org    = 'S'
    TABLES
      value_tab    = lt_matnr_hu
      field_tab    = lt_fieldtab
      return_tab   = lt_returne
    EXCEPTIONS
      OTHERS       = 99.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 24 2008, 13:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Пономарев Артем написал:
Ну тогда уж и мой рабочий, без комментирования :)

Если не указывать FIELD_TAB, то ФМ автоматически определяет структуру передаваемой таблицы ;)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 24 2008, 13:27 
Специалист
Специалист

Зарегистрирован:
Пн, фев 11 2008, 16:17
Сообщения: 122
Пол: Мужской
Всем спасибо!
Фича оказалась в параметре VALUE_ORG = 'S'.:o
При таком вызове каталог полей действительно не нужен!
Всем выражаю благодарность за помощь и внимание к проблемме! :)

_________________
С Уважением, Danila


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 24 2008, 13:28 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
У меня там одно поле лишнее, в табличке. Мандант, которое :)
Я к тому что причина неправильной работы не в указании FIELD_TAB.
Но вот понять с ходу не могу, что у автора не так.

UPD: Теперь понял. Автор признался сам :)


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

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


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

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


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

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