Текущее время: Пт, авг 01 2025, 11:44

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


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

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


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

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