Текущее время: Чт, май 15 2025, 13:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: И снова про Search Help ...
СообщениеДобавлено: Пт, июн 24 2005, 04:07 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пт, окт 22 2004, 13:10
Сообщения: 33
Откуда: Сибирь
Скажите пожалуйста, можно каком-либо образом вернуть из SH 2 значения или целую запись, а не одно только поле ?
Вот что я имею ввиду, допустим есть внутренняя таблица в диалоговом отчете, представленная на экране. Эта таблица среди прочих имеет поля MATNR и MEINS. Я хочу повесить SH на поле MATNR
в котором можно было бы возвращать значения сразу 2-х упомянутых полей выбранной записи. Про то что нужно писать field exit я знаю, и принцип его написания я изучил. Мне непонятно как вернуть значения 2-х полей или может сразу запись?
(Некоторое время назад я уже спрашивал про field exit'ы - и мне исчерпывающе эдесь исчерпывающе рассказали какие бывают ФМ. Но их достаточно много, структура данных сложна, поэтому хотелось бы узнать номер курса, где бы об этом подробно говорилось или отошлите к исчерпывающему примеру. Опять же перерыл архив этого форума, но ничего не нашел :( ) Точнее нашел, вот только разобраться в нем не могу.

Я уже подумал что нельзя сделать такого стандартными средствами и нашел программку, форму из которой хочу привести ниже, однако она замечательно работает при возврате одного значения, но категорически отказывается возвращать 2 значения.

я наивно полагал что таблица FIELDS_OUT_TAB, которая отлично работает для одного значения, для 2-х значений будет содержать
2-е записи для 2-х значений - увы, это оказалось не так.

Все это для версии 4.0B

Code:
*** здесь начинается код

  FIELD = 'MATNR'.
  FIELD2= 'MEINS'.
   
  DATA: SHLP TYPE SHLP_DESCR_T.
  DATA: CALL_CONTROL LIKE DDSHF4CTRL.
  DATA: FIELDS_OUT_TAB LIKE TABLE OF DDSHRETVAL WITH HEADER LINE.
  DATA: WA_INTERFACE LIKE DDSHIFACE.

  CLEAR: SHLP, CALL_CONTROL, FIELDS_OUT_TAB, WA_INTERFACE, RESULT.
  REFRESH: FIELDS_OUT_TAB.

* получить описание Search help
  CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
       EXPORTING
            SHLPNAME = 'MAT1W'
       IMPORTING
            SHLP     = SHLP
       EXCEPTIONS
            OTHERS   = 1.
  CHECK SY-SUBRC = 0.

* отметить поля, для которых надо вернуть значения
  READ TABLE SHLP-INTERFACE WITH KEY SHLPFIELD = FIELD
                                     INTO WA_INTERFACE.
  CHECK SY-SUBRC = 0.
  WA_INTERFACE-VALFIELD = FIELD.
  MODIFY SHLP-INTERFACE FROM WA_INTERFACE INDEX SY-TABIX.

  READ TABLE SHLP-INTERFACE WITH KEY SHLPFIELD = FIELD2
                                     INTO WA_INTERFACE.
  CHECK SY-SUBRC = 0.
  WA_INTERFACE-VALFIELD = FIELD2.
  MODIFY SHLP-INTERFACE FROM WA_INTERFACE INDEX SY-TABIX.

* вызвать Search help
  CALL FUNCTION 'F4_SEARCH_HELP'
       EXPORTING
            SHLP         = SHLP
            CALL_CONTROL = CALL_CONTROL
            STARTING_X   = STARTING_X
            STARTING_Y   = STARTING_Y
       TABLES
            FLDS_OUT_TAB = FIELDS_OUT_TAB
       EXCEPTIONS
            OTHERS       = 1.
  CHECK SY-SUBRC = 0.

* найти выбранные значения
  READ TABLE FIELDS_OUT_TAB WITH KEY SHLPNAME  = SHLPNAME
                                     FIELDNAME = FIELD.
  CHECK SY-SUBRC = 0.
  RESULT = FIELDS_OUT_TAB-FIELDVAL.

  READ TABLE FIELDS_OUT_TAB WITH KEY SHLPNAME  = SHLPNAME
                                     FIELDNAME = FIELD2.
  CHECK SY-SUBRC = 0.
  RESULT2 = FIELDS_OUT_TAB-FIELDVAL.

*** здесь код заканчивается


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

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
можно, конечно.
для этого надо объявить структуру внутренней таблицы (от которой поля на экране) LIKE <структура СД> и повесить на структуру СД Search Help, который имеет несколько параметров экспорта.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 24 2005, 12:18 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пт, окт 22 2004, 13:10
Сообщения: 33
Откуда: Сибирь
nicky555 написал:
можно, конечно.
для этого надо объявить структуру внутренней таблицы (от которой поля на экране) LIKE <структура СД> и повесить на структуру СД Search Help, который имеет несколько параметров экспорта.


спасибо за ответ

не вполне понял, но чтобы не отнимать у тебя время , нельзя ли пример, а я в нем сам постараюсь разобраться.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 27 2005, 07:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Пусть есть структура ZXXX, поля WERKS DISPO.
Проверочная таблица на поле DISPO - T024D (ключ WERKS&DISPO)

параметры на экране
pa_werks like zxxx-werks
pa_dispo like zxxx-dispo

при выборе dispo выбирается также werks.

Пример не точь-в-точь, но принцип работы тот же. Например, вместо проверочной таблицы ты можешь прицепить средство поиска H_T024D к структуре ZXXX.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 27 2005, 08:19 
Гость
Выбраная в SH строка остаётся в sy-lilli - текущая строка списка (по моему так - ABAPа под рукой нет) если в SH нужное поле отображается - можно использовать это извращение


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 28 2005, 17:22 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
У меня это сделано примерно так: (кстати, тоже на форуме подсказали)

Code:
...
  data: return_tab like ddshretval occurs 0 with header line.

  call function 'F4IF_FIELD_VALUE_REQUEST'
      exporting
          tabname           = 'ZPM_CCRQK'
          fieldname         = 'KUNNR'
          searchhelp        = 'ZPM_CCRQK'
          callback_program  = 'ZPM_CCRQ'
          callback_form     = 'CB_F4_VALUE_REQUEST'
      tables
          return_tab        = return_tab
      exceptions
          field_not_found   = 1
          no_help_for_field = 2
          inconsistent_help = 3
          no_values_found   = 4
          others            = 5.

   if not return_tab[] is initial.
      read table return_tab with key shlpname = 'ZPM_CCRQK'
                                    fieldname = 'KUNNR'.
      ...
      read table return_tab with key shlpname = 'ZPM_CCRQK'
                                    fieldname = 'WADAT'.
      ...
      read table return_tab with key shlpname = 'ZPM_CCRQK'
                                    fieldname = 'WERKS'.
      ...
      read table return_tab with key shlpname = 'ZPM_CCRQK'
                                    fieldname = 'VKBUR'.
...

form cb_f4_value_request tables record_tab structure seahlpres
                       changing shlp type shlp_descr_t
                                callcontrol like ddshf4ctrl.
  data: wa_props like ddshfprop,
        wa_intf like ddshiface.

  loop at shlp-fieldprop into wa_props where shlpoutput = 'X'.
     read table shlp-interface into wa_intf
          with key shlpfield = wa_props-fieldname.
             wa_intf-f4field = 'X'.
     modify shlp-interface from wa_intf index sy-tabix
            transporting f4field.
  endloop.
endform.                    "CB_F4_VALUE_REQUEST


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 29 2005, 12:26 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пт, окт 22 2004, 13:10
Сообщения: 33
Откуда: Сибирь
спасибо большое !


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 27 2006, 12:50 
Специалист
Специалист

Зарегистрирован:
Сб, авг 20 2005, 12:39
Сообщения: 229
Откуда: Киев
nicky555 написал:
Пусть есть структура ZXXX, поля WERKS DISPO.
Проверочная таблица на поле DISPO - T024D (ключ WERKS&DISPO)

параметры на экране
pa_werks like zxxx-werks
pa_dispo like zxxx-dispo

при выборе dispo выбирается также werks.

Пример не точь-в-точь, но принцип работы тот же. Например, вместо проверочной таблицы ты можешь прицепить средство поиска H_T024D к структуре ZXXX.

Воспользовался этой подсказкой для реализации случая выбора номера и года документа материала (проверочная таблица - MKPF). Но есть один непонятный момент: на появляющемся экране поиска в графе поиска "ГодДокумМатериала" стоит пробел (знак множественного выбора при этом: "="). Это приводит к тому, что по таким критериям никакие документы не находятся - нужно либо очищать поле от пробела, либо задавать явно год.
Подскажите, с чем может быть связано появление этого пробела? И как этоого избежать, кроме как задавать для парметра по умолчанию текущий год? :oops:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 16 2007, 13:59 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, июн 05 2006, 13:33
Сообщения: 805
Пол: Мужской
nicky555 написал:
можно, конечно.
для этого надо объявить структуру внутренней таблицы (от которой поля на экране) LIKE <структура СД> и повесить на структуру СД Search Help, который имеет несколько параметров экспорта.

Каким образом повесить на структуру СД Search Help?
Ведь Search Help вешается на отдельные поля структуры.
(версия 4.6C)

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 16 2007, 15:13 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
1.Если структура стандартная, то через Дополн. структуру надо добавить поля структуры, как бы еще раз(Вкл.дополн.).
2.Затем установив на одно из полей курсор жми Сред. поиска, выбирай его. После этого возможно надо будет подкорректировать привязку параметров СП к полям.
Если структура своя, то сразу п.2.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 30 2007, 16:09 
Специалист
Специалист

Зарегистрирован:
Вт, авг 09 2005, 15:51
Сообщения: 149
Неудобно спрашивать, но куда именно вставляется этот код? А то у меня грид создается функцией REUSE_ALV_GRID_DISPLAY, и год документа при выборе номера не проставляется... Если запускать средство поиска отдельно - проставляется. А в гриде - не хочет.


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

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


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

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


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

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