Добрый день!
Для русской версии есть [#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С.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать