本帖最后由 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 |