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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: проблема с выводом данных в search help'е
СообщениеДобавлено: Чт, ноя 11 2010, 12:28 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 02 2010, 12:17
Сообщения: 37
Откуда: МО
Пол: Мужской
Добрый день, коллеги.

Нужно сделать search help для поля. Сделал с помощью ФМ F4IF_INT_TABLE_VALUE_REQUEST. При выводе появляются 3 нужных мне столбца. Но при выводе появляются пустые строки.
Подскажите, что неправильно делаю :?:

Code:
PERFORM f_fieldinfo_get
  USING 'Z_PAY' 'ISESSION'
  CHANGING gs_field.
APPEND gs_field TO gt_field.

PERFORM f_fieldinfo_get
  USING 'Z_PAY' 'LIFNR'
  CHANGING gs_field.
APPEND gs_field TO gt_field.

PERFORM f_fieldinfo_get
  USING 'Z_PAY' 'LIFNR_TXT'
  CHANGING gs_field.
APPEND gs_field TO gt_field.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
  EXPORTING
    retfield    = 'ISESSION'
    dynpprog    = sy-repid
    dynpnr      = sy-dynnr
    dynprofield = 'SESSION'
    value_org   = 'S'
  TABLES
    value_tab   = gt_val_session
    field_tab   = gt_field.


FORM f_fieldinfo_get USING p_tabname p_fieldname
                     CHANGING p_s_field.

  CLEAR p_s_field.
  CALL FUNCTION 'DDIF_FIELDINFO_GET'
    EXPORTING
      TABNAME        = p_tabname
      FIELDNAME      = p_fieldname
    IMPORTING
      DFIES_WA       = p_s_field
    EXCEPTIONS
      NOT_FOUND      = 1
      INTERNAL_ERROR = 2
      OTHERS         = 3.

ENDFORM.                    " F_FIELDINFO_GET


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проблема с выводом данных в search help'е
СообщениеДобавлено: Чт, ноя 11 2010, 12:34 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
а где у Вас заполняется gt_val_session?

upd.
вот пример использования:
Code:
         SELECT *
          INTO TABLE <fs_tab> " <fs_tab>
          FROM (ic_tabname).


          CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
            EXPORTING
              ddic_structure  = ic_tabname
              retfield        = ic_par_name
            TABLES
              value_tab       = <fs_tab>
              return_tab      = lt_return_tab
            EXCEPTIONS
              parameter_error = 1
              no_values_found = 2
              OTHERS          = 3.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с выводом данных в search help'е
СообщениеДобавлено: Чт, ноя 11 2010, 13:17 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 02 2010, 12:17
Сообщения: 37
Откуда: МО
Пол: Мужской
табличка gt_val_session заполняется чуть выше.

Code:
SELECT type lifnr lifnr_txt isession
  FROM z_pay
  INTO CORRESPONDING FIELDS OF TABLE gt_val_session

Структура этой таблицы
Code:
TYPES:
  BEGIN OF values_session,
    isession            TYPE zwf_session,
    lifnr               TYPE lifnr,
    lifnr_txt           TYPE rstxtlg,
    type                TYPE zvtype,
    type_txt            TYPE rstxtlg,
  END OF values_session.

DATA: gt_val_session    TYPE TABLE OF values_session.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проблема с выводом данных в search help'е
СообщениеДобавлено: Чт, ноя 11 2010, 15:13 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
На входе в ФМ в gt_val_session одно количество записей, а отображается другое?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с выводом данных в search help'е  Тема решена
СообщениеДобавлено: Чт, ноя 11 2010, 16:55 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 02 2010, 12:17
Сообщения: 37
Откуда: МО
Пол: Мужской
BESA написал:
На входе в ФМ в gt_val_session одно количество записей, а отображается другое?

количество строк отображается правильно, но данные не выводится.

Проблему решил с помощью использования команды DESCRIBE DISTANCE BETWEEN.

Code:
PERFORM f_fieldinfo_get
  USING 'Z_PAY' 'ISESSION'
  CHANGING gs_field.

DESCRIBE DISTANCE BETWEEN gs_val_session AND gs_val_session-isession
  INTO gs_field-offset IN BYTE MODE.
APPEND gs_field TO gt_field.

PERFORM f_fieldinfo_get
  USING 'Z_PAY' 'LIFNR'
  CHANGING gs_field.

DESCRIBE DISTANCE BETWEEN gs_val_session AND gs_val_session-lifnr
  INTO gs_field-offset IN BYTE MODE.
APPEND gs_field TO gt_field.

PERFORM f_fieldinfo_get
  USING 'Z_PAY' 'LIFNR_TXT'
  CHANGING gs_field.

DESCRIBE DISTANCE BETWEEN gs_val_session AND gs_val_session-lifnr_txt
  INTO gs_field-offset IN BYTE MODE.
APPEND gs_field TO gt_field.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проблема с выводом данных в search help'е
СообщениеДобавлено: Пт, ноя 12 2010, 07:46 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
У меня все работает, я думаю дело в том, что Вы не правильно использовали DDIF_FIELDINFO_GET, я имею ввиду параметр FIELDNAME, не заполняйте его, используйте параметр LFIELDNAME, тогда DFIES_WA будет корректно заполнятся, и тогда не придётся использовать DESCRIBE DISTANCE BETWEEN, чтобы заполнить смещение.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с выводом данных в search help'е
СообщениеДобавлено: Пт, ноя 12 2010, 10:14 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 02 2010, 12:17
Сообщения: 37
Откуда: МО
Пол: Мужской
BESA написал:
У меня все работает, я думаю дело в том, что Вы не правильно использовали DDIF_FIELDINFO_GET, я имею ввиду параметр FIELDNAME, не заполняйте его, используйте параметр LFIELDNAME, тогда DFIES_WA будет корректно заполнятся, и тогда не придётся использовать DESCRIBE DISTANCE BETWEEN, чтобы заполнить смещение.

К сожалению, такой способ не помог.

В справке по ФМ F4IF_INT_TABLE_VALUE_REQUEST написано следующее:
Цитата:
If you want to pass the field description with FIELD_TAB (for example because you do not want to display all the fields), you normally should not only fill TABNAME and FIELDNAME. The module then gets all the information from the ABAP Dictionary. This also includes the relative position of a field to the beginning of the Dictionary structure. However, this usually will not agree with the relative position of the field in VALUE_TAB.

In this case it is better to fill table FIELD_TAB using module DDIF_FIELDINFO_GET. The relative position of the fields in VALUE_TAB should then be corrected in FIELD_TAB-OFFSET. You can use for example the ABAP command DESCRIBE DISTANCE here.

Поэтому меня и подтолгнуло использовать эту команду.


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

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


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

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


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

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