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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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