从网上档的关于在SAP中调用MEDIA PLAYER的代码,自己添加完整

在SCREEN 中定义一个容器,名字是CONT

                                PLAY、STOP、BACK 按钮

                                PBO中对于FILE调用本地文件浏览方法

 

 

*&---------------------------------------------------------------------* *& Report ZMEDIOPLAYER_TEST *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zmedioplayer_test. CLASS lcl_player DEFINITION DEFERRED. DATA o_b TYPE REF TO lcl_player. DATA cont TYPE REF TO cl_gui_custom_container. DATA ok_code TYPE sy-ucomm. data file like rlgrap-filename. *----------------------------------------------------------------------* * CLASS lcl_player DEFINITION *----------------------------------------------------------------------* CLASS lcl_player DEFINITION INHERITING FROM cl_gui_control. PUBLIC SECTION. METHODS: constructor * IMPORTING * cont TYPE REF TO cl_gui_custom_container EXCEPTIONS cntl_error cntl_install_error , stop, play. ENDCLASS. "lcl_player DEFINITION *----------------------------------------------------------------------* * CLASS lcl_player IMPLEMENTATION *----------------------------------------------------------------------* CLASS lcl_player IMPLEMENTATION. METHOD constructor. CALL METHOD super->constructor EXPORTING clsid = '{6BF52A52-394A-11d3-B153-00C04F79FAA6}' parent = cont EXCEPTIONS cntl_system_error = 1 OTHERS = 2. CASE sy-subrc . WHEN 1 . RAISE cntl_install_error . WHEN 2 . RAISE cntl_error . ENDCASE . CALL METHOD cl_gui_cfw=>subscribe EXPORTING ref = me shellid = me->h_control-shellid EXCEPTIONS OTHERS = 1. IF sy-subrc NE 0 . RAISE cntl_error . ENDIF . ENDMETHOD. "constructor METHOD stop. CALL METHOD me->call_method EXPORTING method = 'Close' EXCEPTIONS cntl_error = 1 cntl_system_error = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDMETHOD. "STOP METHOD play. DATA: l_url TYPE char100. CHECK file IS NOT INITIAL. l_url = file. REPLACE ALL OCCURRENCES OF '/' IN l_url WITH '//'. CONCATENATE 'file://' l_url INTO l_url. CALL METHOD set_property EXPORTING property = 'Url' value = l_url EXCEPTIONS cntl_system_error = 1 cntl_error = 2 OTHERS = 3. ENDMETHOD. "play ENDCLASS. "lcl_player IMPLEMENTATION START-OF-SELECTION. CALL SCREEN 100. *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_0100 OUTPUT. IF cont IS INITIAL. CREATE OBJECT cont EXPORTING container_name = 'CONT'. CREATE OBJECT o_b. ENDIF. ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE user_command_0100 INPUT. CASE sy-ucomm. WHEN 'BACK'. LEAVE TO SCREEN 0. WHEN 'PLAY'. CALL METHOD o_b->play. WHEN 'STOP'. CALL METHOD o_b->stop. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* *& Module choose_file OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE choose_file OUTPUT. IF file IS INITIAL. CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_filename = '*.*' mask = ',*.*,*.*.' title = 'SELECT YOUR LOCAL FILE' IMPORTING filename = file EXCEPTIONS inv_winsys = 1 no_batch = 2 selection_cancel = 3 selection_error = 4 OTHERS = 5. ELSE. ENDIF. ENDMODULE. " choose_file OUTPUT

 

有待改善的地方:在屏幕中的FILE字段的按钮不好使。

 

效果如下:

从网上档的关于在SAP中调用MEDIA PLAYER的代码,自己添加完整_第1张图片

 

部分代码转自:http://sapjava.javaeye.com/blog/536926

你可能感兴趣的:(从网上档的关于在SAP中调用MEDIA PLAYER的代码,自己添加完整)