找回密码
 立即注册

QQ登录

只需一步,快速开始

CainduranceTX
中级会员   /  发表于:2023-9-4 17:27  /   查看:2012  /  回复:6
30金币
image.png635789489.png
各位老板,如何在文本框里显示汉字大写的数字?
没有找到能用的函数啊~

最佳答案

查看完整内容

您好,这个没有直接的函数可以实现,需要使用自定义函数,您可以参考下面的教程进行实现: 【报表-表达式】巧用自定义函数,实现金额大写 https://gcdn.grapecity.com.cn/showtopic-157845-1-1.html (出处: 葡萄城产品技术社区)

6 个回复

正序浏览
Bella.YuanWyn认证
超级版主   /  发表于:2023-9-5 08:46:13
7#
CainduranceTX 发表于 2023-9-4 21:47
搞定了·~函数有效~多谢2位大佬!

不客气,问题解决了就好,暂时的话针对数字大小写的函数只能使用自定义函数的这种方式进行实现,我们也反馈一下这个需求,看后续是否能做成您想要的那种函数。
回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2023-9-4 21:47:50
6#
搞定了·~函数有效~多谢2位大佬!
回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2023-9-4 18:32:25
5#
Felix.Li 发表于 2023-9-4 18:18
你可以用自定已脚本实现。我们默认没有这个函数:

https://www.grapecity.com.cn/solutions/wyn/help/doc ...

这函数挺常用的,不考虑直接加进程序里嘛
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-9-4 18:18:59
4#
你可以用自定已脚本实现。我们默认没有这个函数:

https://www.grapecity.com.cn/sol ... ings/user-functions

脚本参考这个:
  1. /// <function name="ConvertToCNYText">
  2. /// <culture>
  3. /// <label>ConvertToCNYText</label>
  4. /// <syntax>ConvertToCNYText(string inputString)</syntax>
  5. /// <description>自动转换中文单位</description>
  6. /// <example>ConvertToCNYText("100") = 壹佰元整
  7. /// </example>
  8. /// </culture>
  9. /// </function>
  10. ///
  11. public string ConvertToCNYText(string inputString)
  12. {
  13.     try
  14.     {
  15.         string numList = "零壹贰叁肆伍陆柒捌玖";
  16.         string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
  17.         double number = 0;
  18.         string tempOutString = "";
  19.         number = double.Parse(inputString);


  20.         string tempNumberString = Convert.ToInt64(number * 100).ToString();
  21.         int tempNmberLength = tempNumberString.Length;
  22.         int i = 0;

  23.         while (i < tempNmberLength)
  24.         {
  25.             int oneNumber = Int32.Parse(tempNumberString.Substring(i, 1));
  26.             string oneNumberChar = numList.Substring(oneNumber, 1);
  27.             string oneNumberUnit = rmbList.Substring(tempNmberLength - i - 1, 1);
  28.             if (!(oneNumberChar == "零"))
  29.                 tempOutString += oneNumberChar + oneNumberUnit;
  30.             else
  31.             {
  32.                 if (oneNumberUnit == "亿" || oneNumberUnit == "万" || oneNumberUnit == "元" || oneNumberUnit == "零")
  33.                 {
  34.                     while (tempOutString.EndsWith("零"))
  35.                         tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
  36.                 }
  37.                 if (oneNumberUnit == "亿" || (oneNumberUnit == "万" && !tempOutString.EndsWith("亿")) || oneNumberUnit == "元")
  38.                     tempOutString += oneNumberUnit;
  39.                 else if (tempOutString != null)
  40.                 {
  41.                     bool tempEnd = tempOutString.EndsWith("亿");
  42.                     bool zeroEnd = tempOutString.EndsWith("零");
  43.                     if (tempOutString.Length > 1)
  44.                     {
  45.                         bool zeroStart = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零");
  46.                         if (!zeroEnd && (zeroStart || !tempEnd))
  47.                             tempOutString += oneNumberChar;
  48.                     }
  49.                     else if (!zeroEnd && !tempEnd)
  50.                         tempOutString += oneNumberChar;
  51.                 }
  52.             }
  53.             i += 1;
  54.         }
  55.         if (tempOutString != null)
  56.         {
  57.             while (tempOutString.EndsWith("零"))
  58.                 tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
  59.             while (tempOutString.EndsWith("元"))
  60.                 tempOutString = tempOutString + "整";
  61.             return tempOutString;
  62.         }
  63.     }
  64.     catch (Exception ex)
  65.     {
  66.         return "#数值转换错误" + ex.Message;
  67.     }
  68.     return String.Empty;
  69. }
复制代码


回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2023-9-4 18:06:52
3#
本帖最后由 Felix.Li 于 2023-9-4 18:16 编辑
Bella.Yuan 发表于 2023-9-4 17:48
您好,这个没有直接的函数可以实现,需要使用自定义函数,您可以参考下面的教程进行实现:



{Code.ConvertToCNYText(12345.67)}
用在我这,就是{Code.ConvertToCNYText(sum(大病保险支付(某某数据集)))}
是这样吧。。。
回复 使用道具 举报
最佳答案
最佳答案
Bella.YuanWyn认证
超级版主   /  发表于:2023-9-4 17:27:53
来自 2#
您好,这个没有直接的函数可以实现,需要使用自定义函数,您可以参考下面的教程进行实现:


【报表-表达式】巧用自定义函数,实现金额大写
https://gcdn.grapecity.com.cn/showtopic-157845-1-1.html
(出处: 葡萄城产品技术社区)


评分

参与人数 1满意度 +5 收起 理由
YSLSX + 5

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部