Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

SAPGUI_PROGRESS_INDICATOR dissappear in an loop

Former Member
0 Likes
1,851

Hi,

i try to use SAPGUI_PROGRESS_INDICATOR in an loop while fille an Excel-sheet.

I do it in this way, but the text disappears direct after showing. Is that a problem

with using OLE?

Is there another way to show a message with percentage?


************************************************************************
...
LOOP AT IT_ITAB INTO WA_ITAB.
    PROZENT = ( SY-TABIX * 100 ) / LINE_ITAB.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
      EXPORTING
        PERCENTAGE = PROZENT
        TEXT       = 'Daten werden verarbeitet'
      EXCEPTIONS
        OTHERS     = 1.
*
    LINE_EXCEL = SY-TABIX + 4.
    PERFORM FILL_CELL USING LINE_EXCEL 1 0 WA_ITAB-POSNR.
    PERFORM FILL_CELL USING LINE_EXCEL 2 0 WA_ITAB-MATNR.
    PERFORM FILL_CELL USING LINE_EXCEL 3 0 WA_ITAB-KWMENG.
    PERFORM FILL_CELL USING LINE_EXCEL 4 0 WA_ITAB-VRKME.
    PERFORM FILL_CELL USING LINE_EXCEL 5 0 WA_ITAB-ARKTX.
  ENDLOOP.
*
...
************************************************************************
FORM FILL_CELL USING I J BOLD VAL.
*
  CALL METHOD OF H_EXCEL 'Cells' = H_CELL EXPORTING #1 = I #2 = J.
  PERFORM ERR_HDL.
*
  SET PROPERTY OF H_CELL 'Value' = VAL .
  PERFORM ERR_HDL.
*
  GET PROPERTY OF H_CELL 'Font' = H_FONT.
  PERFORM ERR_HDL.
*
  SET PROPERTY OF H_FONT 'Bold' = BOLD .
  PERFORM ERR_HDL.
*
ENDFORM.                    "FILL_CELL
************************************************************************

Regards, Dieter

Hi,

i try to use SAPGUI_PROGRESS_INDICATOR in an loop while fille an Excel-sheet.

I do it in this way, but the text disappears direct after showing. Is that a problem

with using OLE?

Is there another way to show a message with percentage?


************************************************************************
...
LOOP AT IT_ITAB INTO WA_ITAB.
    PROZENT = ( SY-TABIX * 100 ) / LINE_ITAB.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
      EXPORTING
        PERCENTAGE = PROZENT
        TEXT       = 'Daten werden verarbeitet'
      EXCEPTIONS
        OTHERS     = 1.
*
    LINE_EXCEL = SY-TABIX + 4.
    PERFORM FILL_CELL USING LINE_EXCEL 1 0 WA_ITAB-POSNR.
    PERFORM FILL_CELL USING LINE_EXCEL 2 0 WA_ITAB-MATNR.
    PERFORM FILL_CELL USING LINE_EXCEL 3 0 WA_ITAB-KWMENG.
    PERFORM FILL_CELL USING LINE_EXCEL 4 0 WA_ITAB-VRKME.
    PERFORM FILL_CELL USING LINE_EXCEL 5 0 WA_ITAB-ARKTX.
  ENDLOOP.
*
...
************************************************************************
FORM FILL_CELL USING I J BOLD VAL.
*
  CALL METHOD OF H_EXCEL 'Cells' = H_CELL EXPORTING #1 = I #2 = J.
  PERFORM ERR_HDL.
*
  SET PROPERTY OF H_CELL 'Value' = VAL .
  PERFORM ERR_HDL.
*
  GET PROPERTY OF H_CELL 'Font' = H_FONT.
  PERFORM ERR_HDL.
*
  SET PROPERTY OF H_FONT 'Bold' = BOLD .
  PERFORM ERR_HDL.
*
ENDFORM.                    "FILL_CELL
************************************************************************

Regards, Dieter

6 REPLIES 6
Read only

Former Member
0 Likes
1,122

Hi Dieter,

Are you sure the values in PROZENT is ( 0 <= PROZENT <= 100 )?

Cheers

Read only

0 Likes
1,122

Hi Amit,

thanks for your answer.

yes, i have debugged it. In the internal table are 4 entries.

The value of prozent are 25 (first loop),50 (sec. loop), 75 and 100.

Regards, Dieter

Read only

0 Likes
1,122

Right. Just noticed the coding inside the FM

if perc < 0. perc = 0. endif.

if perc > 100. perc = 100. endif.

Hence Percentage doesnu2019t play any role because of the coding inside of FM.

Anyway, I think thatu2019s the way this FM behaves irrespective of inside/outside of loops. Can you please just do a quick check from SE37 giving percentage values?

Cheers

Amit

Read only

0 Likes
1,122

Hi Amit,

here a simple code which works without OLE.


DATA: IT_MARA   TYPE TABLE OF MARA,
      WA_MARA   TYPE MARA,
      LINE_ITAB LIKE SY-TABIX,
      PROZENT   TYPE I.
*
SELECT * FROM MARA INTO TABLE IT_MARA UP TO 1000 ROWS.
*
DESCRIBE TABLE IT_MARA LINES LINE_ITAB.
*
LOOP AT IT_MARA INTO WA_MARA.
  PROZENT = ( SY-TABIX * 100 ) / LINE_ITAB.
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      PERCENTAGE = PROZENT
      TEXT       = WA_MARA-MATNR
    EXCEPTIONS
      OTHERS     = 1.
ENDLOOP.

Regards, Dieter

Read only

RaymondGiuseppi
Active Contributor
0 Likes
1,122

I got the same problem some times ago, as soon as you use any other SAPGUI functionality (as OLE), the SAP GUI program do no longer manage the progress indicator. (I did not found a satisfactory solution)

Therefore, I drastically reduced time of execution, no longer transferring data cell by cell, but filling the clipboard and pasting it in Excel in one OLE statement. (*)

Regards,

Raymond

(*) check [OLE |http://wiki.sdn.sap.com/wiki/display/Snippets/OLE] or analyse FM ALSM_EXCEL_TO_INTERNAL_TABLE

Read only

0 Likes
1,122

Hi Raymond,

i do what you mentioned and change me Report by using method:

CL_GUI_FRONTEND_SERVICES=>CLIPBOARD_EXPORT.

It's really faster than filling cell by cell, so that i don't need SAPGUI_PROGRESS_INDICATOR.

Thanks.

Regards, Dieter