В накладной делаю так:
Code:
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = totals_data-all-net_weight
currency = l_currency
IMPORTING
in_words = l_spell
EXCEPTIONS
OTHERS = 9.
PERFORM Get_Spell_Massa
USING
l_spell
head_data-meins
CHANGING
low_part-net_weight_word.
Где Get_Spell_Massa следующий:
Code:
FORM Get_Spell_Massa
USING
au_spell TYPE spell
au_meins TYPE meins
CHANGING
ac_spell_massa TYPE string.
CONSTANTS: lc_tonna TYPE meins VALUE 'TO',
lc_tonna_name_s TYPE string VALUE 'т',
lc_tonna_name_l TYPE string VALUE 'тонн',
lc_kilogramm TYPE meins VALUE 'КГ',
lc_kilogramm_name_s TYPE string VALUE 'кг',
lc_kilogramm_name_l TYPE string VALUE 'килограмм',
lc_gramm TYPE meins VALUE 'G',
lc_gramm_name_s TYPE string VALUE 'г',
lc_gramm_name_l TYPE string VALUE 'грамм',
lc_milligramm TYPE meins VALUE 'MG',
lc_milligramm_name_s TYPE string VALUE 'мг',
lc_milligramm_name_l TYPE string VALUE 'миллиграмм'.
DATA l_name_unit TYPE string.
DATA l_numeral TYPE n.
DATA l_num TYPE i.
CLEAR ac_spell_massa.
CHECK ( au_spell-word IS NOT INITIAL )
AND ( au_spell-decword IS NOT INITIAL ).
CASE au_meins.
WHEN lc_tonna.
l_name_unit = lc_tonna_name_l.
IF au_spell-number+14 = 1.
CONCATENATE l_name_unit 'а' INTO l_name_unit.
l_num = STRLEN( au_spell-word ) - 2.
au_spell-word+l_num = 'на'.
ELSEIF au_spell-number+14 >= 2 AND au_spell-number+14 <= 4.
CONCATENATE l_name_unit 'ы' INTO l_name_unit.
ENDIF.
CONCATENATE au_spell-word l_name_unit
au_spell-decimal lc_kilogramm_name_s
INTO ac_spell_massa SEPARATED BY space.
WHEN lc_kilogramm.
CONCATENATE au_spell-word lc_kilogramm_name_l
au_spell-decimal lc_gramm_name_s
INTO ac_spell_massa SEPARATED BY space.
WHEN lc_gramm.
CONCATENATE au_spell-word lc_gramm_name_l
au_spell-decimal lc_milligramm_name_s
INTO ac_spell_massa SEPARATED BY space.
WHEN OTHERS.
ENDCASE.
ENDFORM. " Get_Spell_Massa