SAP ABAP OVS 開發步驟

来源:互联网 发布:双头螺纹怎么编程 编辑:程序博客网 时间:2024/06/09 19:14


步骤1:在component里引用OVS component

DEPT_OVS WDR_OVS System Component for OVS Input Help

OVS WDR_OVS System Component for OVS Input Help

步骤2:在context 里的对应字段比如Z_CENTER_CD 的属性input help mode改为object value selector 在OVS component usage里选择你刚才添加的OVS 名字

步骤3:

在对应的view里引用刚才的OVS component

步骤4:增加OVS事件EVENT hander

步骤5:修改自动生成的代码



 


*****申請人事件*********


method OVS_APMAN_A .


*  TYPES:


*    BEGIN OF LTY_STRU_INPUT,     " 弹出框用于输入查询


*      KUNNR_TR TYPE LIFNR,


*      KUNNRTXT TYPE NAME1_GP,


*    END OF LTY_STRU_INPUT.


****************************表格的标签文本****************************


  TYPES:


    BEGIN OF LTY_STRU_LIST,


      APMAN     TYPE YSHA_APMAN,                             申請人工號


      APMANTX   TYPE YSHA_APMANTX,                           申請人名稱


      APBUKRS   TYPE YSHH_CMPCD,                             公司代碼


      APBUKRSTX TYPE YSHH_CMPNAM,                            公司名稱


    END OF LTY_STRU_LIST.


 


  TYPES:


    BEGIN OF LTY_WORK_LIST,


      EMPCODE   TYPE YSHH_EMPCD,                             申請人工號


      FULLNAME  TYPE YSHH_FULLNAM,                           申請人名稱


      COMPCODE  TYPE YSHH_CMPCD,                             公司代碼


      COMPNAME  TYPE YSHH_CMPNAM,                            公司名稱


    END OF LTY_WORK_LIST.


 


*  DATA: LS_SEARCH_INPUT  TYPE LTY_STRU_INPUT,"输入条件


  DATALS_SELECT_LIST   TYPE LTY_STRU_LIST,                 最終結構


        LT_SELECT_LIST   TYPE STANDARD TABLE OF LTY_STRU_LIST,


        LS_SEARCH_LIST   TYPE LTY_WORK_LIST,                 臨時結果


        LT_SEARCH_LIST   TYPE STANDARD TABLE OF LTY_WORK_LIST,


        LS_TEXT          TYPE WDR_NAME_VALUE,


        LT_LABEL_TEXTS   TYPE WDR_NAME_VALUE_LIST,           输入条件的标签文本


        LT_COLUMN_TEXTS  TYPE WDR_NAME_VALUE_LIST,           表格列头文本


        LS_EFORMINFO     TYPE YSHA_EFORMVIEW,                畫面信息結構


        LV_APMAN         TYPE YSHA_APMAN,                    申請人工號


        LV_APBUKRS       TYPE YSHH_CMPCD.                    公司代碼


*        LT_RANGE_APMAN   TYPE RANGE OF STRING,               " 申請人參數RANGE FOR SQL


*        LS_RANGE_APMAN   LIKE LINE OF LT_RANGE_APMAN,        " 申請人參數RANGE


*        LT_RANGE_APBUKRS TYPE RANGE OF STRING,               " 公司代碼參數RANGE FOR SQL


*        LS_RANGE_APBUKRS LIKE LINE OF LT_RANGE_APBUKRS.      " 公司代碼參數RANGE


 


*  FIELD-SYMBOLS: <LS_QUERY_PARAMS> TYPE LTY_STRU_INPUT,


  FIELD-SYMBOLS<LS_SELECTION>    TYPE LTY_STRU_LIST,


                 <LS_TABLE>        TYPE STANDARD TABLE,


                 <LS_VALUE>        TYPE ANY.


  CASE OVS_CALLBACK_OBJECT->PHASE_INDICATOR.


    WHEN IF_WD_OVS=>CO_PHASE_0.


      LS_TEXT-NAME `APMAN`.


      LS_TEXT-VALUE '員工工號'.


      INSERT LS_TEXT INTO TABLE LT_COLUMN_TEXTS.


 


      LS_TEXT-NAME `APMANTX`.


      LS_TEXT-VALUE '員工姓名'.


      INSERT LS_TEXT INTO TABLE LT_COLUMN_TEXTS.


 


      LS_TEXT-NAME `APBUKRS`.


      LS_TEXT-VALUE '公司代碼'.


      INSERT LS_TEXT INTO TABLE LT_COLUMN_TEXTS.


 


      LS_TEXT-NAME `APBUKRSTX`.


      LS_TEXT-VALUE '公司名稱'.


      INSERT LS_TEXT INTO TABLE LT_COLUMN_TEXTS.


 


      OVS_CALLBACK_OBJECT->SET_CONFIGURATION(


                LABEL_TEXTS  LT_LABEL_TEXTS


                COLUMN_TEXTS LT_COLUMN_TEXTS


                WINDOW_TITLE '申請人输入帮助'              彈出窗口抬頭信息


                TABLE_HEADER '申請人输入帮助').            " TABLE抬頭信息


    WHEN IF_WD_OVS=>CO_PHASE_2.


      LS_EFORMINFO WD_THIS->GET_EFORMINFO( ).              畫面信息取得


      LV_APMAN       LS_EFORMINFO-APMAN.                   申請人工號


      LV_APBUKRS     LS_EFORMINFO-APBUKRS.                 公司代碼


 


      CALL FUNCTION 'YSHA_W001_APMAN_VAGUE'


        EXPORTING


          APMAN                LV_APMAN


          APBUKRS              LV_APBUKRS


        TABLES


          LT_SEARCH_LIST       LT_SEARCH_LIST


          .


 


      "***********************結構轉換***********************


      LOOP AT LT_SEARCH_LIST INTO LS_SEARCH_LIST.


        LS_SELECT_LIST-APMAN     LS_SEARCH_LIST-EMPCODE.     申請人工號


        LS_SELECT_LIST-APMANTX   LS_SEARCH_LIST-FULLNAME.    申請人名稱


        LS_SELECT_LIST-APBUKRS   LS_SEARCH_LIST-COMPCODE.    公司代碼


        LS_SELECT_LIST-APBUKRSTX LS_SEARCH_LIST-COMPNAME.    公司名稱


 


        APPEND LS_SELECT_LIST TO LT_SELECT_LIST.               " TABLE做成


      ENDLOOP.


 


      OVS_CALLBACK_OBJECT->SET_OUTPUT_TABLEOUTPUT LT_SELECT_LIST ).


    WHEN IF_WD_OVS=>CO_PHASE_3.


      ASSIGN OVS_CALLBACK_OBJECT->SELECTION->TO <LS_SELECTION>.


      IF <LS_SELECTION> IS ASSIGNED.


        OVS_CALLBACK_OBJECT->CONTEXT_ELEMENT->SET_STATIC_ATTRIBUTES(


                               STATIC_ATTRIBUTES <LS_SELECTION> ).


      ENDIF.


 


      WD_THIS->I_SET_USERINFO( ). "設置部門代碼、部門名稱、職務代碼、職務名稱


  ENDCASE.


endmethod.

定期更新SAP知识




个人微信公众号:

原创粉丝点击