下面,我給出一段代碼。裡面具有完整的注釋。
using System;
namespace BaseLayer
{
///
/// 單據編號,產生自增編號,如:入參為"DJ000002",將返回"DJ000003"
///
public class SheetNumber
{
///
/// 單據編號,產生自增編號,如:入參為"DJ000002",將返回"DJ000003"
///
/// 原值
///
public string NextNumber(string BaseNumber)
{
string NewNumber = "";//新值
int InNumber = 1;//進位
int PlaceValue;//位值
char[] No = BaseNumber.ToCharArray();
for(int i=BaseNumber.Length-1;i>=0;i--)
{
if(No[i]=='9' && InNumber==1)
{
InNumber=1;
NewNumber="0"+NewNumber;
}
else
if(InNumber==1 && No[i]>='0' && No[i]<'9')
{
PlaceValue=Int32.Parse(No[i].ToString());
PlaceValue=(InNumber+PlaceValue);
InNumber=0;
NewNumber=PlaceValue.ToString()+NewNumber;
}
else
{
InNumber=0;
NewNumber=No[i]+NewNumber;
}
}
if(BaseNumber==NewNumber)
NewNumber="0000000001";
return NewNumber;
}
}
}
OK。如果以後遇到要自己追加單據號碼的話。這一段代碼應該可能實現你的要求了吧?'