1

At Last statement in a loop

 1 year ago
source link: https://answers.sap.com/questions/13699091/at-last-statement-in-a-loop.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
yesterday

At Last statement in a loop

37 Views Last edit yesterday 4 rev

Hi all,

My program is doing sum kind of summation suring at last statement.

I want to sum for every row where stufe = 1 but the at last only sum for row 4 ( row 4 + row 5 values).

Why at last is not summing for row 1 ? (row 1 + row 2 + row 3 )

at-last.png

Row 1 value not summed. Its 0.

row-1-not-summed.png

LOOP AT gt_print ASSIGNING <fs_print>
WHERE psphi <> ''.

REFRESH:lt_child_wbs,
lt_parent_wbs.

CLEAR:lwa_child_wbs,
lwa_parent_wbs,
lv_sub_element,
lwa_sum.

*To retrieve all the child WBS elements
IF <fs_print>-stufe NE '001'.

lwa_parent_wbs = <fs_print>-posid.
APPEND lwa_parent_wbs TO lt_parent_wbs.
CLEAR lwa_parent_wbs.

CALL FUNCTION 'BAPI_PROJECT_GETINFO'
EXPORTING
with_subtree = 'X'
TABLES
i_wbs_element_table = lt_parent_wbs
e_wbs_element_table = lt_child_wbs.
ENDIF.


* if <fs_print>-stufe = '001' or <fs_print>-stufe = '002'.
LOOP AT gt_print INTO gwa_print
WHERE psphi = <fs_print>-psphi
AND stufe > <fs_print>-stufe.

*_ Raise flag of sub element found
lv_sub_element = gc_x.

* if lt_child_wbs[] is INITIAL.
IF <fs_print>-stufe = '001'.
lwa_sum-pfy_total = lwa_sum-pfy_total + gwa_print-pfy_total.

* begin ins
lwa_sum-last_subm_total = lwa_sum-last_subm_total + gwa_print-last_subm_total.
lwa_sum-curr_subm_total = lwa_sum-curr_subm_total + gwa_print-curr_subm_total.
* end ins

lwa_sum-fy_total = lwa_sum-fy_total + gwa_print-fy_total.
lwa_sum-wlp01 = lwa_sum-wlp01 + gwa_print-wlp01.
lwa_sum-wlp02 = lwa_sum-wlp02 + gwa_print-wlp02.
lwa_sum-wlp03 = lwa_sum-wlp03 + gwa_print-wlp03.
lwa_sum-wlp04 = lwa_sum-wlp04 + gwa_print-wlp04.
lwa_sum-wlp05 = lwa_sum-wlp05 + gwa_print-wlp05.
lwa_sum-wlp06 = lwa_sum-wlp06 + gwa_print-wlp06.
lwa_sum-wlp07 = lwa_sum-wlp07 + gwa_print-wlp07.
lwa_sum-wlp08 = lwa_sum-wlp08 + gwa_print-wlp08.
lwa_sum-wlp09 = lwa_sum-wlp09 + gwa_print-wlp09.
lwa_sum-wlp10 = lwa_sum-wlp10 + gwa_print-wlp10.
lwa_sum-wlp11 = lwa_sum-wlp11 + gwa_print-wlp11.
lwa_sum-wlp12 = lwa_sum-wlp12 + gwa_print-wlp12.
lwa_sum-total_itd = lwa_sum-total_itd + gwa_print-total_itd.
CLEAR gwa_print.
ELSE.
CLEAR lv_posid.
CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
EXPORTING
input = gwa_print-posid
IMPORTING
output = lv_posid.

*To check if the WBS(<fs_print>-psphi) has any child WBS elements
READ TABLE lt_child_wbs INTO lwa_child_wbs
WITH KEY wbs_element = lv_posid.
IF sy-subrc EQ 0.
lwa_sum-pfy_total = lwa_sum-pfy_total + gwa_print-pfy_total.
* begin ins
lwa_sum-last_subm_total = lwa_sum-last_subm_total + gwa_print-last_subm_total.
lwa_sum-curr_subm_total = lwa_sum-curr_subm_total + gwa_print-curr_subm_total.
* end ins
lwa_sum-fy_total = lwa_sum-fy_total + gwa_print-fy_total.
lwa_sum-wlp01 = lwa_sum-wlp01 + gwa_print-wlp01.
lwa_sum-wlp02 = lwa_sum-wlp02 + gwa_print-wlp02.
lwa_sum-wlp03 = lwa_sum-wlp03 + gwa_print-wlp03.
lwa_sum-wlp04 = lwa_sum-wlp04 + gwa_print-wlp04.
lwa_sum-wlp05 = lwa_sum-wlp05 + gwa_print-wlp05.
lwa_sum-wlp06 = lwa_sum-wlp06 + gwa_print-wlp06.
lwa_sum-wlp07 = lwa_sum-wlp07 + gwa_print-wlp07.
lwa_sum-wlp08 = lwa_sum-wlp08 + gwa_print-wlp08.
lwa_sum-wlp09 = lwa_sum-wlp09 + gwa_print-wlp09.
lwa_sum-wlp10 = lwa_sum-wlp10 + gwa_print-wlp10.
lwa_sum-wlp11 = lwa_sum-wlp11 + gwa_print-wlp11.
lwa_sum-wlp12 = lwa_sum-wlp12 + gwa_print-wlp12.
lwa_sum-total_itd = lwa_sum-total_itd + gwa_print-total_itd.
CLEAR gwa_print.
ENDIF.
ENDIF.

AT LAST.
<fs_print>-pfy_total = lwa_sum-pfy_total.
* begin ins
<fs_print>-last_subm_total = lwa_sum-last_subm_total.
<fs_print>-curr_subm_total = lwa_sum-curr_subm_total.
* end ins
<fs_print>-fy_total = lwa_sum-fy_total.
<fs_print>-wlp01 = lwa_sum-wlp01.
<fs_print>-wlp02 = lwa_sum-wlp02.
<fs_print>-wlp03 = lwa_sum-wlp03.
<fs_print>-wlp04 = lwa_sum-wlp04.
<fs_print>-wlp05 = lwa_sum-wlp05.
<fs_print>-wlp06 = lwa_sum-wlp06.
<fs_print>-wlp07 = lwa_sum-wlp07.
<fs_print>-wlp08 = lwa_sum-wlp08.
<fs_print>-wlp09 = lwa_sum-wlp09.
<fs_print>-wlp10 = lwa_sum-wlp10.
<fs_print>-wlp11 = lwa_sum-wlp11.
<fs_print>-wlp12 = lwa_sum-wlp12.
<fs_print>-total_itd = lwa_sum-total_itd.
<fs_print>-budget_balance = <fs_print>-budget_awarded
- lwa_sum-total_itd.

IF <fs_print>-stufe EQ '001'.
*_ Sum subtotal of all projects to manually manipulate totals data
gs_proj_total-budget_awarded = gs_proj_total-budget_awarded
+ <fs_print>-budget_awarded.
gs_proj_total-pfy_total = gs_proj_total-pfy_total
+ lwa_sum-pfy_total.
gs_proj_total-fy_total = gs_proj_total-fy_total
+ lwa_sum-fy_total.

* begin ins
gs_proj_total-last_subm_total = gs_proj_total-last_subm_total
+ lwa_sum-last_subm_total.

gs_proj_total-curr_subm_total = gs_proj_total-curr_subm_total
+ lwa_sum-curr_subm_total.
* end ins

gs_proj_total-wlp01 = gs_proj_total-wlp01 + lwa_sum-wlp01.
gs_proj_total-wlp02 = gs_proj_total-wlp02 + lwa_sum-wlp02.
gs_proj_total-wlp03 = gs_proj_total-wlp03 + lwa_sum-wlp03.
gs_proj_total-wlp04 = gs_proj_total-wlp04 + lwa_sum-wlp04.
gs_proj_total-wlp05 = gs_proj_total-wlp05 + lwa_sum-wlp05.
gs_proj_total-wlp06 = gs_proj_total-wlp06 + lwa_sum-wlp06.
gs_proj_total-wlp07 = gs_proj_total-wlp07 + lwa_sum-wlp07.
gs_proj_total-wlp08 = gs_proj_total-wlp08 + lwa_sum-wlp08.
gs_proj_total-wlp09 = gs_proj_total-wlp09 + lwa_sum-wlp09.
gs_proj_total-wlp10 = gs_proj_total-wlp10 + lwa_sum-wlp10.
gs_proj_total-wlp11 = gs_proj_total-wlp11 + lwa_sum-wlp11.
gs_proj_total-wlp12 = gs_proj_total-wlp12 + lwa_sum-wlp12.
gs_proj_total-total_itd = gs_proj_total-total_itd
+ lwa_sum-total_itd.
gs_proj_total-budget_balance = gs_proj_total-budget_balance
+ <fs_print>-budget_balance.
ENDIF.
ENDAT.
ENDLOOP.




About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK