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;
}
[解决办法]