Заказчику потребовалось создать средство поиска для дебитора и подключить его к стандартному DEBI. Поиск по 2м таблицам: KNVH и KNA1. Необычность в том, что в KNVH надо искать и по номеру клиента (KUNNR) и по номеру вышестоящего клиента (HKUNNR), а также по именам того и другого (NAME1 из KNA1). Фактически обращение к KNA1 происходит по двум разным записям.
Просто для проверки возможности такого вызова написал для начала простенький репорт, где через вызов SELECT получается результат (s_*_selopt на основе SELECT-OPTIONS):
SELECT h~hkunnr k2~name1 h~kunnr k1~name1 h~vkorg INTO TABLE lt_itab FROM ( ( knvh AS h INNER JOIN kna1 AS k1 ON k1~mandt = h~mandt AND k1~kunnr = h~kunnr ) INNER JOIN kna1 AS k2 ON k2~mandt = h~mandt AND k2~kunnr = h~hkunnr ) WHERE h~hkunnr IN s_hknr_selopt[] AND k2~name1 IN s_hnam_selopt[] AND h~kunnr IN s_knr_selopt[] AND k2~name1 IN s_nam_selopt[].
Все работает.
Хотел сначала создать СП на основе ракурса, но ракурс в ракурс вроде не подключается (основной ракурс содержал бы обращение к KNA1 по HKUNNR, а включаемый - по KUNNR, вот и вышло бы 2 записи).
Остается только обработка средства поиска на основе FM.
Расширил DEBI на комплексное средство, подключил в него свое элементарное, где поля HKUNNR, NAME, KUNNR, NAME1 идут на Import, и только KUNNR - на Export. Все поля описаны на основе элементов данных. Присвоение параметров сделано. Вставил FM, созданный копированием из F4IF_SHLP_EXIT_EXAMPLE, в нем на шаге SELECT добавил свой SELECT и сделал заполнение RECORD_TAB через F4UT_RESULTS_MAP.
И вот тут проблема - при вызове моего средства поиска из DEBI, система не предлагает ввести входные параметры, а сразу показывает результат - т.е. по максимуму все записи. Что нужно сделать, чтобы сначала ввести параметры как в других закладках DEBI?
|
|