Текущее время: Чт, апр 18 2024, 06:28

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Проблема с ФМом F4IF_FIELD_VALUE_REQUEST
СообщениеДобавлено: Пн, янв 12 2009, 14:15 
Начинающий
Начинающий

Зарегистрирован:
Пн, янв 12 2009, 14:10
Сообщения: 19
Пол: Мужской
Добрый день!
Вызываю ФМ F4IF_FIELD_VALUE_REQUEST :
call function 'F4IF_FIELD_VALUE_REQUEST' "поиск по F4
exporting
tabname = TAB_NAME
fieldname = space
searchhelp = 'ZUDP_SH_FDU'
tables
return_tab = return_f4
exceptions
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
others = 5.
Проблема заключается в том, что в return_tab он записывает значение только одного поля из строки по которой мы кликнули, а нужно чтобы возвращал список значений полей этой строки.Может быть кто-нибудь подскажет как это сделать и возможно ли с использованием данного ФМа ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема с ФМом F4IF_FIELD_VALUE_REQUEST
СообщениеДобавлено: Пн, янв 12 2009, 14:57 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 229
Если не ошибаюсь, возвращаемые поля зависят от настроек серч хелпа, если там они не отмечены, то и возвращаться не будут


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с ФМом F4IF_FIELD_VALUE_REQUEST
СообщениеДобавлено: Пн, янв 12 2009, 15:34 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
F4IF_FIELD_VALUE_REQUEST - вернет Вам только одно поле, в независимости от того, сколько полей должно вернуться.

Можно попробовать вызвать сначала

f4if_get_shlp_descr для Вашего SH.
Затем в возвращенной переменной (SHLP) в табличке interface проставить valfield = '~' для нужных Вам полей.

И вызвать f4if_start_value_request

Code:
data: return type table of DDSHRETVAL,
      SHLP_DESCR type SHLP_DESCR.
FIELD-SYMBOLS: <fs> like line of SHLP_DESCR-interface.

parameters: bukrs(4).

AT SELECTION-SCREEN on VALUE-REQUEST FOR bukrs.
CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
  EXPORTING
    SHLPNAME       = <searchelp_name>
*   SHLPTYPE       = 'SH'
IMPORTING
   SHLP           = SHLP_DESCR
          .
loop at SHLP_DESCR-interface ASSIGNING <fs>.
<fs>-valfield = '~'.
endloop.

CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
  EXPORTING
    SHLP                = SHLP_DESCR
  TABLES
    RETURN_VALUES       = return
          .

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с ФМом F4IF_FIELD_VALUE_REQUEST
СообщениеДобавлено: Пн, янв 12 2009, 16:48 
Начинающий
Начинающий

Зарегистрирован:
Пн, янв 12 2009, 14:10
Сообщения: 19
Пол: Мужской
Lars написал:
F4IF_FIELD_VALUE_REQUEST - вернет Вам только одно поле, в независимости от того, сколько полей должно вернуться.

Можно попробовать вызвать сначала

f4if_get_shlp_descr для Вашего SH.
Затем в возвращенной переменной (SHLP) в табличке interface проставить valfield = '~' для нужных Вам полей.

И вызвать f4if_start_value_request

Code:
data: return type table of DDSHRETVAL,
      SHLP_DESCR type SHLP_DESCR.
FIELD-SYMBOLS: <fs> like line of SHLP_DESCR-interface.

parameters: bukrs(4).

AT SELECTION-SCREEN on VALUE-REQUEST FOR bukrs.
CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
  EXPORTING
    SHLPNAME       = <searchelp_name>
*   SHLPTYPE       = 'SH'
IMPORTING
   SHLP           = SHLP_DESCR
          .
loop at SHLP_DESCR-interface ASSIGNING <fs>.
<fs>-valfield = '~'.
endloop.

CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
  EXPORTING
    SHLP                = SHLP_DESCR
  TABLES
    RETURN_VALUES       = return
          .

Спасибо большое :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема с ФМом F4IF_FIELD_VALUE_REQUEST
СообщениеДобавлено: Вт, фев 10 2009, 17:09 
Начинающий
Начинающий

Зарегистрирован:
Чт, ноя 27 2008, 20:15
Сообщения: 2
И все же можно заставить и F4IF_FIELD_VALUE_REQUEST вернуть несколько значений.
Достаточно указать входные параметры Callback_program и callback_form, а в форме добавить в таблицу shlp-interface нужные для возвращения поля.

Code:
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'Некое поле'
*      window_title    = lc_title
      value_org       = 'S'
      CALLBACK_PROGRAM = sy-repid
      CALLBACK_form = 'F4IF_FORM'

    TABLES
      value_tab       = lt_f4if
      return_tab      = lt_return
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.

.....


FORM F4IF_FORM TABLES RECORD_TAB STRUCTURE SEAHLPRES
            CHANGING SHLP TYPE SHLP_DESCR
                      CALLCONTROL LIKE DDSHF4CTRL.
data ls_interface type DDSHIFACE.
ls_interface-shlpfield = 'F0003'.
ls_interface-valfield = '~'.
append ls_interface to shlp-interface.
endform.



Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с ФМом F4IF_FIELD_VALUE_REQUEST
СообщениеДобавлено: Чт, фев 12 2009, 12:38 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, окт 27 2008, 16:21
Сообщения: 33
Откуда: Москва
Пол: Мужской
Через эти CallBack`и можно также задавать входные параметры. У меня была аналогичная проблема.
В качестве примера можно посмотреть стандартную форму F4 в программе BCALV_F4. Она используется когда средство поиска вызывается стандартными средствами из ALV.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с ФМом F4IF_FIELD_VALUE_REQUEST
СообщениеДобавлено: Чт, мар 31 2011, 11:17 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Coldblooded написал(а):
И все же можно заставить и F4IF_FIELD_VALUE_REQUEST вернуть несколько значений.
Достаточно указать входные параметры Callback_program и callback_form, а в форме добавить в таблицу shlp-interface нужные для возвращения поля.

Code:
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING

- не та функция

Для F4IF_FIELD_VALUE_REQUEST колбэк видимо немного другой.
У меня сработало так:

Code:
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
    EXPORTING
      tabname                   = ''
      fieldname                 = ''
      searchhelp                = 'AANL'                        " Средство поиска
      callback_program         = sy-cprog
      callback_form            = 'CALLBACK_FORM'
    TABLES
      return_tab                = return_tab.                 " Здесь получаем все помеченные поля
...

* Программа вызываемая перед показом списка
FORM callback_form TABLES   record_tab STRUCTURE seahlpres
                   CHANGING shlp TYPE shlp_descr
                            callcontrol LIKE ddshf4ctrl.

  DATA interface LIKE LINE OF shlp-interface. " TYPE ddshiface.

* Помечаем все возвращаемые поля
  LOOP AT shlp-interface INTO interface.
    interface-f4field = 'X'.
    MODIFY shlp-interface FROM interface INDEX sy-tabix.
  ENDLOOP.

ENDFORM. " callback_form


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с ФМом F4IF_FIELD_VALUE_REQUEST
СообщениеДобавлено: Вт, сен 04 2018, 11:30 
Ассистент
Ассистент

Зарегистрирован:
Ср, янв 17 2018, 21:22
Сообщения: 36
Пол: Мужской
Вот простой пример использования этого ФМ: http://youcoder.ru/value_request_alv.html
Мне пригодился


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

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


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

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


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

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