进货单号自增

进货单号自增

开发工具与关键技术:Visual Studio 2015
作者:徐晶旗
撰写时间:2019年8月7日 

在做项目的时候有一个模块是采购进货,然后每进一次货,系统就会自动在页面上生成一条单据编号,并且单号会根据进货的次数进行自增。那要怎么生成这个单据编号呢?我们就来一起做一下吧?
首先在页面上给这个要生成单据编号的位置放上一个id,因为单号是自动生成的,所以要使这个输入框不能进行编辑,就在input标签中添加了一个禁用属性“readonly”,防止用户对值进行修改。注:在这里为什么不用“disabled”呢?这是因为disabled与readonly虽然都能够做到在输入框中不能更改内容,但是使用disabled在后台是获取不到值的,所以在页面上不能改变值,因为我这里的单号会根据进货的次数发生改变,所以只适合用“readonly”,不过一般“disabled”属性比“readonly”属性更广,而readonly属性有一定的局限性,它只对< input >和< textarea> 标签有效,不过至于用哪个属性还是要看个人需求的?

<input class="form-control" id="OrderCode"name="StockNumber" readonly>

然后到控制器上写查询的方法,方法名为“CreateNumber”,首先申明一个值为空字符串的变量“Number”,再申明 StockNumber来接收查询到的数据,通过进货表查询进货单号,再判断查询到的数据条数是否大于0,如果大于0就申明一个变量“num”为int类型,这个变量的值等于查询到的数据条数,把数据条数转换成string类型,赋值给变量“Number”,然后写一个循环,循环次数为要生成单号的长度,然后在循环体中判断Number变量所表示的值的长度是否小于要生成单号的长度,如果小于就给它的前面拼接0。如果查询到的数据条数等于0,就直接把Number字符串赋值为初始单号“000000001”,然后就直接返回Number。如果单号需要一个前缀,就直接在返回的时候多拼一个需要的前缀,例如“JHD”。
具体代码如下:

/// <summary>
        /// 进货单号
        /// </summary>
        /// <returns></returns>
        public ActionResult CreateNumber()
        {
            var Number = "";
            var StockNumber = (from tbStock in myModels.B_Stock
                               orderby tbStock.StockID descending
                               select tbStock);
          
            if (StockNumber.Count() > 0)
            {
                int num = StockNumber.Count();
                Number = num.ToString();
                for (int i = 0; i < 9; i++)
                {
                    if (Number.Length < 9)
                    {
                        Number = "0" + Number;
                    }
                }
            }
            else
            {
                Number = "000000001";
            }

            return Json("JHD" + Number, JsonRequestBehavior.AllowGet);
        }

然后在页面上的加载事件中请求这个方法即可,找到要获取的id给它赋值,然后单据编号就这样生成了。

  $.post("CreateNumber", function (data) {
                $("#OrderCode").val(data);
            });

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值