• ABAP search help (搜索帮助) 几种种方法


    ABAP search help (搜索帮助) 几种种方法

     

     ABAP 的搜索帮助有很多种方法,掌握下面的几种基本差不多了

    *&---------------------------------------------------------------------*
    *& Report  ZTEST1
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*

    REPORT  ZTEST1.

    tables: mara.

     DATA:ok_code TYPE sy-ucomm,
           save_ok TYPE sy-ucomm.

    parameters: l_matnr type matnr matchcode object zmara. " 第1种-简单的弹出对话框

    PARAMETERS:l_ebeln type ebeln matchcode object ZEKKO. " 第2种-selectio-method 是 view。


    * 第3种,上下两个是关联在一块的。工厂和库存地点。
    PARAMETERS:l_werks type zwerks_logrt-werks.
    PARAMETERS:l_logrt type zwerks_logrt-logrt.


    * 第4种,selection screen 中的 :日期类型的search help。这种方法要注意在dialogue screen 中,要在元素清单中reference中 l_data添加DATS,
    *按钮才会出来,否则要按F4,才能出来帮助按钮。
    PARAMETERS:l_data type dats.


    * 第5种:dialogue screen 中的 屏幕下拉框。

     data l_date type dats." dialogue screen 中的日期类型的search help 创建。
     call screen '0100'.

     data l_ver type char10.

    Module drop_down_list output.

      TYPE-POOLS vrm.
      DATA :name TYPE vrm_id,
            List TYPE vrm_values,
            Value LIKE LINE OF list.
      Name = 'L_VER'. "屏幕上绑定的下拉框也是这个名字。
      REFRESH list.
      Value-key = 'A'.
      Value-text = '西海岸'.
      APPEND value TO list.

      Value-key = 'B'.
      Value-text = '东海岸'.
      APPEND value TO list.

      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          id     = name
          values = list.

    ENDMODULE.                    "drop_down_list OUTPUT
    *&---------------------------------------------------------------------*
    *&      Module  STATUS_0100  OUTPUT
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    MODULE STATUS_0100 OUTPUT.
    SET PF-STATUS '0100'.
     SET TITLEBAR '0100'.

    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&---------------------------------------------------------------------*
    *&      Module  USER_COMMAND_0100  INPUT
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    MODULE USER_COMMAND_0100 INPUT.
    SAVE_OK =  OK_CODE .
      clear:OK_CODE.
      case:SAVE_OK.
        when 'BACK' or 'EXIT' or 'CACEL'.
          leave to screen 0.
      endcase.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT

    *****************************************************

    module value_z005 input.
      datafields  like table of help_value with header line,
            select_value type string
            .
      databegin of valuetab occurs 0,
        value(40),
      end of valuetab.
      data: ls_vbak like vbak.
      clear: valuetab, valuetab[], fields[]fields.
    *填写显示的列
      fields-tabname 'VBAK'.
      fields-fieldname 'VBELN'.
      fields-selectflag 'X'.
      append fields.

      fields-tabname 'VBAK'.
      fields-fieldname 'ERDAT'.
      fields-selectflag ''.
      append fields.

      fields-tabname 'VBAK'.
      fields-fieldname 'VKORG'.
      fields-selectflag ''.
      append fields.

      fields-tabname 'VBAK'.
      fields-fieldname 'Z006'.
      fields-selectflag ''.
      append fields.

    *按照上面的顺序填写数据
      select * from vbak into ls_vbak where kunnr = vbak-kunnr
                                         and auart in ('Z002','Z025','Z026')
                                         and z001 > 0.
        valuetab = ls_vbak-vbeln.
        append valuetab.
        valuetab = ls_vbak-erdat.
        append valuetab.
        valuetab = ls_vbak-vkorg.
        append valuetab.
        valuetab = ls_vbak-z001.
        condense valuetab.
        append valuetab.
      endselect.

      call function 'HELP_VALUES_GET_WITH_TABLE'
        importing
          select_value                        = select_value "选中的值
        tables
          fields                              fields "显示的列
          valuetab                            = valuetab "每列的数据
        exceptions
          field_not_in_ddic                   1
          more_then_one_selectfield           2
          no_selectfield                      3
          others                              4
                .
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      else.
        vbak-z005 = select_value.
      endif.



    endmodule.                 " VALUE_Z005  INPUT

  • 相关阅读:
    程序员学习提高必看的一篇文章
    SpringAOP拦截器的代理机制
    springboot03_RabbitMQ
    Docker_02
    Docker_01
    Redis_02
    Redis_01
    关于Linux下内存和Swap
    密码学DAY2
    密码学DAY1_02
  • 原文地址:https://www.cnblogs.com/sap-ronny/p/8630888.html
Copyright © 2020-2023  润新知