Gd convert.GetCurrNumeral
Материал из GedeminWiki
Версия от 11:20, 27 июля 2016; SYSDBA (обсуждение | вклад)
Модуль: Gd convert.pas | Тип: function |
Delphi:
function GetCurrNumeral(const ACurrKey: Integer; const AFormat: String; AValue: Double; const ARounding: Double; const ACase: Integer; const AParts: Integer; const ASubst, ADecimalSeparator, AThousandSeparator: String): String;
Описание
Конвертирует число, денежную величину в строку, для чего использует GetNumeral. Наименования целых и разменных единиц валюты берутся из справочника валют (таблица GD_CURR).
- ACurrKey
- ИД валюты из справочника валют.
- AFormat
- Строка формата.
- AValue
- Значение для преобразования
- ARounding
- Округление. 0 -- без округления. 1 -- до целого числа. 10 -- до десятков. 100 -- до сотен, 0.01 -- до сотых, 5 -- число будет кратно 5, 0.5 -- число кратно 0.5 и т.д.
- ACase
- Регистр результирующей строки. Целочисленное значение. caseName = 0 -- Первая буква заглавная, остальные строчные; caseLower = 1, caseUpper = 2 -- в нижнем и верхнем регистре, соответственно; caseMixed = 3 -- не изменять регистр. Знак валюты и код валюты не преобразовываются, а выводятся в строку так как задано при вызове функции.
- AParts
- Битовая маска может включать следующие значения: partSubstWhenZero = 1 -- если значение ноль, то подставлять переданную строку, partHideFracWhenZero = 2 -- не выводить дробную часть, если она равна нулю, partHideWholeWhenZero = 4 -- не выводить целую часть если она равна нулю.
- ASubst
- Строка для подстановки, если указан флаг partSubstWhenZero.
- ADecimalSeparator
- Десятичный разделитель. Если не задан, то используется системный.
- AThousandSeparator
- Разделитель групп цифр. Если не задан, то используется системный.
Примеры использования
Вызов функции | Результат |
---|---|
GetCurrNumeral(200010, '@W @F @D @C', 1, 0, caseName, 0, '', '.', ' ') | Один белорусский рубль ноль копеек |
GetCurrNumeral(200010, '@W @F @D @C', 1, 0, caseName, partHideFracWhenZero, '', '.', ' ') | Один белорусский рубль |
GetCurrNumeral(200010, '@W @F @D @C', 0.15, 0, caseName, partHideWholeWhenZero + partHideFracWhenZero, '', '.', ' ') | Пятнадцать копеек |
GetCurrNumeral(200010, '@W @F @D @C', 1.15, 0.01, caseName, 0, '', '.', ' ') | Один белорусский рубль пятнадцать копеек |
GetCurrNumeral(200010, '@W @B @D @K', 1.15, 0.01, caseName, 0, '', '.', ' ') | Один руб. пятнадцать коп. |
GetCurrNumeral(200010, '@W @B @D00 @K', 1.15, 0.01, caseName, 0, '', '.', ' ') | Один руб. 15 коп. |
GetCurrNumeral(200010, '@W @F @D00 @C', 3561.15, 0.01, caseName, 0, '', '.', ' ') | Три тысячи пятьсот шестьдесят один белорусский рубль 15 копеек |
GetCurrNumeral(200010, '@W @F @D00.## @K', 3561.1586, 0, caseName, 0, '', '.', ' ') | Три тысячи пятьсот шестьдесят один белорусский рубль 15.86 коп. |
GetCurrNumeral(200010, '@W @F @D00.## @K', 3561.0586, 0, caseName, 0, '', '.', ' ') | Три тысячи пятьсот шестьдесят один белорусский рубль 05.86 коп. |
GetCurrNumeral(200010, '@W @F @D0.## @K', 3561.0586, 0, caseName, 0, '', '.', ' ') | Три тысячи пятьсот шестьдесят один белорусский рубль 5.86 коп. |
GetCurrNumeral(200010, '@W @F @D0.## @K', 3561.05, 0, caseName, 0, '', '.', ' ') | Три тысячи пятьсот шестьдесят один белорусский рубль 5 коп. |
GetCurrNumeral(200010, '@W#,##0 @F @D0.## @K', 3561.05, 0, caseName, 0, '', '.', ' ') | 3 561 белорусский рубль 5 коп. |
GetCurrNumeral(200010, '@N#,##0.00 @B @@@', 3561.05, 0, caseName, 0, '', '.', ' ') | 3 561.05 руб. @@@ |
GetCurrNumeral(200010, '@S @I @O', 1.15, 0.01, caseName, 0, '', '.', ' ') | Br 933 BYN |