二开案例.表达式函数.金额转大写函数

【应用场景】将数字格式的金额转换成指定格式的字符串,例如,将数字123转换成壹佰贰拾叁元整。
【演示案例】采购订单的单据头新增一个文本字段,用于保存和显示当前订单的金额的大写字符。

【实现步骤】
<1>编写函数,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Core.Metadata.Expression.FuncDefine;
using Kingdee.BOS.NumFormatTran;
using Kingdee.BOS.Util;
using System;
namespace Jac.XkDemo.BOS.Core.Functions
{
/// <summary>
/// 【函数】金额转大写函数
/// </summary>
[Serializable]
public class AmountToUpperFuncDefine : AbstractFuncDefine
{
public AmountToUpperFuncDefine()
{
}
public AmountToUpperFuncDefine(Context ctx, dynamic obj)
{
m_ctx = ctx;
m_obj = obj;
}
public override IFuncDefine GetFunctionDefine(Context ctx, dynamic obj)
{
return new AmountToUpperFuncDefine(ctx, obj);
}
public override object GetFuncDefine()
{
return new Func<object, string, string>(FuncDefine);
}
/// <summary>
/// 金额转大写
/// </summary>
/// <param name="value">数字</param>
/// <param name="upperStlye">大写格式,取值范围请参考枚举类型UpperStyle</param>
/// <returns>返回金额转大写后的字符串</returns>
string FuncDefine(object value, string upperStlye)
{
if (value == null)
{
return "";
}
var tran = new FormatTranslate();
tran.Resource = value.ToString();
tran.Type = upperStlye;
return FormatTranslateUtil.Translate(tran);
}
}
}
/*
/// <summary>
/// 金额大写样式
/// </summary>
public enum UpperStyle
{
/// <summary>
/// 中文人民币样式
/// </summary>
ChineseRmbStyle,
/// <summary>
/// 英文美元大写样式(美分)
/// </summary>
EnglishDollarStyle,
/// <summary>
/// 英文大写样式(美分)
/// </summary>
EnglishWithoutStyle,
/// <summary>
/// 中文人民币带整样式
/// </summary>
ChineseRmbZhengStyle,
/// <summary>
/// 中文人民币带整样式(圆)
/// </summary>
ChineseRmbZhengYuanStyle,
/// <summary>
/// 英文大写样式(美分2)
/// </summary>
EnglishUppercaseCentsStyle,
/// <summary>
/// 英文大写样式(元)
/// </summary>
EnglishUppercaseDollarsStyle,
/// <summary>
/// 英文大写样式(美点)
/// </summary>
EnglishUppercasePointStyle,
/// <summary>
/// 英文大写样式(分数)
二开案例.表达式函数.金额转大写函数
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



