找回密码
 注册成为天翎用户
查看: 792|回复: 6

[已解决] 编号的问题

[复制链接]
联合学信息 发表于 2017-6-1 16:41:01 | 显示全部楼层 |阅读模式
本帖最后由 six 于 2017-6-5 14:41 编辑

编号的问题,是否有解决方案
缘由:当用户点击多次时,会生成多个号码,这样有可能出现 编号不连续的情况,我们希望能够解决这个问题。例如 某个表单中点击一次生成一个号码,2017009,可当用户报废这次的表单,当他再点击的时候,就会生成2017010,这样表单中间就会出现断码,2017007,2017008,2017010,中间就会缺少2017009

联系qq  905434206
six 发表于 2017-6-1 17:21:26 | 显示全部楼层
参考以下代码:修改sql语句查询的表单,改为对应的表单名就可以用了

  1. var value1=getItemValueAsString("编号");
  2. if(value1.trim().length()<=0){
  3. var prx="JH";  //前缀
  4. var year=getYear(getToday()); //当前年
  5. var month=getMonth(getToday());
  6. var length1=parseInt(month.toString().length);
  7. if(length1<=1){
  8.       month="0"+month;        
  9. }
  10. var digit=3;  //指定增长序列号位数
  11. var rtn=prx+year+month;
  12. var sql="select * from tlk_施工合同评审单 where item_编号 like '%"+rtn+"%' order by created desc";  //查询对应的表单编号
  13. var doc=findBySQL(sql);
  14. println(doc+"===doc====");
  15. var val="";
  16. if(doc==null){
  17.     value1=prx+year+month+"001";
  18. }else{
  19.        var test1=doc.getItemValueAsString("编号");
  20.        var test2=parseInt(test1.substr(rtn.length));
  21.        println(test2+"===test2====");
  22.        var test3=test2+1;
  23.        if (test3< 9) {
  24.                    for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
  25.                          val += "0";
  26.                    }println(val+"======val===");
  27.                    val =val+test3;
  28.             } else if (test3 < 99) {
  29.                     for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
  30.                           val += "0";
  31.                     }
  32.                   val =val+test3;
  33.            } else if (test3 < 999) {
  34.                     for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
  35.                            val += "0";
  36.                    }
  37.                   val =val+test3;
  38.       } else if (test3 < 9999) {
  39.                      for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
  40.                            val += "0";
  41.                      }
  42.                     val =val+test3;
  43.            } else if (test3 < 99999) {
  44.                      for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
  45.                              val += "0";
  46.                      }
  47.                     val =val+test3;
  48.             } else if (test3 < 999999) {
  49.                       for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
  50.                             val += "0";
  51.                       }
  52.                      val =val+test3;
  53.             } else if (test3< 9999999) {
  54.                      for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
  55.                            val += "0";
  56.                     }
  57.                     val =val+test3;
  58.             } else
  59.                 val =val+test3;
  60.       rtn=prx+year+month+val;
  61.       value1=rtn;
  62.   }
  63. }
  64. value1;
复制代码
回复

使用道具 举报

 楼主| 联合学信息 发表于 2017-6-2 11:59:30 | 显示全部楼层
我把JH改成CC,结果“日”就没有出来了,为什么呢
回复

使用道具 举报

 楼主| 联合学信息 发表于 2017-6-2 14:02:38 | 显示全部楼层
现在是跑出来了,但是多了222这样子的数字
回复

使用道具 举报

 楼主| 联合学信息 发表于 2017-6-2 14:15:44 | 显示全部楼层
还有一个问题,如果两个用户同时打开表单,产生的编号是一样的,能不能一个是01    一个是02 啊
回复

使用道具 举报

six 发表于 2017-6-5 14:39:26 | 显示全部楼层
联合学信息 发表于 2017-6-5 09:23
结帖。。。。。。谢谢

跟客户调试后,是客户把表名改错了。已经调整回来。可结贴
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 21:19

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表