要求, 从“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

解决方案 »

  1.   

    parseInt(bh, 10); 加个参数10,用十进制转换
      

  2.   

    根本没必要这么判断,一大堆
     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位就可以了。
      

  3.   

    况且你这是JSP,和JS完全两回事。
      

  4.   

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

  5.   

    我倒是发现了,  那个js脚本里好像没有  equals 这个东西。
      

  6.   

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

  7.   

    parseInt("0008") ,parseInt("0009") 是有问题的
    会当作8 进制计算,必须用指定进制,parseInt("0008",10)