ich suche verzweifelt nach einer Möglichkeit, in unserer Kommiliste den Tausenderpunkt bei einer Variablen zu realisieren.
Folgendermaßen gehe ich vor:
******************BEGIN CODING******************* Im Formular:
/: PERFORM xyz IN PROGRAM abc
/: DEFINE &KCMENG& = &LIPS-KCMENG&
/: USING <AK-VBELN&
/: USING <AP-CHARG(Z)&
/: USING <AP-POSNR&
/: CHANGING &LIPS-UECHA&
/: CHANGING &KCMENG&
/: ENDPERFORM
In ABAP:
FORM xyz TABLES in_par STRUCTURE itcsy
out_par STRUCTURE itcsy.
DATA: idx TYPE i,
wa_lipsup TYPE lipsup,
kcmeng1 TYPE lipsup-kcmeng,
kcmeng1_strg TYPE char13,
uecha1 TYPE lipsup-uecha,
charg1 TYPE ltap-charg,
vbeln1 TYPE ltak-vbeln,
posnr1 TYPE ltap-posnr.
CLEAR out_par-value.
SELECT SINGLE * FROM lipsup INTO wa_lipsup
WHERE vbeln EQ vbeln1
AND charg EQ charg1
AND posnr EQ posnr1.
uecha1 = wa_lipsup-uecha.
SELECT SINGLE * FROM lipsup INTO wa_lipsup
WHERE vbeln = vbeln1
AND posnr = uecha1.
kcmeng1 = wa_lipsup-kcmeng.
READ TABLE out_par WITH KEY 'LIPS-UECHA'.
CHECK sy-subrc = 0.
MOVE uecha1 TO out_par-value.
MODIFY out_par INDEX sy-tabix.
MOVE kcmeng1 TO kcmeng1_strg.
READ TABLE out_par WITH KEY 'KCMENG'.
CHECK sy-subrc = 0.
out_par-value = kcmeng1_strg.
MODIFY out_par INDEX sy-tabix.
******************END CODING*******************
Es geht um die Variable kcmeng1. Sie wird gefüllt mit z.B. 3000.000
Im Formular soll aber 3.000 stehen.
Das erste Problem war, das das out_par-value die Zahl 3000.000, die aus SAP kommt nicht übernommen hat, deshalb der Umweg über die kcmeng1_strg.
Ausgegeben wird aber nur 3000. Der Tausenderpunkt fehlt.
vielen Dank für deine schnelle Antwort.
Weisst Du vielleciht auch wie?
Wenn ich die Variable mit I(nteger) typisiere, dann sollte ABAP eigentlich einen Tausenderpunkt vergeben, macht es aber nicht.