您的位置:首页 > 其它

自动获取当前编号的下一个编号

2017-08-15 09:54 190 查看
 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;

        }
        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++;

                        }
                    }

                    //Move_No(_return, Flen - i);

                    else break;

                }

            }

            return _return;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: