二开案例.账表表单插件.数字显示千分位
【应用场景】
账表中的数值型字段,设置其数字显示千分位符。
【案例演示】
采购订单简单账表,设置其数字列显示千分位符。
<方案1>:通过区域格式设置,实现数字显示千分位符。
<方案2>:表单插件对数字列进行格式化显示,下文将演示插件方案的实现过程。
【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core.Report.PlugIn;
using Kingdee.BOS.Core.Report.PlugIn.Args;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
using System.Globalization;
namespace Jac.XkDemo.BOS.Report.PlugIn
{
/// <summary>
/// 【账表表单插件】数字显示千分位
/// </summary>
[Description("【账表表单插件】数字显示千分位"), HotUpdate]
public class CgddJdzbSysReportPlugIn : AbstractSysReportPlugIn
{
public override void FormatCellValue(FormatCellValueArgs args)
{
base.FormatCellValue(args);
if (args.Header.Key.Equals("FAllAmount", StringComparison.OrdinalIgnoreCase))
{
// 格式化数字(指定小数位数+千分位符)
args.FormateValue = GetDecimalFormatString(Convert.ToDecimal(args.DataRow["FAllAmount"]), 2);
// 去尾零
//args.FormateValue = args.FormateValue.GetNoZeroString();
}
}
/// <summary>
/// 格式化数字(指定小数位数+千分位符)
/// </summary>
/// <param name="value"></param>
/// <param name="digits"></param>
/// <returns></returns>
public static string GetDecimalFormatString(decimal value, int digits = 0)
{
if (digits < 0 || digits > 99) return ObjectUtils.Object2String(value);
var formatString = "N" + digits;
var format = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
format.NumberNegativePattern = 1;
format.NumberDecimalDigits = digits;
return value.ToString(formatString, format);
}
}
}
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>采购订单简单账表注册表单插件,保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开采购订单简单账表,即可看到格式化效果,不管当前用户的区域格式怎么设置,此时的价税合计列的数据将始终显示千分位。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.账表表单插件.数字显示千分位
本文2024-09-23 04:18:34发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164482.html