技术开发 频道

ABAP实例:SAP显示处理进度的函数

【IT168 技术文章】

    *---------------------------------------------------------------------*
    
*       FORM PROGRESS_INDICATOR                                       *
    
*---------------------------------------------------------------------*
    form progress_indicator
                     using value(v_text) type c                              
"输出文本
                           value(v_processed) like sy-tabix           "处理计数
                           value(v_total) like sy-tabix                       "总计数
                           value(v_new) type c.

      statics: s_time_next like sy
-uzeit,
               s_date_next like sy
-datum.

      data: l_percentage type i,
            l_text(
72) type c.

      get time.
      
if v_new is initial.
        check s_date_next
< sy-datum
           or s_date_next
= sy-datum and s_time_next <= sy-uzeit.
      endif.

      l_percentage
= ( v_processed * 100 ) div v_total.
      
if l_percentage > 0.
        write l_percentage to l_text.
        condense l_text.
        concatenate l_text
'%' into l_text.
        condense l_text.
      endif.
      concatenate l_text v_text into l_text separated by space.
      condense l_text.
      call function
'SAPGUI_PROGRESS_INDICATOR'
        exporting
          percentage
= l_percentage
          text      
= l_text.

      s_date_next
= sy-datum.
      s_time_next
= sy-uzeit + 10.
      
if s_time_next < sy-uzeit.
        add
1 to s_date_next.
      endif.
    endform.                              
"PROGRESS_INDICATOR


    

    
*----------------------------------------------------------------------*
    
* Form  WRITE_SAPGUI_TEXT
    
*----------------------------------------------------------------------*
    
* write a progress message on the GUI
    
*----------------------------------------------------------------------*
    FORM write_sapgui_text USING p_text.

      CALL FUNCTION
'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          text
= p_text.

    ENDFORM.                    
" WRITE_SAPGUI_TEXT

    
*----------------------------------------------------------------------*
    
* Form  WRITE_SAPGUI_PERC
    
*----------------------------------------------------------------------*
    
* write a progress message on the GUI
    
*----------------------------------------------------------------------*
    FORM write_sapgui_perc USING p_text p_perc.

      CALL FUNCTION
'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          text      
= p_text
          percentage
= p_perc.

    ENDFORM.                    
" WRITE_SAPGUI_PERC
0
相关文章