在致远表单设计中,为实现将阿拉伯数字转为大写汉字,通过参考大神的算法和致远表单设计方法,将算法以groovy语言实现出来,下面作以分享:

算法思路:先将数字逐字转换为汉字数字和汉字单位,再将挨着个位、万位、亿位前的所有零和单位都剔除掉;未挨着个位、万位、亿位前的连续零和单位仅保留最低一位为零,其他均剔除。最后还发现,如果亿和万之间数字均为零,则需删除万位,比如一亿万要把万字删掉才能得出正确结果一亿。

操作步骤:

①表单中分别添加一个数字控件和一个文本控件,主要实现数字控件中的数字以大写汉字的格式自动显示在文本控件中;

②选中文本控件,点击右侧控件属性的计算公式,点击函数自定义,新建函数,参数设置选择数字控件的数据域名,代码框中填写groovy代码,保存即可。

代码内容:

//阿拉伯数字转大写汉字,最高位数一仟万亿,groovy语言String abs=param[0];   //读取阿拉伯数字ch_number=[1:"壹",2:"贰",3:"叁",4:"肆",5:"伍",6:"陆",7:"柒",8:"捌",9:"玖",0:"零"];
ch_unit =["","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万","拾","佰","仟"];l=abs.length()-1;
ch =[]; //汉字数组
i=0
def absz=abs as String[];   //转换阿拉伯数字数组//数字逐位转换为对应的汉字
for (i in absz){j =i as int;ch.add(ch_number[j]);ch.add(ch_unit[l]);l-=1;
}//算法开始:思路-挨着空、万、亿前的所有的零和单位均剔除;未挨着空、万、亿前的连续零和单位仅保持最低一位为零,其他均剔除//把所有0及0后除空、万、亿以外的单位替换为x
k=ch.size()-1;
for(k;k>0;k=k-2){if(ch[k-1]=="零")ch[k-1]="x";if(ch[k-1]=="x" && ch[k]!="" && ch[k]!="万" && ch[k] !="亿")ch[k]="x";
}//把挨着空、万、亿前所有的x替换为y
k = ch.size()- 1;
for(k;k>0;k=k-1){if( ((ch[k]=="" || ch[k]=="万" || ch[k]=="亿") && ch[k-1] =="x") || (ch[k]=="y" && ch[k-1]=="x"))ch[k-1]="y";
}//把连续的x的最低一位x替换为零
k=ch.size()-2;
for(k;k>0;k=k-1){if(ch[k]=="x" && ch[k+1]!="零" && ch[k+1]!="x")ch[k]="零";
}//算法结束//如果亿和万之间数字均为零,则需删除万的单位,比如一亿万要把万字删掉
k= ch.size();
if(k>=18 && ch[k-16]=="y"&& ch[k-14]=="y" && ch[k-12] =="y")ch[k-9] ="x";String dxh ="";    //定义大写汉字字符串i=0;
//将汉字数组转换为字符串写入dxh字符串中
for (i; i<ch.size();i++){if(ch[i]!="x" && ch[i]!="y")dxh=dxh+ch.get(i);
}return dxh;

致远表单函数自定义-groovy代码:阿拉伯数字转大写汉字相关推荐

  1. 致远表单代办状态删除

    1.  找到数据库需要处理的表单是哪张表 表 FORM_DEFINITION字段 FIELD_INFO name="formmain_0000"表单所存储表 2.  找到表单数据和 ...

  2. 金和oa:自定义表单函数计算一段时期内的工作日

    今天介绍一下在自定义表单时如何去计算两个日期之间的工作日.这是很常用的一个js函数,比如在加班中,比如在请假中... 1. 计算两个日期之间的工作日,写附加元素页面 <script langua ...

  3. 自定义表单、自定义流程、自定义页面、自定义报表应用开发平台

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 Java开发框架,自定义表单.自定义页面.自定义流程.自定义报表应用开发平台 二.实现功能 支持系统文件在线管理 支持代码在线编辑 支持URL 路由 ...

  4. mysql 自定义表单_DedeCMS自定义表单制作和调用办法

    在很多建站需求中,需要一些额外的表单供前台用户提交,以便于收集.统计.分析及处理更多的数据,比如:在线订单.在线报名等一些常见的互动应用. dedecms自定义表单调用 先说怎么调用自定义表单吧,因为 ...

  5. bootstrap中导航、导航栏、表单及自定义表单

    导航: bootstrap中使用列表封装了水平导航,其类样式如: 类名 描述 .nav 给ul或ol,用于清除列表默认样式,并将列表项水平排列 .nav-item 给li,用于布局 .nav-link ...

  6. dedecms 自定义表单html,dedecms自定义表单和自定义表单如何用自己模板教程

    dedecms自定义表单和自定义表单如何用自己模板视频教程,无声,但有具体的操作和演示的模板,以及详细的说明. 在线预约一个表单,后台可以直接实现自定义表单功能 注意看有个 表单的id 其他的不用管, ...

  7. html表单验证自定义错误提示

    原文链接:html表单验证自定义错误提示 引言 通常情况下,我们在进行表单验证时(比如提交登录注册信息),为了安全考虑以及进一步保证表单信息填写的正确性,会再服务端验证之前,在前端页面先做一次验证.但 ...

  8. 表单在线生成 html代码,JSP实现用于自动生成表单标签html代码的自定义表单标签...

    本文实例讲述了JSP实现用于自动生成表单标签html代码的自定义表单标签.分享给大家供大家参考.具体如下: 这个是自己写的一个简单的JSP表单标签,用于自动生成checkbox,select,radi ...

  9. Vue+Element UI 下,如何给一个表单设置自定义规则或多个验证规则(:rules)

    依旧是公司里那个Vue+Element UI的项目.今天遇到了一个新的问题:表单中某个选择器的值不同,控制着下面表单内容是否显示. 大概就是这个样子.由后台返回的"发放方式"的数值 ...

最新文章

  1. 无服务器计算将会取代容器?
  2. Element el-upload上传组件详解
  3. 女儿问了我一个问题:什么是抽象?
  4. C语言 | 基于51单片机实现MPU6050的卡尔曼滤波算法(代码类1)
  5. Python 人脸识别就多简单,看这个就够了!
  6. POJ3675 Telescope 圆和多边形的交
  7. 不安装oracle 连接数据库,不安装oracle 连接服务器oracle数据库方法
  8. 基本类型--枚举类型和位标志
  9. TabError: inconsistent use of tabs and spaces in indentation
  10. Linux Shell笔记2 函数
  11. mysql5.7.1 zip版本安装记录
  12. Integrity Pro for mac(网站死链接清理)
  13. 【TSP】基于matlab混合粒子群算法求解旅行商问题【含Matlab源码 397期】
  14. java下载不了怎么_如何下载和安装Java
  15. win10安装ePLAN P8 2.7无法通过驱动精灵更新MultiUSB Key驱动问题的解决办法
  16. B站狂神Docker学习笔记
  17. Debezium报错处理系列之三十四:The db history topic or its content is fully or partially missing. Please check d
  18. 深入GetMessage,PeekMessage以及Windows消息机制
  19. Codeforces Round #703 (Div. 2) C. Guessing the Greatest
  20. mysql5.7应该导什么包_微信表情包制作amp;上线全过程(详细血泪史)

热门文章

  1. Azure KeyVault(四)另类在 .NET Core 上操作 Secrets 的类库方法-----Azure.Security.KeyVault.Secrets
  2. Java InputStreamReader类
  3. 如何成为世界级软件公司
  4. adaware.exe
  5. 微软的AntiSpyware Beta-我们将看到它如何与SpyBot和AdAware相提并论...
  6. cannot resolve corresponding JNI function 解决方法
  7. 禄劝一中高考成绩查询2021,禄劝彝族苗族自治县第一中学2021年排名
  8. 200页幻灯片图解典型行业与省市数据法规要求(附下载)
  9. excel行列互换_1秒轻松搞定EXCEL表格行列内容互换
  10. Ant-design-vue中table表格序号连续递增问题