Текущее время: Чт, июл 31 2025, 15:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Средство поиска в Table Control
СообщениеДобавлено: Вт, янв 27 2009, 13:08 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:57
Сообщения: 6
Пол: Мужской
Добрый день! У меня есть экран с Table Control, привязанным к внутренней таблице, привязанной к таблице абап-словаря. Для двух полей, Завод и Склад, у меня есть средство поиска: выводится склад только для завода, введенного в первом поле. При тестировании средства поиска автономно все работает нормально. Но после привязки средства поиска к соответствующим полям таблицы, оно не может получить значение поля Завод. Т.е. при нажатии F4 на поле Склад в SHLP-INTERFACE лежит инфа только о поле, на котором была нажата F4(Склад). Я пробовал получить эти значения при помощи F4UT_RESULTS_MAP и F4UT_PARAMETER_VALUE_GET, но ничего не выходит. Как я могу получить содержимое поля Завод?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Вт, янв 27 2009, 13:12 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Может я Вас не правильно понял, но почему просто не подвязать эти средства поиска к полям через экран на вкладке ССЫЛКИ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Вт, янв 27 2009, 13:18 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:57
Сообщения: 6
Пол: Мужской
Я так и сделал, оба поля привязаны к моему средству поиска


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Вт, янв 27 2009, 13:28 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Eugene_M написал:
Я так и сделал, оба поля привязаны к моему средству поиска

как Вы сделали средство поиска, какие параметры импорт, какие экспорт? Скорее всего ошибка в средстве поиска, как оно определяет какое значение вам надо вывести? или я что то путаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Вт, янв 27 2009, 14:14 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
А почему не хотите чтобы экранная таблица ссылалась на объект abap словаря ?
Заполнять внутреннюю таблицу можно и без привязки её к table control (хотя тут вопрос, что Вы имели ввиду под "привязана")

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Вт, янв 27 2009, 18:02 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:57
Сообщения: 6
Пол: Мужской
Средство поиска такое:
LOGED type ZEWERKS - import, export
SKLADLED type ZELGORT - import, export

Поля в таблице соответствующие: GS_ZTESUBH-LOGED и GS_ZTESUBH-SKLADLED, для них в свойстве "СредПоиска" прописано одно и то же средство поиска.
Мне нужно, чтобы можно было вводить в первое поле(Завод) значение, а при F4 на втором(Склад) полявлялась таблица со списком складов при нужном заводе.
Я поставил break-point в теле search help exit'a и смотрю как отрабатывается код:
DATA: VALUE1 TYPE DDSHIFACE-VALUE.
......................................
BREAK-POINT.

CALL FUNCTION 'F4UT_RESULTS_MAP'
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
source_tab = GT_REC1
CHANGING
shlp = shlp
callcontrol = callcontrol.
IF sy-subrc = 0.
callcontrol-step = 'DISP'.
ELSE.
callcontrol-step = 'EXIT'.
ENDIF.

CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'
EXPORTING
Parameter = 'GS_ZTESUBH-LOGED'
IMPORTING
VALUE = VALUE1
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
results_tab = GT_REC1
CHANGING
shlp = shlp
callcontrol = callcontrol
EXCEPTIONS
parameter_unknown = 1
OTHERS = 2.

В переменную VALUE1 ничего не записывается.

Table Control привязан к таблице GT_ZTESUBH(т.е. содержимое компонента определяется содержимым этой таблицы), т.к. мне еще надо обработать данные и только потом сохранять в БД.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Вт, янв 27 2009, 18:17 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Может быть, я не совсем понимаю, но мне кажется гораздо проще сделать table control чьей рабочей областью будет не рабочая область внутренней таблицы а рабочая область объекта бд sap. если Вас смущает. что это будет ссылка на Вашу таблицу (хотя страшного в этом ни чего нет, это ссылка всего лишь на рабочую область, которая не сделает неужных обновлений), сделайте структурку схожую с Вашей внутренней таблицей и подвесте к ней хелпы. В table control положите эту самую структурку и все будет в порядке.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Вт, янв 27 2009, 18:29 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:57
Сообщения: 6
Пол: Мужской
Сделал контрол, привязанный к таблице БД. Не помогает, значения все равно не видит


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Ср, янв 28 2009, 10:27 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Прошу прощения, ошибся. Я говорил о проверочных таблицах.

Тогда, видимо, надо писать process on value-request.
Читать в нем значения параметров и передавать их в SH.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Ср, янв 28 2009, 15:48 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:57
Сообщения: 6
Пол: Мужской
Как именно нужно разместить PROCESS ON VALUE-REQUEST, чтобы в модуль передавалось значение GS_ZTESUBH-LOGED? Я после блока PAI написал:
PROCESS ON VALUE-REQUEST. "F4
FIELD GS_ZTESUBH-SKLADLED MODULE help_skladed.
...............
MODULE help_skladed INPUT.
TYPES: BEGIN OF ls_search1,
werks TYPE zewerks,
lgort TYPE zelgort,
END OF ls_search1.
DATA: lt_search1 TYPE TABLE OF ls_search1 WITH HEADER LINE,
it_tab_return TYPE TABLE OF ddshretval,
ls_return TYPE ddshretval.
BREAK-POINT.
SELECT * FROM t001l
APPENDING CORRESPONDING FIELDS OF TABLE lt_search1
where werks = gs_ztesubh-loged.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'SKLADLED'
dynpprog = sy-repid
dynpnr = sy-dynnr
value_org = 'S'
TABLES
value_tab = lt_search1
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.
READ TABLE it_tab_return INDEX 1 INTO ls_return.
gs_ztesubh-skladled = ls_return-fieldval.
ENDMODULE. " HELP_SKLADED INPUT

В help_skladed значение gs_ztesubh-loged не попадает. Как мне его подцепить?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Ср, янв 28 2009, 15:56 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Чтобы получить значение(я) из поля сделайте так:

Code:
data: dynpfields type table of DYNPREAD with header LINE.
data: stepl like SY-STEPL.

CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
POVSTEPL = stepl
EXCEPTIONS
STEPL_NOT_FOUND = 1
OTHERS = 2.

  CLEAR dynpfields[].
  dynpfields-fieldname  = 'GS_ZTESUBH-LOGED'.
  dynpfields-stepl = stepl.
  APPEND dynpfields.

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname     = sy-repid
      dynumb     = номер экрана
    TABLES
      dynpfields = dynpfields.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Средство поиска в Table Control
СообщениеДобавлено: Ср, янв 28 2009, 16:19 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 27 2009, 12:57
Сообщения: 6
Пол: Мужской
Спасибо, все получилось :D


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

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


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

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


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

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