SAP中调用MEDIA PLAYER的代码

原文出自:http://blog.csdn.net/leechirslcc/article/details/4932776


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

                                PLAY、STOP、BACK 按钮

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

 

 

[java]  view plain copy
  1. *&---------------------------------------------------------------------*  
  2. *& Report  ZMEDIOPLAYER_TEST  
  3. *&  
  4. *&---------------------------------------------------------------------*  
  5. *&  
  6. *&  
  7. *&---------------------------------------------------------------------*  
  8.   
  9. REPORT  zmedioplayer_test.  
  10.   
  11. CLASS lcl_player DEFINITION DEFERRED.  
  12. DATA o_b TYPE REF TO lcl_player.  
  13.   
  14. DATA cont TYPE REF TO cl_gui_custom_container.  
  15.   
  16. DATA ok_code TYPE sy-ucomm.  
  17.   
  18. data file like rlgrap-filename.  
  19.   
  20. *----------------------------------------------------------------------*  
  21. *       CLASS lcl_player DEFINITION  
  22. *----------------------------------------------------------------------*  
  23. CLASS lcl_player DEFINITION INHERITING FROM cl_gui_control.  
  24.   
  25.   PUBLIC SECTION.  
  26.     METHODS:  
  27.      constructor  
  28. *        IMPORTING  
  29. *            cont TYPE REF TO cl_gui_custom_container  
  30.         EXCEPTIONS  
  31.           cntl_error  
  32.           cntl_install_error ,  
  33.           stop,  
  34.           play.  
  35.   
  36. ENDCLASS.                    "lcl_player DEFINITION  
  37.   
  38. *----------------------------------------------------------------------*  
  39. *       CLASS lcl_player IMPLEMENTATION  
  40. *----------------------------------------------------------------------*  
  41.   
  42. CLASS lcl_player IMPLEMENTATION.  
  43.   
  44.   METHOD  constructor.  
  45.     CALL METHOD super->constructor  
  46.       EXPORTING  
  47.         clsid             = '{6BF52A52-394A-11d3-B153-00C04F79FAA6}'  
  48.         parent            = cont  
  49.       EXCEPTIONS  
  50.         cntl_system_error = 1  
  51.         OTHERS            = 2.  
  52.     CASE sy-subrc .  
  53.       WHEN 1 .  
  54.         RAISE cntl_install_error .  
  55.       WHEN 2 .  
  56.         RAISE cntl_error .  
  57.     ENDCASE .  
  58.   
  59.     CALL METHOD cl_gui_cfw=>subscribe  
  60.       EXPORTING  
  61.         ref     = me  
  62.         shellid = me->h_control-shellid  
  63.       EXCEPTIONS  
  64.         OTHERS  = 1.  
  65.     IF sy-subrc NE 0 .  
  66.       RAISE cntl_error .  
  67.     ENDIF .  
  68.   
  69.   ENDMETHOD.                    "constructor  
  70.   
  71.   METHOD stop.  
  72.   
  73.     CALL METHOD me->call_method  
  74.       EXPORTING  
  75.         method            = 'Close'  
  76.       EXCEPTIONS  
  77.         cntl_error        = 1  
  78.         cntl_system_error = 2  
  79.         OTHERS            = 3.  
  80.     IF sy-subrc <> 0.  
  81.       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno  
  82.                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.  
  83.     ENDIF.  
  84.   ENDMETHOD.                    "STOP  
  85.   
  86.   METHOD play.  
  87.   
  88.     DATA: l_url TYPE char100.  
  89.     CHECK file IS NOT INITIAL.  
  90.   
  91.     l_url = file.  
  92.     REPLACE ALL OCCURRENCES OF '/' IN l_url WITH '//'.  
  93.   
  94.     CONCATENATE 'file://' l_url INTO l_url.  
  95.   
  96.     CALL METHOD set_property  
  97.       EXPORTING  
  98.         property          = 'Url'  
  99.         value             = l_url  
  100.       EXCEPTIONS  
  101.         cntl_system_error = 1  
  102.         cntl_error        = 2  
  103.         OTHERS            = 3.  
  104.   
  105.   ENDMETHOD.                    "play  
  106.   
  107. ENDCLASS.                    "lcl_player IMPLEMENTATION  
  108.   
  109.   
  110. START-OF-SELECTION.  
  111.   CALL SCREEN 100.  
  112.   
  113. *&---------------------------------------------------------------------*  
  114. *&      Module  STATUS_0100  OUTPUT  
  115. *&---------------------------------------------------------------------*  
  116. *       text  
  117. *----------------------------------------------------------------------*  
  118. MODULE status_0100 OUTPUT.  
  119.   
  120.   IF cont IS INITIAL.  
  121.     CREATE OBJECT cont  
  122.     EXPORTING  
  123.      container_name = 'CONT'.  
  124.     CREATE OBJECT o_b.  
  125.   ENDIF.  
  126.   
  127. ENDMODULE.                 " STATUS_0100  OUTPUT  
  128. *&---------------------------------------------------------------------*  
  129. *&      Module  USER_COMMAND_0100  INPUT  
  130. *&---------------------------------------------------------------------*  
  131. *       text  
  132. *----------------------------------------------------------------------*  
  133. MODULE user_command_0100 INPUT.  
  134.   CASE sy-ucomm.  
  135.     WHEN 'BACK'.  
  136.       LEAVE TO SCREEN 0.  
  137.     WHEN 'PLAY'.  
  138.       CALL METHOD o_b->play.  
  139.     WHEN 'STOP'.  
  140.       CALL METHOD o_b->stop.  
  141.   ENDCASE.  
  142. ENDMODULE.                 " USER_COMMAND_0100  INPUT  
  143.   
  144. *&---------------------------------------------------------------------*  
  145. *&      Module  choose_file  OUTPUT  
  146. *&---------------------------------------------------------------------*  
  147. *       text  
  148. *----------------------------------------------------------------------*  
  149. MODULE choose_file OUTPUT.  
  150.   IF file IS INITIAL.  
  151.     CALL FUNCTION 'WS_FILENAME_GET'  
  152.       EXPORTING  
  153.         def_filename     = '*.*'  
  154.         mask             = ',*.*,*.*.'  
  155.         title            = 'SELECT YOUR LOCAL FILE'  
  156.       IMPORTING  
  157.         filename         = file  
  158.       EXCEPTIONS  
  159.         inv_winsys       = 1  
  160.         no_batch         = 2  
  161.         selection_cancel = 3  
  162.         selection_error  = 4  
  163.         OTHERS           = 5.  
  164.   ELSE.  
  165.   ENDIF.  
  166. ENDMODULE.                 " choose_file  OUTPUT  

 

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

 

效果如下:

SAP中调用MEDIA PLAYER的代码_第1张图片

 

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

你可能感兴趣的:(SAP中调用MEDIA PLAYER的代码)