Текущее время: Ср, июл 23 2025, 20:15

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


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

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


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

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