Добрый день!
Для русской версии есть [#NumberRU#], а как для укр?
Хочу в печатную форму добавить цифру прописью, не деньги (просто цифра)
Нравится
2 комментария
19 августа 2019 15:28
Добрый день.
Скорее всего готового решения нет, но Вы можете написать свой макрос, который будет переводить цифры в слова.
В интернете масса примеров, в которых описывается данный алгоритм.
19 августа 2019 16:06
Интерфейс этого макроса реализован в схеме NumberRUExpressionConverter, который, в свою очередь, вызывает схему NumberInWords, где и реализовано само превращение в текст. Можно попробовать сделать аналогичный NumberUKExpressionConverter и к нему переведенную копию NumberInWords.
Первая из схем совсем короткая:
namespace Terrasoft.Configuration
{
using System;
using System.Text;
#region Class: NumberRUExpressionConverter
/// <summary>
/// Number to string (russian) expression converter class.
/// </summary>
[ExpressionConverterAttribute("NumberRU")]
public class NumberRUExpressionConverter : IExpressionConverter
{
#region Methods: Public
/// <summary>
/// Converts number value.
/// </summary>
/// <param name="value">Number value.</param>
/// <param name="arguments"> Additional arguments.</param>
/// <returns>Converted number to string value.</returns>
public string Evaluate(object value, string arguments = "") {
decimal dec;
if (!decimal.TryParse((string)value, out dec)) {
return string.Empty;
}
switch (arguments) {
case "Cent":
decimal cent = decimal.Floor(dec * 100) % 100;
return cent.ToString("00");
case "Decimal":
StringBuilder sb = new StringBuilder();
NumberInWords.ConstractDblValueString((double)dec, ref sb);
return sb.ToString();
default:
return NumberInWords.ConvertAmountToMaleStr(Math.Truncate(dec));
break;
}
return string.Empty;
}
#endregion
}
#endregion
}Вторая намного больше и понравится любителям 1С.![]()
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать