Текущее время: Пн, июл 21 2025, 20:07

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: SPELL_AMOUNT
СообщениеДобавлено: Пт, авг 17 2012, 17:18 
Начинающий
Начинающий

Зарегистрирован:
Пт, авг 17 2012, 17:10
Сообщения: 7
Я использую функцию SPELL_AMOUNT . Возможно ли с помощью етой функции вместо, например, выводить не «Пять тысяч семьсот семьдесят две руб. 00 коп.» на «Пять тысяч семьсот семьдесят два руб. 00 коп.»


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SPELL_AMOUNT
СообщениеДобавлено: Пт, авг 17 2012, 21:02 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
да


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPELL_AMOUNT
СообщениеДобавлено: Пн, авг 20 2012, 09:27 
Начинающий
Начинающий

Зарегистрирован:
Пт, авг 17 2012, 17:10
Сообщения: 7
Подскажите, пожалуйста, как, а то я новичок в ABAP.
Вот моя функция:

CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = tab1-cost
currency = l_waers
filler = space
language = 'R'
IMPORTING
in_words = t_spell
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SPELL_AMOUNT
СообщениеДобавлено: Пн, авг 20 2012, 09:44 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
и что в t_spell получилось? у меня в t_spell-word Пять тысяч семьсот семьдесят два и получается


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPELL_AMOUNT
СообщениеДобавлено: Пн, авг 20 2012, 10:12 
Начинающий
Начинающий

Зарегистрирован:
Пт, авг 17 2012, 17:10
Сообщения: 7
странно( у меня все равно "Пять тысяч семьсот семьдесят две руб. 00 коп.". Может что-то в самой функции?

FUNCTION spell_amount.
*"----------------------------------------------------------------------
*"Lokale Schnittstelle:
*" IMPORTING
*" AMOUNT DEFAULT 0
*" CURRENCY LIKE SY-WAERS DEFAULT SPACE
*" FILLER DEFAULT SPACE
*" LANGUAGE LIKE SY-LANGU DEFAULT SY-LANGU
*" EXPORTING
*" IN_WORDS LIKE SPELL STRUCTURE SPELL
*" EXCEPTIONS
*" NOT_FOUND
*" TOO_LARGE
*"----------------------------------------------------------------------

* Analyse und Merken des Übergabeparameters AMOUNT
DESCRIBE FIELD amount TYPE type DECIMALS decimals.
IF type EQ 'P'.
int_amount = amount * ( 10 ** decimals ).
ELSE.
int_amount = amount.
ENDIF.

* Merken der Importing-Parameter, die in LF017F01 benutzt werden
int_decimal = 0.
int_filler = space.
int_filler+1 = filler.
int_language = language.

* Nach- und Vorkommastellen (falls Währungsbetrag zu bearbeiten ist)
IF currency NE space.
IF currency EQ '0'. "Sicherheitsabfrage (sonst Loop
tcurx-currdec = 0. "bei fehlendem Eintrag 0)
ELSE.
SELECT SINGLE * FROM tcurx
WHERE currkey EQ currency.
IF sy-subrc NE 0.
tcurx-currdec = 2.
ENDIF.
ENDIF.
int_divisor = 1.
DO tcurx-currdec TIMES.
int_divisor = int_divisor * 10.
ENDDO.
int_decimal = int_amount MOD int_divisor.
int_amount = int_amount DIV int_divisor.
int_divisor = 1000000000.
DO tcurx-currdec TIMES.
int_divisor = int_divisor / 10.
ENDDO.
int_decimal = int_decimal * int_divisor.
ENDIF.

* Geschlecht der Währungsbezeichnung ... (allgemein)
IF language CA 'PSR8'.
IF currency EQ space.
int_genus = 'M'.
ELSE.
IF tcurc-waers NE currency.
CLEAR tcurc.
SELECT SINGLE * FROM tcurc WHERE waers EQ currency.
ENDIF.
* ... in Portugiesisch und Spanisch
IF ( language CA 'PS' AND
( 'ADP/CYL/CZK/DKK/EEK/EGP/ESP/GBL/GBP/IDR' CS tcurc-isocd OR
'IEP/INR/ITL/LBP/LKR/MTL/MUR/NOK/NPR/PKR' CS tcurc-isocd OR
'SCR/SDP/SEK/SKK/SYP/TRL' CS tcurc-isocd ) AND
tcurc-isocd NE space ) OR
* ... in Russisch und Ukrainisch
( language CA 'R8' AND
( 'ADP/AON/BDT/BWP/CZK/DEM/DKK/EEK/ESP/FIM' CS tcurc-isocd OR
'GRD/HRK/INR/ISK/ITL/JPY/PGK/PKR/SCR/SEK' CS tcurc-isocd OR
'AOR/ERN/IDR/LKR/MOP/MUR/MVR/MWK/NGN/NOK' CS tcurc-isocd OR
'SKK/STD/TOP/TRL/UAH/WST/ZMK/NPR/PAB' CS tcurc-isocd ) AND
tcurc-isocd NE space ).
int_genus = 'F'.
ELSE.
int_genus = 'M'.
ENDIF.
ENDIF.
ENDIF.
* ... in Bulgarian
IF language EQ 'W'.
PERFORM set_int_genus USING language
currency
CHANGING int_genus.
ENDIF.

* ISO-Code der Währung nachlesen bei tschechisch, slowakisch, russisch
* und koreanisch (Südkorea) zur Ausgabe der Währungsbezeichnung
IF language CA 'CQR3'.
CLEAR tcurc.
SELECT SINGLE * FROM tcurc WHERE waers = currency.
ENDIF.

* Prüfen, ob Betrag zu groß ist
IF int_amount(5) NE '00000'.
MESSAGE e074 WITH int_amount RAISING too_large.
ELSE.
int_zahl = int_amount+5.
ENDIF.

* Füllen der Ergebnis-Feldleiste IN_WORDS
PERFORM ziffern_in_worten.
PERFORM betrag_in_worten.
PERFORM nachkomma_in_worten.
in_words = spell.

ENDFUNCTION.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SPELL_AMOUNT  Тема решена
СообщениеДобавлено: Пн, авг 20 2012, 10:34 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
nadia.mot написал(а):
... currency = l_waers ...
Возможно, здесь содержится валюта, отличная от рубля (например, гривна). Если в качестве валюты берется именно рубль, попробуйте запустить ФМ из se37 без указания валюты (т.е. с указанием только суммы), если ошибка будет сохраняться, проверьте таблицу T015Z.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPELL_AMOUNT
СообщениеДобавлено: Пн, авг 20 2012, 11:05 
Начинающий
Начинающий

Зарегистрирован:
Пт, авг 17 2012, 17:10
Сообщения: 7
Спасибо! Вы мне очень помогли)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB