单号主要由两部分组成: 时间段 ,数字段
我英语不好, 假设英语是单号 dianhao, maxNumberpaRT的意思是单号自增长的一部分 比如0001-9999
所以有办法
String next(){
String dateString = getDateString();
int maxNumberpart = getMaxNumPart();
String stringNumberPart = formatLenIfNeed(maxNumberpart 1);
return dateString stringNumberPart;
}
//这个方法是对的 用需要显示位数的字串替换数字
//比如 1 就转成 0001, 26就转成 0026
formatLenIfNeed(int int4format, int needLen){
int realLength = Integer.toString(int4format).length();
if(realLength > needLength)
return Integer.toString(int4format);
StringBuilder ret = new StringBuilder(30);
for(int i = 0; i < needLength – realLength; i )
ret.append(“0”);
ret.append(int4format);
return ret.toString();
}
//这种方法是获得20081220这样与日期有关的词串
//vb 我不知道怎么改
String getDateString(){
}
//这种方法是找出数字段的最大值, 方法是找到一种方法来拼写这样的SQL
////单号字段的名称 dianhao, 类型是 64位的int bigint(这么简单)
int getMaxNumPart(String dateString){
///就是这样一个sql
String sql =
“select max(dianhao) from 表”
“where “
”diannao like (” dateString ” “%”)
”and len(dianhao) = ” (dateString.length() 4)
}
