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


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

主题:编号问题

帅哥哟,离线,有人找我吗?
lk15502
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
编号问题  发帖心情 Post By:2016/10/21 13:17:00 [只看该作者]

 窗口中上面是订单表,下面是订单明细表,订单表有订单编号,订单明细表有订单1明细编号,订单明细编号根据订单编号产生,下面的代码没有作用,是什么原因,订单表和订单明细表都是sqltable
If e.DataCol.Name = "订单明细编号" Then
Dim r As Row = Tables("订单管理_table1").current
    If r Is Nothing OrElse r.Isnull("订单编号") = True Then
        e.DataRow("订单明细编号") = Nothing
    Else
        Dim lb As String = r("订单编号") & "-"  
        If e.DataRow("订单明细编号").StartsWith(lb) = False Then '如果单据编号前缀不符
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.sqlCompute("Max(订单明细编号)","订单明细编号 like '" & r("订单编号") & "%'  And [_Identify] <> " &  e.DataRow("_Identify")) '取得该类别的最大编号
            If max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(lb.length,2)) + 1 '获得最大编号的后两位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("订单明细编号") = lb & Format(idx,"00")
            e.DataRow.Save
        End If
    End If
End If

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


加好友 发短信
等级:二尾狐 帖子:574 积分:4252 威望:0 精华:0 注册:2015/5/13 8:32:00
  发帖心情 Post By:2016/10/21 13:44:00 [只看该作者]

你可以,某个地方,输出一下,看看是否运行流畅啊!
慢慢就找出来哪里写错了!

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


加好友 发短信
等级:二尾狐 帖子:574 积分:4252 威望:0 精华:0 注册:2015/5/13 8:32:00
  发帖心情 Post By:2016/10/21 13:45:00 [只看该作者]

If e.DataCol.Name = "订单明细编号" Then
Dim r As Row = Tables("订单管理_table1").current
    If r Is Nothing OrElse r.Isnull("订单编号") = True Then
        output.show(1)
        e.DataRow("订单明细编号") = Nothing
    Else
        Dim lb As String = r("订单编号") & "-"  
        output.show(2)
        If e.DataRow("订单明细编号").StartsWith(lb) = False Then '如果单据编号前缀不符
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.sqlCompute("Max(订单明细编号)","订单明细编号 like '" & r("订单编号") & "%'  And [_Identify] <> " &  e.DataRow("_Identify")) '取得该类别的最大编号
            If max > "" Then '如果存在最大编号
                output.show(3)
                idx = CInt(max.Substring(lb.length,2)) + 1 '获得最大编号的后两位顺序号,并加1
            Else
                output.show(4)
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("订单明细编号") = lb & Format(idx,"00")
            e.DataRow.Save
        End If
    End If
End If


看看哪里停住了。。。。就找哪里

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


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/21 14:36:00 [只看该作者]

代码改到明细表DataRowAdded事件

Dim r As Row = Tables("订单管理_table1").current
If r Is Nothing OrElse r.Isnull("订单编号") Then
    e.DataRow("订单明细编号") = Nothing
Else
    Dim lb As String = r("订单编号") & "-"
    If e.DataRow("订单明细编号").StartsWith(lb) = False Then '如果单据编号前缀不符
        Dim max As String
        Dim idx As Integer
        max = e.DataTable.sqlCompute("Max(订单明细编号)","订单明细编号 like '" & r("订单编号") & "%' ") '取得该类别的最大编号
        If max > "" Then '如果存在最大编号
            idx = CInt(max.Substring(lb.length,2)) + 1 '获得最大编号的后两位顺序号,并加1
        Else
            idx = 1 '否则顺序号等于1
        End If
        e.DataRow("订单明细编号") = lb & Format(idx,"00")
        e.DataRow.Save
    End If
End If
[此贴子已经被作者于2016/10/21 14:38:27编辑过]

 回到顶部