LightSwitch中自动编号的生成

实现功能:变换日期时,按当月记录数,自动生成当月对应编号。

一般用途:常用来生成合同编号等。

需求数据控件及类型:文本框(intger)日期控件(date)

未优化代码:

Private Sub 合同时间_Changed()
            Dim DA = DataWorkspace.ApplicationData.SjZhuBiaoSet.GetQuery.Execute '多条长代码缩写
            '判断是数据库是否一条记录都没有
            If DA.Count(Function(xx) xx.自动编号) > 0 Then
                '判断当月有没有记录,没有则自动生成第一条记录
                If DA.Where(Function(xx) Left(xx.自动编号, 6) = Format(合同时间, "yyyyMM")).Count > 0 Then
                    '当 当月记录中有多条记录的“自动编号”相同时,则在数据库中最大值中加1,防止重复修改日期时,编号重复加1
                    If DA.Where(Function(xx) xx.自动编号 = 自动编号).Count = 0 Then '如果文本框值在数据库中不存在,则新建一条当月记录,比如,新建记录时,文本框初始值为0
                        自动编号 = DA.Where(Function(xx) Left(xx.自动编号, 6) = Format(合同时间, "yyyyMM")).Select(Function(yy) yy.自动编号).Max + 1
                    Else '当已有记录存在时,根据已填“自动编号”值是否存在当月记录里,如果不存在,则"自动编号"+1
                        If Left(自动编号, 6) <> Format(合同时间, "yyyyMM") Then
                            自动编号 = DA.Where(Function(xx) Left(xx.自动编号, 6) = Format(合同时间, "yyyyMM")).Select(Function(yy) yy.自动编号).Max + 1
                        End If
                    End If
                Else
                        自动编号 = CInt(Format(合同时间, "yyyyMM").ToString + "001")
                End If
            Else
                自动编号 = CInt(Format(合同时间, "yyyyMM").ToString + "001")
            End If
End Sub


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值