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

[已解决] 编号问题

[复制链接]
联合学信息 发表于 2017-6-20 10:03:27 | 显示全部楼层 |阅读模式
本帖最后由 six 于 2017-6-20 18:31 编辑

通过这个代码实现了编号无断续,不重复

var value1=getItemValueAsString("编号");
if(value1.trim().length()<=0){
var prx="JH";  //前缀
var year=getYear(getToday()); //当前年
var month=getMonth(getToday());
var length1=parseInt(month.toString().length);
if(length1<=1){
      month="0"+month;        
}
var day = getDay(getToday());
var length2=parseInt(day.toString().length);
if(length2<=1){
      day="0"+day;
}          
var digit=3;  //指定增长序列号位数
var rtn=prx+year+month;
var sql="select * from tlk_出差任务审批  where item_编号 like '%"+rtn+"%' order by created desc";  //查询对应的表单编号
var doc=findBySQL(sql);
println(doc+"===doc====");
var val="";
if(doc==null){
    value1=prx+year+month+"001";
}else{
       var test1=doc.getItemValueAsString("编号");
       var test2=parseInt(test1.substr(rtn.length));
       println(test2+"===test2====");
       var test3=test2+1;
       if (test3< 9) {
                   for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
                         val += "0";
                   }println(val+"======val===");
                   val =val+test3;
            } else if (test3 < 99) {
                    for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
                          val += "0";
                    }
                  val =val+test3;
           } else if (test3 < 999) {
                    for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
                           val += "0";
                   }
                  val =val+test3;
      } else if (test3 < 9999) {
                     for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
                           val += "0";
                     }
                    val =val+test3;
           } else if (test3 < 99999) {
                     for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
                             val += "0";
                     }
                    val =val+test3;
            } else if (test3 < 999999) {
                      for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
                            val += "0";
                      }
                     val =val+test3;
            } else if (test3< 9999999) {
                     for (var temp = 1; temp <= digit - test3.toString().length; temp++) {
                           val += "0";
                    }
                    val =val+test3;
            } else
                val =val+test3;
      rtn=prx+year+month+day+val;
      value1=rtn;
  }
}
value1;


但是当某一个表单可以是上一张表单发起之后才能发起的流程,也可以是单独发起流程  的时候,就会产生同样的编号,具体qq上已经截图进行说明,请问这种情况怎么解决呀?

联系qq  905434206
six 发表于 2017-6-20 16:04:16 | 显示全部楼层
功能无法实现
回复

使用道具 举报

 楼主| 联合学信息 发表于 2017-6-20 18:01:57 | 显示全部楼层
结帖,谢谢大神
回复

使用道具 举报

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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