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

remove decimals for menge

Former Member
0 Likes
2,178

Hi all,

I need to remove the decimal places below 200,000 for menge(open qty).

please advise me how can i remove it.

file layout :

"B","12345-DEV","5500000028"," 200,000","20070323","20070310","0000001009",

code below.

FORM DOWNLOAD.

DATA : L_MENGE(20) TYPE C,

L_TEXT(300) TYPE C,

L_TAB VALUE ',',

L_QUOTE VALUE '"',

L_EINDT(8),

L_LINES TYPE I,

L_AEDAT(8).

OPEN DATASET P_FILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

LOOP AT ITAB.

WRITE : ITAB-MENGE TO L_MENGE RIGHT-JUSTIFIED.

CONDENSE : ITAB-PRDHA,

ITAB-MATNR,

ITAB-EBELN,

ITAB-LIFNR,

ITAB-PRDHA_1 NO-GAPS.

L_EINDT = ITAB-EINDT+0(8).

L_AEDAT = ITAB-AEDAT+0(8).

CONCATENATE L_QUOTE ITAB-PRDHA L_QUOTE L_TAB

L_QUOTE ITAB-MATNR L_QUOTE L_TAB

L_QUOTE ITAB-EBELN L_QUOTE L_TAB

L_QUOTE L_MENGE L_QUOTE L_TAB

L_QUOTE L_AEDAT L_QUOTE L_TAB

L_QUOTE L_EINDT L_QUOTE L_TAB

L_QUOTE ITAB-LIFNR L_QUOTE L_TAB

L_QUOTE ITAB-PRDHA_1 L_QUOTE INTO L_TEXT.

TRANSFER L_TEXT TO P_FILE.

ENDLOOP.

CLOSE DATASET P_FILE.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,391

Hi!

WRITE l_menge TO l_menge DECIMALS 0.

Use it within the loop, before the concatenate...

Regards

Tamá

Hi all,

I need to remove the decimal places below 200,000 for menge(open qty).

please advise me how can i remove it.

file layout :

"B","12345-DEV","5500000028"," 200,000","20070323","20070310","0000001009",

code below.

FORM DOWNLOAD.

DATA : L_MENGE(20) TYPE C,

L_TEXT(300) TYPE C,

L_TAB VALUE ',',

L_QUOTE VALUE '"',

L_EINDT(8),

L_LINES TYPE I,

L_AEDAT(8).

OPEN DATASET P_FILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

LOOP AT ITAB.

WRITE : ITAB-MENGE TO L_MENGE RIGHT-JUSTIFIED.

CONDENSE : ITAB-PRDHA,

ITAB-MATNR,

ITAB-EBELN,

ITAB-LIFNR,

ITAB-PRDHA_1 NO-GAPS.

L_EINDT = ITAB-EINDT+0(8).

L_AEDAT = ITAB-AEDAT+0(8).

CONCATENATE L_QUOTE ITAB-PRDHA L_QUOTE L_TAB

L_QUOTE ITAB-MATNR L_QUOTE L_TAB

L_QUOTE ITAB-EBELN L_QUOTE L_TAB

L_QUOTE L_MENGE L_QUOTE L_TAB

L_QUOTE L_AEDAT L_QUOTE L_TAB

L_QUOTE L_EINDT L_QUOTE L_TAB

L_QUOTE ITAB-LIFNR L_QUOTE L_TAB

L_QUOTE ITAB-PRDHA_1 L_QUOTE INTO L_TEXT.

TRANSFER L_TEXT TO P_FILE.

ENDLOOP.

CLOSE DATASET P_FILE.

4 REPLIES 4
Read only

Former Member
0 Likes
1,392

Hi!

WRITE l_menge TO l_menge DECIMALS 0.

Use it within the loop, before the concatenate...

Regards

Tamá

Read only

0 Likes
1,391

THANKS TAMSAS.

YOUR ARE A STAR...IT IS SORTED

Read only

Former Member
0 Likes
1,391

hi,

declare it as type P vairable with decimals 0.

i.e,

data : v_menge(12) type p decimals 0.

Regards,

Santosh

Read only

Former Member
0 Likes
1,391

You can remove the decimal with writing the field value to an interger

<b>Write v_decimal TO v_int.</b>

<b>OR</b>

DATA: X TYPE P DECIMALS 3 VALUE '1.267',

Y TYPE F VALUE '125.456E2'.

WRITE: /X DECIMALS 0, "output: 1

/X DECIMALS 2, "output: 1.27

/X DECIMALS 5, "output: 1.26700

/Y DECIMALS 1, "output: 1.3E+04

/Y DECIMALS 5, "output: 1.25456E+04

/Y DECIMALS 20. "output: 1.25456000000000E+04

Assign points if it helps you.

- Gaurang