搜索帮助中根据界面条件显示实现方法一

来源:互联网 发布:华为网络 编辑:程序博客网 时间:2024/06/06 23:57

EG:

举个例子,假如界面中的库存地点要根据已输入的工厂进行显示搜索帮助,往往自己做的搜索帮助只能查询出全部的库存地点,并不能根据已输入的工厂进行查询。

这时候,我们只需要调用下函数:


TYPESBEGIN OF CURSORTYPE,
       FNAME LIKE D021S-FNAM,
       POS   LIKE SY-STEPL,
       VALUE LIKE D021S-FNAM,
       END OF CURSORTYPE.
DATASETCURSOR TYPE CURSORTYPE.
DATADYNPFIELDS LIKE DYNPREAD OCCURS WITH HEADER LINE.
DATADYNPRO_PROGRAM  LIKE SY-REPID"Programmpool und Nummer in dem
DATADYNPRO_NUMBER   LIKE SY-DYNNR"das aktuelle Dynpro liegt.


GET CURSOR FIELD  SETCURSOR-FNAME
               LINE   SETCURSOR-POS
               VALUE  SETCURSOR-VALUE.

  REFRESH DYNPFIELDS.
  MOVE 'P_WERKS' TO DYNPFIELDS-FIELDNAME.
  DYNPFIELDS-STEPL SETCURSOR-POS.
  APPEND DYNPFIELDS.

  DYNPRO_PROGRAM  SY-REPID.          "believe it or not - these
  DYNPRO_NUMBER   SY-DYNNR.          "assignments are necessary!

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      DYNAME                   DYNPRO_PROGRAM
      DYNUMB                   DYNPRO_NUMBER
      PERFORM_INPUT_CONVERSION 'X'
    TABLES
      DYNPFIELDS               DYNPFIELDS
    EXCEPTIONS
      INVALID_ABAPWORKAREA     1
      INVALID_DYNPROFIELD      2
      INVALID_DYNPRONAME       3
      INVALID_DYNPRONUMMER     4
      INVALID_REQUEST          5
      NO_FIELDDESCRIPTION      6
      INVALID_PARAMETER        7
      UNDEFIND_ERROR           8
      OTHERS                   9.

*  READ TABLE SCR_ITEM_M INDEX SETCURSOR-POS.
  READ TABLE DYNPFIELDS WITH KEY FIELDNAME 'P_WERKS'"P_WERKS是屏幕控件名
*end 读取屏幕工厂


如此之后,我们再编写搜索帮助的时候,就能按照屏幕中工厂条件进行搜索,当然,该方法只针对代码实现的搜索帮助。


0 0
原创粉丝点击