Foxtable(狐表)用户栏目专家坐堂 → 自动编号


  共有4323人关注过本帖树形打印复制链接

主题:自动编号

帅哥哟,离线,有人找我吗?
实话实说
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2022/3/30 12:18:00 [只看该作者]

有点蓝老师,能在1楼代码的基础上修改满足8楼的需求吗?先谢了。

 回到顶部
帅哥,在线噢!
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/30 13:35:00 [只看该作者]

加一个查询呀,find会用不?

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2022/3/30 13:37:00 [只看该作者]

好久没用了,帮我加一个吧

 回到顶部
帅哥,在线噢!
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/30 13:40:00 [只看该作者]


If e.DataCol.Name = "订单日期" Then

    If e.DataRow.IsNull("订单日期") Then
        e.DataRow("订单单号") = Nothing
    Else
dim dr2 as datarow = e.datatable.Find("xxxx条件"........
if dr2 isnot nothing then
 e.DataRow("订单单号") =  dr2("订单单号")
elsed
        Dim d As Date = e.DataRow("订单日期")
        Dim y As Integer = d.Year
        Dim m As Integer = d.Month

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2022/3/30 21:00:00 [只看该作者]

看看代码错在什么地方

'自动编号
If e.DataCol.Name = "客户" Or e.DataCol.Name = "订单日期" Then
    If e.DataRow.IsNull("客户") Or e.DataRow.IsNull("订单日期") Then
        e.DataRow("销售单号") = Nothing
    Else
        Dim dr2 As DataRow = e.DataTable.Find("客户 = " & "'" & e.DataRow("客户") & "' And 订单日期 = " & "'" & e.DataRow("订单日期") & "'" )
        If dr2 IsNot Nothing Then
            e.DataRow("销售单号") =  dr2("销售单号")    
        Else
            Dim d As Date = e.DataRow("订单日期")
            Dim y As Integer = d.Year
            Dim m As Integer = d.Month
            Dim Days As Integer = Date.DaysInMonth(y,m)
            Dim fd As Date = New Date(y,m,1) '获得该月的第一天
            Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
            Dim bh As String =  "XS" & Format(d,"yyyyMM") '生成编号的前6位,4位年,2位月.
            If e.DataRow("销售单号").StartsWith(bh) = False '如果编号的前6位不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(销售单号)","订单日期 >= #" & fd & "# And 订单日期 <= #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该月的最大编号
                If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(8,3)) + 1 '获得最大编号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("销售单号") = bh & Format(idx,"000")                                
            End If
        End If
    End If
End If


 回到顶部
帅哥,在线噢!
有点蓝
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/31 8:46:00 [只看该作者]

Dim dr2 As DataRow = e.DataTable.Find("客户 = '" & e.DataRow("客户") & "' And 订单日期 = '" & e.DataRow("订单日期") & "' and _identify <>" &  e.DataRow("_identify"))

 回到顶部
总数 16 上一页 1 2