10-21-2008 3:39 PM
Hi experts,
i am using mseg-menge field ( lenth13 and decimals 3) in my alv grid report.
eg: 2.3456.000
user wants only 2.3456 no decimals.
how we can aviod decimals 0 s in report.
thanks in advance.
mahahe
10-21-2008 4:01 PM
I search this ways in the forums:
Shift
SHIFT varb1 RIGHT DELETING TRAILING '0'.
write: gv_variable decimals 0.
SHIFT VALUE LEFT DELETING LEADING '0'.
Shift2
DATA: T(14) VALUE ' abcdefghij',
STRING LIKE T,
STR(6) VALUE 'ghijkl'.
STRING = T.
WRITE STRING.
SHIFT STRING LEFT DELETING LEADING SPACE (or use 0 to detete 0).
WRITE / STRING.
STRING = T.
SHIFT STRING RIGHT DELETING TRAILING STR or 0.
WRITE / STRING.
Shift3
data amt(6) type p decimals 3 value '123.450'.
data amt1(6) type p decimals 2.
data amt_c(6) type c.
unpack amt to amt_c.
shift amt_c right deleting trailing '0'.
pack amt_c to amt1.
write amt1.
use FM
FTR_CORR_SWIFT_DELETE_ENDZERO
this FM will remove all the zeros from decimal values like
value - 234.8000000
output - 234.8
IF
data: var1 type p decimals 3,
var2 type p decimals 2,
var3 type p decimals 1.
move '12345.100' to var1.
move var1 to var2.
move var1 to var3.
if var2 = var1.
if var3 = var1.
write var3.
else.
write var2.
endif.
else.
write var1.
endif.
I hope that this solve your problem.
Cordial greetings.
10-21-2008 3:45 PM
declare a variable type p decimals 0
or use WRITE ... USING EDIT-MASK
10-21-2008 4:01 PM
I search this ways in the forums:
Shift
SHIFT varb1 RIGHT DELETING TRAILING '0'.
write: gv_variable decimals 0.
SHIFT VALUE LEFT DELETING LEADING '0'.
Shift2
DATA: T(14) VALUE ' abcdefghij',
STRING LIKE T,
STR(6) VALUE 'ghijkl'.
STRING = T.
WRITE STRING.
SHIFT STRING LEFT DELETING LEADING SPACE (or use 0 to detete 0).
WRITE / STRING.
STRING = T.
SHIFT STRING RIGHT DELETING TRAILING STR or 0.
WRITE / STRING.
Shift3
data amt(6) type p decimals 3 value '123.450'.
data amt1(6) type p decimals 2.
data amt_c(6) type c.
unpack amt to amt_c.
shift amt_c right deleting trailing '0'.
pack amt_c to amt1.
write amt1.
use FM
FTR_CORR_SWIFT_DELETE_ENDZERO
this FM will remove all the zeros from decimal values like
value - 234.8000000
output - 234.8
IF
data: var1 type p decimals 3,
var2 type p decimals 2,
var3 type p decimals 1.
move '12345.100' to var1.
move var1 to var2.
move var1 to var3.
if var2 = var1.
if var3 = var1.
write var3.
else.
write var2.
endif.
else.
write var1.
endif.
I hope that this solve your problem.
Cordial greetings.