Wyn7.0.01209.0自定义函数一直编译不结束
问题描述:在Wyn版本:7.0.01209.0 中,我使用了以下帖子的自定义函数,但是当我复制代码进去,并点击编译之后,一直加载编译不结束。
目前不清楚是否所有的自定义函数都会这样
自定义函数地址:
【报表-表达式】巧用自定义函数,实现动态单位
https://gcdn.grapecity.com.cn/showtopic-156044-1-1.html
(出处: 葡萄城开发者社区)
您好,新版本已经修复这个问题。欢迎下载新版本体验。
最新版本下载地址: https://www.grapecity.com.cn/solutions/wyn/download
您好,您在浏览器控制台看一下,编译的时候有没有报错信息:
Eden.Sun 发表于 2024-7-3 12:04
您好,您在浏览器控制台看一下,编译的时候有没有报错信息:
有以下报错信息:
您好,这个目前确实有点问题,这个我们看着能不能改一下,做一个新的方法看能不能实现。有新结果了给您再分享 Felix.Li 发表于 2024-7-3 18:28
您好,这个目前确实有点问题,这个我们看着能不能改一下,做一个新的方法看能不能实现。有新结果了给您再分 ...
好的,那现在这个错误是因为“自定义函数本身有问题需要升版”是吧? 是的,新的已经修改,是缺少了类型定义。您可以使用以下代码:
/// <function name="AutoFormat">
/// <culture>
/// <label>AutoFormat</label>
/// <syntax>AutoFormat(object number, string unit = "", string format = "")</syntax>
/// <description>自动转换中文单位</description>
/// <example>AutoFormat(100) = 100
/// AutoFormat(100000,"万") = 10.0万 (万与亿自动单位 1位小数)
/// AutoFormat(100000,"万","0:0.00") = 10.00万 (可以用第二个参数自定义小数位数和格式化)
/// </example>
/// </culture>
/// </function>
public string AutoFormat(object number, string unit = "", string format = "")
{
// 文本对应的数值单位
System.Collections.Generic.Dictionary<string, decimal> unitDic = new System.Collections.Generic.Dictionary<string, decimal>() {
{"百",100},{"千",1000},{"万",10000},{"十万",100000},{"百万",1000000},{"千万",10000000},{"亿",100000000},{"十亿",1000000000},{"万亿",1000000000000}
};
if (number == null)
return string.Empty;
try
{
// 如果不传单位,就根据数值自动判断单位(亿和万)
var result = Convert.ToDecimal(number);
if (string.IsNullOrWhiteSpace(unit))
{
if (Math.Abs(result) >= 100000000)
{
unit = "亿";
}
else if(Math.Abs(result) >= 10000)
{
unit = "万";
}
}
if (unitDic.ContainsKey(unit))
{
// 如果是有文字单位,自动保留1位小数
if (string.IsNullOrEmpty(format)) format = "{0:0.0}";
return String.Format(format + unit, result / unitDic);
}
// 如果传了format,就用format,如果没有传就用自带toString()
return string.IsNullOrWhiteSpace(format)? result.ToString():String.Format(format, result);
}
catch (Exception e)
{
return "AutoFormat转换错误"+e.Message;
}
}
Felix.Li 发表于 2024-7-4 15:56
是的,新的已经修改,是缺少了类型定义。您可以使用以下代码:
好的,辛苦了 RickyJen 发表于 2024-7-4 16:21
好的,辛苦了
不客气的,有其他问题。欢迎您在开新帖解决:lol 正常会报错的,现在的情况是一个bug GERM-6637
后续bug修复我们会通知您的.
页:
[1]
2