public class NOHelper
{
/// <summary>
/// 自动取下一个连续号码
/// <returns></returns>
/// </summary>
/// <param name="Acc_No">传入当前号码</param>
/// <returns>下一个连续号码</returns>
public static string GetNextNO(string Acc_No)
{
string _return = Acc_No.TrimEnd();
if (_return == "")
return _return;
int _FLen = _return.Length + 1;
_return = Move_No(" " + _return, _FLen);
if (_return != "" && _return.Substring(0, 1) == " ")
_return = _return.Substring(1, _return.Length - 1).TrimEnd();
return _return;
}
{
/// <summary>
/// 自动取下一个连续号码
/// <returns></returns>
/// </summary>
/// <param name="Acc_No">传入当前号码</param>
/// <returns>下一个连续号码</returns>
public static string GetNextNO(string Acc_No)
{
string _return = Acc_No.TrimEnd();
if (_return == "")
return _return;
int _FLen = _return.Length + 1;
_return = Move_No(" " + _return, _FLen);
if (_return != "" && _return.Substring(0, 1) == " ")
_return = _return.Substring(1, _return.Length - 1).TrimEnd();
return _return;
}
private static string Move_No(string Acc_No, int Flen)
{
string _return = Acc_No;
int M = 0;
for (int i = 0; i <= Flen - 1; i++)
{
string _laststr = _return.Substring(Flen - 1 - i, 1);
char[] _lastchar = _laststr.ToCharArray();
M = (int)_lastchar[0];
if (M == 32 | M == 57 | (M >= 48 && M < 57) | (M >= 65 && M < 90) | (M >= 97 && M < 122))
{
int N = M;
if (M == 32)
M = 49;
else if (M == 57)
{
if (Flen + 1 - i == 1)
M = 49;
else M = 48;
}
else M = M + 1;
string _s = ((char)M).ToString();
string _Pstr = "";
string _Nstr = "";
if (i > 0 && i < Flen - 1)
{
_Pstr = _return.Substring(0, Flen - 1 - i);
_Nstr = _return.Substring(Flen - 1 - i + 1, i);
_return = _Pstr + _s + _Nstr;
}
else if (i < Flen - 1)
{
_Pstr = _return.Substring(0, Flen - 1 - i);
_return = _Pstr + _s;
}
else _return = _s;
if (N == 57)
{
if (i == Flen - 2)
{
_return = " 0" + _return.Substring(1, _return.Length - 1);
Flen++;
}
{
string _return = Acc_No;
int M = 0;
for (int i = 0; i <= Flen - 1; i++)
{
string _laststr = _return.Substring(Flen - 1 - i, 1);
char[] _lastchar = _laststr.ToCharArray();
M = (int)_lastchar[0];
if (M == 32 | M == 57 | (M >= 48 && M < 57) | (M >= 65 && M < 90) | (M >= 97 && M < 122))
{
int N = M;
if (M == 32)
M = 49;
else if (M == 57)
{
if (Flen + 1 - i == 1)
M = 49;
else M = 48;
}
else M = M + 1;
string _s = ((char)M).ToString();
string _Pstr = "";
string _Nstr = "";
if (i > 0 && i < Flen - 1)
{
_Pstr = _return.Substring(0, Flen - 1 - i);
_Nstr = _return.Substring(Flen - 1 - i + 1, i);
_return = _Pstr + _s + _Nstr;
}
else if (i < Flen - 1)
{
_Pstr = _return.Substring(0, Flen - 1 - i);
_return = _Pstr + _s;
}
else _return = _s;
if (N == 57)
{
if (i == Flen - 2)
{
_return = " 0" + _return.Substring(1, _return.Length - 1);
Flen++;
}
}
//Move_No(_return, Flen - i);
else break;
}
}
return _return;
}
//Move_No(_return, Flen - i);
else break;
}
}
return _return;
}