2007 Apr 02 7:52 AM
Hi, i copied MB5B transaction. i added 2 new fields in G_S_TOTALS_FLAT are
VALUE1 and VALUE2. Now i have to calculate a value, which i am attaching..
-
*
create_table_totals_flat
----
FORM CREATE_TABLE_TOTALS_FLAT.
**new changes by Dhanunjay**
DATA: W_VAL11 TYPE P LENGTH 10 DECIMALS 2.
DATA: W_VALUE1 TYPE P LENGTH 10 DECIMALS 5,
W_VALUE2 TYPE P LENGTH 10 DECIMALS 2,
W_VALUE3 TYPE P LENGTH 10 DECIMALS 2.
*******To display NMS********
IF NMS = 'X'.
CLEAR G_S_TOTALS_FLAT.
CLEAR G_T_TOTALS_FLAT.
LOOP AT BESTAND.
REFRESH G_T_COLOR.
CLEAR : W_VALUE1,
W_VALUE2,
W_VALUE3.
IF BESTAND-ANFWERT = 0.
W_VALUE2 = 1.
ELSE.
W_VALUE2 = BESTAND-ANFWERT.
ENDIF.
W_VALUE3 = BESTAND-HABENWERT.
*****Check W_VALUE1, it is showing wrong result here***
W_VALUE1 = ( W_VALUE3 / W_VALUE2 ) .
IF W_VALUE1 <= 0.
MOVE W_VALUE1 TO G_S_TOTALS_FLAT-VALUE1.
****and when assigned to G_S_TOTALS_FLAT the original value is not showing***
MOVE-CORRESPONDING BESTAND TO G_S_TOTALS_FLAT.
PERFORM MOMENT.
ENDIF.
ENDLOOP.
*****To display SMS***********
ELSEIF SMS = 'X'.
CLEAR G_S_TOTALS_FLAT.
CLEAR G_T_TOTALS_FLAT.
LOOP AT BESTAND.
REFRESH G_T_COLOR.
CLEAR : W_VALUE1,
W_VALUE2,
W_VALUE3.
IF BESTAND-ANFWERT = 0.
W_VALUE2 = 1.
ELSE.
W_VALUE2 = BESTAND-ANFWERT.
ENDIF.
W_VALUE3 = BESTAND-HABENWERT.
*****Check W_VALUE1, it is showing wrong result here***
W_VALUE1 = ( W_VALUE3 / W_VALUE2 ) .
IF W_VALUE1 > 0 AND W_VALUE1 < 20.
****and when assigned to G_S_TOTALS_FLAT the original value is not showing***
MOVE W_VALUE1 TO G_S_TOTALS_FLAT-VALUE1.
MOVE-CORRESPONDING BESTAND TO G_S_TOTALS_FLAT.
PERFORM MOMENT.
ENDIF.
ENDLOOP.
*CALCULATE.
******to Display FMS********
ELSEIF FMS = 'X'.
CLEAR G_S_TOTALS_FLAT.
CLEAR G_T_TOTALS_FLAT.
LOOP AT BESTAND.
REFRESH G_T_COLOR.
CLEAR : W_VALUE1,
W_VALUE2,
W_VALUE3.
IF BESTAND-ANFWERT = 0.
W_VALUE2 = 1.
ELSE.
W_VALUE2 = BESTAND-ANFWERT.
ENDIF.
W_VALUE3 = BESTAND-HABENWERT.
*****Check W_VALUE1, it is showing wrong result here***
W_VALUE1 = ( W_VALUE3 / W_VALUE2 ) .
IF W_VALUE1 >= 20.
****and when assigned to G_S_TOTALS_FLAT the original value is not showing***
MOVE W_VALUE1 TO G_S_TOTALS_FLAT-VALUE1.
MOVE-CORRESPONDING BESTAND TO G_S_TOTALS_FLAT.
PERFORM MOMENT.
ENDIF.
ENDLOOP.
******to display all values**********
ELSE.
CLEAR G_S_TOTALS_FLAT.
CLEAR G_T_TOTALS_FLAT.
LOOP AT BESTAND.
MOVE-CORRESPONDING BESTAND TO G_S_TOTALS_FLAT.
PERFORM MOMENT.
ENDLOOP.
ENDIF.
ENDFORM. "CREATE_TABLE_TOTALS_FLAT
&----
*& Form MOMENT
&----
text
----
FORM MOMENT.
create output table G-T-totals_flat
MOVE SOBKZ TO G_S_TOTALS_FLAT-SOBKZ.
PERFORM F2100_MAT_TEXT USING BESTAND-MATNR.
show the GI with negative sign
G_S_TOTALS_FLAT-HABEN = G_S_TOTALS_FLAT-HABEN * -1.
MOVE : G_S_MAKT-MAKTX TO G_S_TOTALS_FLAT-MAKTX,
DATUM-LOW TO G_S_TOTALS_FLAT-START_DATE,
DATUM-HIGH TO G_S_TOTALS_FLAT-END_DATE.
PERFORM COLORIZE_TOTALS_FLAT USING 'ANFMENGE'.
PERFORM COLORIZE_TOTALS_FLAT USING 'SOLL'.
PERFORM COLORIZE_TOTALS_FLAT USING 'HABEN'.
PERFORM COLORIZE_TOTALS_FLAT USING 'ENDMENGE'.
IF BWBST = 'X'.
G_S_TOTALS_FLAT-HABENWERT = G_S_TOTALS_FLAT-HABENWERT * -1.
PERFORM COLORIZE_TOTALS_FLAT USING 'ANFWERT'.
PERFORM COLORIZE_TOTALS_FLAT USING 'SOLLWERT'.
PERFORM COLORIZE_TOTALS_FLAT USING 'HABENWERT'.
PERFORM COLORIZE_TOTALS_FLAT USING 'ENDWERT'.
ENDIF.
IF G_T_COLOR[] IS INITIAL.
CLEAR G_S_TOTALS_FLAT-COLOR.
ELSE.
MOVE G_T_COLOR[] TO G_S_TOTALS_FLAT-COLOR.
ENDIF.
get the name of this plant "n999530
PERFORM F2200_READ_T001 USING G_S_TOTALS_FLAT-WERKS. "n999530
MOVE T001W-NAME1 TO G_S_TOTALS_FLAT-NAME1. "n999530
APPEND G_S_TOTALS_FLAT TO G_T_TOTALS_FLAT.
ENDFORM. " create_table_totals_flat
But I am not getting the values of Value1 where i am displaying..
plz send suggestiongs..
2007 Apr 03 8:20 PM
Hi Dhanunjay
I think u didnot check the 'Fixed point arithmetic' checkbox in the Program attributes....it is only because of this that u get wrong results in arithmetic operations with PACKED numbers...
Hence, just select that checkbox in the attributes.
Reward points if useful
Regards
Hi, i copied MB5B transaction. i added 2 new fields in G_S_TOTALS_FLAT are
VALUE1 and VALUE2. Now i have to calculate a value, which i am attaching..
-
*
create_table_totals_flat
----
FORM CREATE_TABLE_TOTALS_FLAT.
**new changes by Dhanunjay**
DATA: W_VAL11 TYPE P LENGTH 10 DECIMALS 2.
DATA: W_VALUE1 TYPE P LENGTH 10 DECIMALS 5,
W_VALUE2 TYPE P LENGTH 10 DECIMALS 2,
W_VALUE3 TYPE P LENGTH 10 DECIMALS 2.
*******To display NMS********
IF NMS = 'X'.
CLEAR G_S_TOTALS_FLAT.
CLEAR G_T_TOTALS_FLAT.
LOOP AT BESTAND.
REFRESH G_T_COLOR.
CLEAR : W_VALUE1,
W_VALUE2,
W_VALUE3.
IF BESTAND-ANFWERT = 0.
W_VALUE2 = 1.
ELSE.
W_VALUE2 = BESTAND-ANFWERT.
ENDIF.
W_VALUE3 = BESTAND-HABENWERT.
*****Check W_VALUE1, it is showing wrong result here***
W_VALUE1 = ( W_VALUE3 / W_VALUE2 ) .
IF W_VALUE1 <= 0.
MOVE W_VALUE1 TO G_S_TOTALS_FLAT-VALUE1.
****and when assigned to G_S_TOTALS_FLAT the original value is not showing***
MOVE-CORRESPONDING BESTAND TO G_S_TOTALS_FLAT.
PERFORM MOMENT.
ENDIF.
ENDLOOP.
*****To display SMS***********
ELSEIF SMS = 'X'.
CLEAR G_S_TOTALS_FLAT.
CLEAR G_T_TOTALS_FLAT.
LOOP AT BESTAND.
REFRESH G_T_COLOR.
CLEAR : W_VALUE1,
W_VALUE2,
W_VALUE3.
IF BESTAND-ANFWERT = 0.
W_VALUE2 = 1.
ELSE.
W_VALUE2 = BESTAND-ANFWERT.
ENDIF.
W_VALUE3 = BESTAND-HABENWERT.
*****Check W_VALUE1, it is showing wrong result here***
W_VALUE1 = ( W_VALUE3 / W_VALUE2 ) .
IF W_VALUE1 > 0 AND W_VALUE1 < 20.
****and when assigned to G_S_TOTALS_FLAT the original value is not showing***
MOVE W_VALUE1 TO G_S_TOTALS_FLAT-VALUE1.
MOVE-CORRESPONDING BESTAND TO G_S_TOTALS_FLAT.
PERFORM MOMENT.
ENDIF.
ENDLOOP.
*CALCULATE.
******to Display FMS********
ELSEIF FMS = 'X'.
CLEAR G_S_TOTALS_FLAT.
CLEAR G_T_TOTALS_FLAT.
LOOP AT BESTAND.
REFRESH G_T_COLOR.
CLEAR : W_VALUE1,
W_VALUE2,
W_VALUE3.
IF BESTAND-ANFWERT = 0.
W_VALUE2 = 1.
ELSE.
W_VALUE2 = BESTAND-ANFWERT.
ENDIF.
W_VALUE3 = BESTAND-HABENWERT.
*****Check W_VALUE1, it is showing wrong result here***
W_VALUE1 = ( W_VALUE3 / W_VALUE2 ) .
IF W_VALUE1 >= 20.
****and when assigned to G_S_TOTALS_FLAT the original value is not showing***
MOVE W_VALUE1 TO G_S_TOTALS_FLAT-VALUE1.
MOVE-CORRESPONDING BESTAND TO G_S_TOTALS_FLAT.
PERFORM MOMENT.
ENDIF.
ENDLOOP.
******to display all values**********
ELSE.
CLEAR G_S_TOTALS_FLAT.
CLEAR G_T_TOTALS_FLAT.
LOOP AT BESTAND.
MOVE-CORRESPONDING BESTAND TO G_S_TOTALS_FLAT.
PERFORM MOMENT.
ENDLOOP.
ENDIF.
ENDFORM. "CREATE_TABLE_TOTALS_FLAT
&----
*& Form MOMENT
&----
text
----
FORM MOMENT.
create output table G-T-totals_flat
MOVE SOBKZ TO G_S_TOTALS_FLAT-SOBKZ.
PERFORM F2100_MAT_TEXT USING BESTAND-MATNR.
show the GI with negative sign
G_S_TOTALS_FLAT-HABEN = G_S_TOTALS_FLAT-HABEN * -1.
MOVE : G_S_MAKT-MAKTX TO G_S_TOTALS_FLAT-MAKTX,
DATUM-LOW TO G_S_TOTALS_FLAT-START_DATE,
DATUM-HIGH TO G_S_TOTALS_FLAT-END_DATE.
PERFORM COLORIZE_TOTALS_FLAT USING 'ANFMENGE'.
PERFORM COLORIZE_TOTALS_FLAT USING 'SOLL'.
PERFORM COLORIZE_TOTALS_FLAT USING 'HABEN'.
PERFORM COLORIZE_TOTALS_FLAT USING 'ENDMENGE'.
IF BWBST = 'X'.
G_S_TOTALS_FLAT-HABENWERT = G_S_TOTALS_FLAT-HABENWERT * -1.
PERFORM COLORIZE_TOTALS_FLAT USING 'ANFWERT'.
PERFORM COLORIZE_TOTALS_FLAT USING 'SOLLWERT'.
PERFORM COLORIZE_TOTALS_FLAT USING 'HABENWERT'.
PERFORM COLORIZE_TOTALS_FLAT USING 'ENDWERT'.
ENDIF.
IF G_T_COLOR[] IS INITIAL.
CLEAR G_S_TOTALS_FLAT-COLOR.
ELSE.
MOVE G_T_COLOR[] TO G_S_TOTALS_FLAT-COLOR.
ENDIF.
get the name of this plant "n999530
PERFORM F2200_READ_T001 USING G_S_TOTALS_FLAT-WERKS. "n999530
MOVE T001W-NAME1 TO G_S_TOTALS_FLAT-NAME1. "n999530
APPEND G_S_TOTALS_FLAT TO G_T_TOTALS_FLAT.
ENDFORM. " create_table_totals_flat
But I am not getting the values of Value1 where i am displaying..
plz send suggestiongs..
2007 Apr 03 8:20 PM
Hi Dhanunjay
I think u didnot check the 'Fixed point arithmetic' checkbox in the Program attributes....it is only because of this that u get wrong results in arithmetic operations with PACKED numbers...
Hence, just select that checkbox in the attributes.
Reward points if useful
Regards
2007 Apr 04 5:41 AM
Hi, Thank you, Because of your suggestion i got result.
Thank you.
Regards,
Dhanunjay
2007 Apr 04 5:54 PM
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |