Gd convert.GetCurrNumeral
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (Новая страница: «{{FuncDef|unit={{#explode:{{PAGENAME}}|.|0}}|type=function|src=function GetCurrNumeral(const ACurrKey: Integer; const AFormat: String; AValue: Double; const ARoun…») |
SYSDBA (обсуждение | вклад) (→Примеры использования) |
||
| (не показаны 7 промежуточных версий 1 участника) | |||
| Строка 1: | Строка 1: | ||
{{FuncDef|unit={{#explode:{{PAGENAME}}|.|0}}|type=function|src=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;}} | {{FuncDef|unit={{#explode:{{PAGENAME}}|.|0}}|type=function|src=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;}} | ||
| − | <onlyinclude>Конвертирует число, денежную величину в строку | + | <onlyinclude>Конвертирует число, денежную величину в строку, для чего использует [[gd_convert.GetNumeral|GetNumeral]].</onlyinclude> Наименования целых и разменных единиц валюты берутся из справочника валют (таблица [[GD_CURR]]). |
;ACurrKey:ИД валюты из справочника валют. | ;ACurrKey:ИД валюты из справочника валют. | ||
;AFormat:Строка формата. | ;AFormat:Строка формата. | ||
;AValue:Значение для преобразования | ;AValue:Значение для преобразования | ||
| − | ;ARounding:Округление. | + | ;ARounding:Округление. 0 -- без округления. 1 -- до целого числа. 10 -- до десятков. 100 -- до сотен, 0.01 -- до сотых, 5 -- число будет кратно 5, 0.5 -- число кратно 0.5 и т.д. |
| − | ;ACase:Регистр результирующей строки. | + | ;ACase:Регистр результирующей строки. Целочисленное значение. '''caseName = 0''' -- Первая буква заглавная, остальные строчные; '''caseLower = 1''', '''caseUpper = 2''' -- в нижнем и верхнем регистре, соответственно; '''caseMixed = 3''' -- не изменять регистр. Знак валюты и код валюты не преобразовываются, а выводятся в строку так как задано при вызове функции. |
;AParts:Битовая маска может включать следующие значения: partSubstWhenZero = 1 -- если значение ноль, то подставлять переданную строку, partHideFracWhenZero = 2 -- не выводить дробную часть, если она равна нулю, partHideWholeWhenZero = 4 -- не выводить целую часть если она равна нулю. | ;AParts:Битовая маска может включать следующие значения: partSubstWhenZero = 1 -- если значение ноль, то подставлять переданную строку, partHideFracWhenZero = 2 -- не выводить дробную часть, если она равна нулю, partHideWholeWhenZero = 4 -- не выводить целую часть если она равна нулю. | ||
;ASubst:Строка для подстановки, если указан флаг partSubstWhenZero. | ;ASubst:Строка для подстановки, если указан флаг partSubstWhenZero. | ||
| Строка 18: | Строка 18: | ||
!style="background:#ffdead;"| Результат | !style="background:#ffdead;"| Результат | ||
|- | |- | ||
| − | |GetCurrNumeral(200010, '@W @F @D @C', 1, 0, caseName, 0, | + | |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', 1, 0, caseName, partHideFracWhenZero, '', '.', ' ') || Один белорусский рубль |
|- | |- | ||
| − | |GetCurrNumeral(200010, '@W @F @D @C', 0.15, 0, caseName, partHideWholeWhenZero + 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 @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 @D @K', 1.15, 0.01, caseName, 0, '', '.', ' ') || Один руб. пятнадцать коп. |
|- | |- | ||
| − | |GetCurrNumeral(200010, '@W @B @D00 @K', 1.15, 0.01, caseName, 0, | + | |GetCurrNumeral(200010, '@W @B @D00 @K', 1.15, 0.01, caseName, 0, '', '.', ' ') || Один руб. 15 коп. |
| + | |-a | ||
| + | |GetCurrNumeral(200010, '@W @F @D00 @C', 3561.15, 0.01, caseName, 0, '', '.', ' ') || Три тысячи пятьсот шестьдесят один белорусский рубль 15 копеек | ||
|- | |- | ||
| − | |GetCurrNumeral(200010, '@W @F @D00 @ | + | |GetCurrNumeral(200010, '@W @F @D00.## @K', 3561.1586, 0, caseName, 0, '', '.', ' ') || Три тысячи пятьсот шестьдесят один белорусский рубль 15.86 коп. |
|- | |- | ||
| − | |GetCurrNumeral(200010, '@W @F @D00.## @K', 3561. | + | |GetCurrNumeral(200010, '@W @F @D00.## @K', 3561.0586, 0, caseName, 0, '', '.', ' ') || Три тысячи пятьсот шестьдесят один белорусский рубль 05.86 коп. |
|- | |- | ||
| − | |GetCurrNumeral(200010, '@W @F @ | + | |GetCurrNumeral(200010, '@W @F @D0.## @K', 3561.0586, 0, caseName, 0, '', '.', ' ') || Три тысячи пятьсот шестьдесят один белорусский рубль 5.86 коп. |
|- | |- | ||
| − | |GetCurrNumeral(200010, '@W @F @D0.## @K', 3561. | + | |GetCurrNumeral(200010, '@W @F @D0.## @K', 3561.05, 0, caseName, 0, '', '.', ' ') || Три тысячи пятьсот шестьдесят один белорусский рубль 5 коп. |
|- | |- | ||
| − | |GetCurrNumeral(200010, '@W @F @D0.## @K', 3561.05, 0, caseName, 0, | + | |GetCurrNumeral(200010, '@W#,##0 @F @D0.## @K', 3561.05, 0, caseName, 0, '', '.', ' ') || 3 561 белорусский рубль 5 коп. |
|- | |- | ||
| − | |GetCurrNumeral(200010, '@ | + | |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 | |
| − | + | ||
| − | |GetCurrNumeral(200010, '@S @I @O', 1.15, 0.01, caseName, 0, | + | |
|} | |} | ||
Текущая версия на 14:20, 27 июля 2016
| Модуль: 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 |