js脚本中编号的自动增加

pinchaxiang 2011-08-30 06:16:11
要求, 从“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
...全文
433 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiejianss 2012-05-31
  • 打赏
  • 举报
回复
同样的问题学习下
pinchaxiang 2011-08-31
  • 打赏
  • 举报
回复
多谢各位, 我明白了。 成功了!!!多谢多谢!
燥动的心 2011-08-31
  • 打赏
  • 举报
回复
parseInt("0008") ,parseInt("0009") 是有问题的
会当作8 进制计算,必须用指定进制,parseInt("0008",10)
pinchaxiang 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiaoheixiaobai 的回复:]

引用 2 楼 theforever 的回复:
一律直接加上0000,然后从右面取5位就可以了。

++
js的话:
var d = "00000" + obj;
var e=d.substring(d.length-5,d.length);
[/Quote]

嗯 没错, 这个方法是很简单。
xiaoheixiaobai 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 theforever 的回复:]
一律直接加上0000,然后从右面取5位就可以了。
[/Quote]
++
js的话:
var d = "00000" + obj;
var e=d.substring(d.length-5,d.length);
pinchaxiang 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jike316 的回复:]

你这个编号在数据库是自动增加的的吧,
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;
}
[/Quote]




也还是不对啊。
pinchaxiang 2011-08-31
  • 打赏
  • 举报
回复
我倒是发现了, 那个js脚本里好像没有 equals 这个东西。
2399 2011-08-31
  • 打赏
  • 举报
回复
你这个编号在数据库是自动增加的的吧,
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;
}
  • 打赏
  • 举报
回复
况且你这是JSP,和JS完全两回事。
  • 打赏
  • 举报
回复
根本没必要这么判断,一大堆
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位就可以了。
hookee 2011-08-30
  • 打赏
  • 举报
回复
parseInt(bh, 10); 加个参数10,用十进制转换

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧