现在的位置: 首页 > 综合 > 正文

Search Help技术

2013年10月03日 ⁄ 综合 ⁄ 共 1927字 ⁄ 字号 评论关闭

Search Help无疑是SAP技术的一大亮点,即简化了用户的输入也增强了数据的准确性,SAP的标准屏幕字段几乎全部应用了Search Help技术,由于习惯问题现在很多客户都都要求自开发程序也要有search help,所以以后开发程序尽量像SAP标准靠齐吧,闲话不多说了下面说说search help在程序的应用。

在选择屏幕(或者Dialog)字段应用Search Help主要有两种方法

1、直接参考数据表的相关字段
        
比如: parameters p_01 like zstud-stunum. 
                       parameters p_02 like zstud-stuname.
         这种参考数据字典的方式首先必须要创建一个Search Help,然后将表字段链接到这SH也有两种方法
                       A.直接在SE11的表字段上(这种方式按F4键可能会带出多个值,具体要看SH的参数而定),如图:a1
                    B.通过数据元素实现Search help,如图:
          a2

2、通过POV事件代码实现Search help功能 
     data: begin of gtd_stu occurs 0,
      stunum like zstud-stunum,
      stuname like zstud-stuname,
      stugrade like zstud-stugrade,
     end of gtd_stu.

parameters p_03 type decimals 2. 
注意这里的P_03没有参考表字段

at selection-screen on value-request for p_03.
  DATA: WLS_RETURN TYPE DDSHRETVAL,
       WLT_RETURN LIKE TABLE OF WLS_RETURN.
  CLEAR gtd_stu.
  REFRESH gtd_stu.
  SELECT stunum stuname stugrade
    INTO CORRESPONDING FIELDS OF TABLE gtd_stu
    FROM zstud.

  CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
    EXPORTING
      RETFIELD        = ‘STUDGRADE’
      VALUE_ORG       = ‘S’
    TABLES
      VALUE_TAB       = gtd_stu
      RETURN_TAB      = WLT_RETURN
    EXCEPTIONS
      PARAMETER_ERROR = 1
      NO_VALUES_FOUND = 2
      OTHERS          3.

  READ TABLE WLT_RETURN INDEX INTO WLS_RETURN.
  IF SY-SUBRC EQ 0.
    p_03 = WLS_RETURN-FIELDVAL.
  ENDIF.
最后介绍一下Search help的相关特性,IMP表示输入,EXP表示输出,如图:
    a3

   可以看出有蓝色背景的字段是会输出到屏幕字段上的。

调用SAP标准的Search Help:
  AT SELECTION-SCREEN ON VALUE-REQUEST FOR aufnr-LOW.
  CALL FUNCTION ‘F4IF_FIELD_VALUE_REQUEST’
    EXPORTING
      TABNAME           ‘COAS’
      FIELDNAME         ‘AUFNR’
      SEARCHHELP        ‘ORDE’
    TABLES
      RETURN_TAB        LS
    EXCEPTIONS
      FIELD_NOT_FOUND   1
      NO_HELP_FOR_FIELD 2
      INCONSISTENT_HELP 3
      NO_VALUES_FOUND   4
      OTHERS            5.

  IF SY-SUBRC 0.
    READ TABLE LS INDEX 1.
    aufnr-LOW LS-FIELDVAL.
  ENDIF.

抱歉!评论已关闭.