js脚本中编号的自动增加 要求, 从“00001” 开始增加, 每新增一个表单, 数值+1 , 即“00002”。。“00003”。。。。。。前面的0000是字符型的; 我写一部分代码, 但不能实现, 哪位高手帮我做一下, 感激不尽! importClass(Packages.cn.com.chx.bo.AppBo); importClass(java.lang.Integer); importClass(Packages.cn.com.chx.util.DateTimeUtil); //获取当前时间 var date=new Date( ); var df=new java.text.SimpleDateFormat("yyyy"); var df2=df.format(date); 查询数据库 里上一个数据 var sql = "select * from GW_GWGL order by ID desc"; var bo = new AppBo(); var list = bo.query(sql);
定义变量年份为“”; var year = "";
数据库中list 有值得时候执行。 if(list.size() > 0 && list != null && list != "null" && list != ""){ //取到数据库中时间(swsj) year = list.get(0).get("SWSJ"); //取到数据库中编号(bh) var bh1 = list.get(0).get("BH"); //将字符串类型的bh 转换成 数值类型 var bh = (parseInt(bh1)); //当前年份与数据库中年份比对。
if(!year.substring(0,3).equals(df2)){
编号数值小于10时,则拼接字符“0000” 。依次。。。这是我写的,出现错误, 当增加到00008时 在增加则从00001开始了。反复循环。 if(bh<=10){ var b = (parseInt(bh))+1; bh="0000"+b; }else if(bh>10 && bh<100){ var b = (parseInt(bh))+1; bh="000"+b; }else if(bh>=100 && bh<1000){ var b = parseInt(bh)+1; bh="00"+b; }else if(bh>=1000 && bh<10000){ var b = parseInt(bh)+1; bh="0"+b; } 将编号赋给“bh” objTable.put("bh",bh);
} } else { objTable.put("bh","00001"); }
哪里看不懂问我!
在下qq 894373014
------解决方案--------------------
parseInt(bh, 10); 加个参数10,用十进制转换
------解决方案-------------------- 根本没必要这么判断,一大堆 if(bh<=10){ var b = (parseInt(bh))+1; bh="0000"+b; }else if(bh>10 && bh<100){ var b = (parseInt(bh))+1; bh="000"+b; }else if(bh>=100 && bh<1000){ var b = parseInt(bh)+1; bh="00"+b; }else if(bh>=1000 && bh<10000){ var b = parseInt(bh)+1; bh="0"+b; }
一律直接加上0000,然后从右面取5位就可以了。
------解决方案-------------------- 况且你这是JSP,和JS完全两回事。
------解决方案-------------------- 你这个编号在数据库是自动增加的的吧, var sql = "select * from GW_GWGL order by ID desc"; 这句改成按编号升序
然后list里面就可以这里写了 bh ="0000" if(!year.substring(0,3).equals(df2)){ var bha +=1; bh+=bha; }