Текущее время: Пт, мар 29 2024, 14:58

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


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

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


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

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