23. 5-я программа в SAP. Привязка Search Help к программе.

После того как мы создали Search Help в статье http://fibed.net/27/ его необходимо связать с нашей программой (т.е сделаем его доступным для наших полей на экране выбора Selection Screen). Для этого есть несколько способов.

1-й привяжем непосредственно к элементу экрана, это делается прямо в коде программы. Перед привязкой изменим код программы INCLUDE zkre_hw5_dataf01.

*----------------------------------------------------------------------*
***INCLUDE ZKRE_HW5_DATAF01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM data .

  REFRESH it_ran_quant.
  wa_ran_quant-sign = 'I'.
  wa_ran_quant-option = 'EQ'.
  wa_ran_quant-low = '555'.
  wa_ran_quant-high = ''.
  APPEND wa_ran_quant TO it_ran_quant.

  IF p_s2 EQ 'X'.
    CALL FUNCTION 'ZKRE_FM4'
      EXPORTING
        ir_quant    = it_ran_quant
      IMPORTING
        er_products = gt_products.
  ELSEIF p_s1 EQ 'X'.

    SELECT zkre_products~id supply_id name purchase_cost sale_cost quantity description supply_date
    INTO CORRESPONDING FIELDS OF TABLE gt_products
    FROM ( ( zkre_products INNER JOIN zkre_productst ON zkre_productst~prod_id = zkre_products~id )
    INNER JOIN zkre_supply ON zkre_supply~id = zkre_products~supply_id )
    WHERE zkre_products~name EQ p_name or zkre_products~id eq p_id .


  ENDIF.

  LOOP AT gt_products INTO gs_products.
    amount = amount + 1.
  ENDLOOP.

ENDFORM.                    " DATA

Выборка теперь будет происходить используя фильтрацию либо по NAME либо по ID.

Добавим в код MATCHCODE OBJECT zkre_sh_hw5 тем самым привязав к экрану выбора наше средство поиска.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETERS: p_id TYPE zkre_products-id MATCHCODE OBJECT zkre_sh_hw5.
PARAMETERS: p_name TYPE zkre_products-name MODIF ID m1.
SELECT-OPTIONS: p_quant FOR gs_products-quantity.
SELECT-OPTIONS: p_desc FOR gs_products-description NO INTERVALS.
PARAMETERS: p_s1 RADIOBUTTON GROUP uc1,
            p_s2 RADIOBUTTON GROUP uc1.

SELECTION-SCREEN END OF BLOCK bl1.

Сохраним активируем программу и запустим на выполнение.

image_307

В поле ID появилось СП - Search Help.

image_308

Нажав F4 появился список значений.

image_309

Нажимаем выполнить и получаем такой результат.

image_310

Теперь приявяжем наше СП к таблице и структуре.

Удалим строку MATCHCODE OBJECT zkre_sh_hw5.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETERS: p_id TYPE zkre_products-id. "MATCHCODE OBJECT zkre_sh_hw5.
PARAMETERS: p_name TYPE zkre_products-name MODIF ID m1.
SELECT-OPTIONS: p_quant FOR gs_products-quantity.
SELECT-OPTIONS: p_desc FOR gs_products-description NO INTERVALS.
PARAMETERS: p_s1 RADIOBUTTON GROUP uc1,
            p_s2 RADIOBUTTON GROUP uc1.

SELECTION-SCREEN END OF BLOCK bl1.

Зайдем в режим редактирования таблицы продуктов.

image_311

Отмечаем поле NAME и нажимаем кнопку Search Help.

image_312

Выскочило окошко где необходимо ввести имя Search Help.

image_313

Выскочило второе информационное окошко.

image_314

image_315

Сохраняем активируем, могут появиться предупреждения мы их игнорируем.

image_316

Перейдем на вкладку Entry help/check.

image_317

Запустив программу на выполнение видим что у двух полей появился поиск. При выборе одного поля второе заполняется автоматически.

image_318

У поля описание пока поиска нету так как экран выбора ссылается на структуру а не на таблицу. Зайдем в режим редактирования структуры ZKRE_S_PRODUCTS. Перейдем на вкладку Entry help/check.

image_319

И по аналогии с таблицей добавим наше средство поиска.

image_320

image_321

Сохраняем активируем. Запустим на выполнение программу.

image_322

Продолжим выполнение программы. Результата не получим так как в выборе данных описание не учавствует. Вот таким образом в SAP можно реализовать средство поиска и связать его с программой. В следующей статье - http://fibed.net/T/  я покажу как в САП можно реализовать проверку полномочий.

Комментарии

Чтобы оставить комментарий, необходимо Войти или Зарегистрироваться.