2010 Nov 09 12:48 PM
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
2010 Nov 09 12:55 PM
Hi Dieter,
Are you sure the values in PROZENT is ( 0 <= PROZENT <= 100 )?
Cheers
2010 Nov 09 1:09 PM
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
2010 Nov 09 1:20 PM
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
2010 Nov 09 1:33 PM
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
2010 Nov 09 1:27 PM
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
2010 Nov 09 3:18 PM
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
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |