以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  同表复制数据问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=43278)

--  作者:seintfei
--  发布时间:2013/12/3 17:20:00
--  同表复制数据问题
请教老师:

订单 和 订单明细 通过订单编号关联,如何实现复制订单和订单明细时,订单编号递增+1

--  作者:Bin
--  发布时间:2013/12/3 17:27:00
--  
不是很理解你的意思.

首先你编号是自动生成的吗? 是的话就不用管它.

如果是手动输入的,你是希望在复制行的时候编号+1吗?  那么你可以在复制完行的时候 或者克隆行完毕的时候 为这一行的编号+1即可,

这个应该很简单的啊,还是我没理解你的意图?

最好能上个例子,描述清楚你的问题.

--  作者:seintfei
--  发布时间:2013/12/3 17:39:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test01.table


是自动编号,克隆后报错
[此贴子已经被作者于2013-12-3 17:57:27编辑过]

--  作者:seintfei
--  发布时间:2013/12/3 18:24:00
--  
有没有老师指教下


--  作者:有点甜
--  发布时间:2013/12/3 19:13:00
--  
 简单改一下代码就行了

Select e.DataCol.Name
    Case "项目号"
        If e.DataRow.IsNull("项目号") Then
            e.DataRow("报价单编号") = Nothing
        Else
            Dim xmh As String = e.DataRow("项目号")
            If e.DataRow("报价单编号").StartsWith(xmh) = False \'如果单据报价单编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(报价单编号)","项目号 = \'" & xmh & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该项目号的最大报价单编号
                If max > "" Then \'如果存在最大报价单编号
                    idx = right(max,1) + 1 \'获得最大报价单编号的后三位顺序号,并加1
                Else
                    idx = 1 \'否则顺序号等于1
                End If
                e.DataRow("报价单编号") = "IQ" & xmh & "-" & Format(idx,"0")
            End If
        End If
End Select