以文本方式查看主题 - 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=122371) |
||||
-- 作者:yetle -- 发布时间:2018/7/24 9:27:00 -- 编号 需求,复制订单编号为283的行,新增一行的编号变为283*001,再复制订单编号为283的行,新增的行编号为283*002,可下面的代码还是283*001,下面代码应该怎么改? Dim max As String Dim idx As Integer max = Tables("报价单").Compute("Max(订单编号)","订单编号 = [_Identify] <> " & r("_Identify")) If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If r("订单编号") = name & "*" & Format(idx,"000")
[此贴子已经被作者于2018/7/24 9:28:47编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/7/24 10:54:00 -- Dim name As String = r("订单编号") Dim max As String Dim idx As Integer max = Tables("报价单").Compute("Max(订单编号)","订单编号 like \'" & name.replace("*", "[*]") & "%\' and [_Identify] <> " & r("_Identify")) If max.Contains("*") Then \'如果存在最大编号 idx = CInt(max.split("*")(1)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If r("订单编号") = name & "*" & Format(idx,"000") |
||||
-- 作者:yetle -- 发布时间:2018/7/24 11:07:00 -- .NET Framework 版本:2.0.50727.3655 Foxtable 版本:2018.7.26.1 错误所在事件:窗口,报价记录,Button5,Click 详细错误信息: 未将对象引用设置到对象的实例。 有这个提示
[此贴子已经被作者于2018/7/24 11:07:43编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/7/24 11:17:00 -- Dim name As String = r("订单编号") |
||||
-- 作者:yetle -- 发布时间:2018/7/24 16:17:00 -- 这样写定位到当前行哪一行?怎么之前当前行是被复制的行,现在是复制出来的新行 我是需要定位到复制出来的新行,将复制出来的其中一列单元值改写
|
||||
-- 作者:有点甜 -- 发布时间:2018/7/24 16:20:00 -- 以下是引用yetle在2018/7/24 16:17:00的发言:
这样写定位到当前行哪一行?怎么之前当前行是被复制的行,现在是复制出来的新行 我是需要定位到复制出来的新行,将复制出来的其中一列单元值改写
贴出你写的全部代码 |
||||
-- 作者:yetle -- 发布时间:2018/7/24 16:25:00 -- 我知道怎么做了
[此贴子已经被作者于2018/7/24 16:28:03编辑过]
|
||||
-- 作者:yetle -- 发布时间:2018/8/16 11:34:00 -- 复制新增这段代码怎么用着用着,1、原报价明细直接被替换成新的报价明细了,(之前是原报价明细不变,新的报价明细复制新增了) Dim Result As DialogResult If Tables("报价单").Current("研发部_总监审核")="研发-总监" Then Result = MessageBox.Show("确认要新增版本吗?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If Result = DialogResult.Yes Then Dim r As Row = Tables("报价单").Current Dim dnew As Row = Tables("报价单").AddNew Dim name As String = r("订单编号") Dim max As String Dim idx As Integer If usna Like "业务*" Or usna="admin" Or usna="研发-祝炫丽" Then max = Tables("报价单").Compute("Max(订单编号)","订单编号 like \'" & name & "%\' and [_Identify] <> " & r("_Identify")) If max > "" AndAlso max.Contains("*") Then \'如果存在最大编号 idx = CInt(max.split("*")(1)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If For Each c As Col In Tables("报价单").Cols If c.Name <> "研发管理费" And c.Name <> "后勤管理费" And c.Name <> "制造费" Then If c.Name = "订单编号" Then dnew(c.Name) = name ElseIf c.Name <> "_Identify" AndAlso c.name <> "业务跟单" Then dnew(c.Name) = r(c.Name) End If End If Next dnew("订单编号") = name & "*" & Format(idx,"000") dnew("材料成本")=Tables("报价单.报价明细").Compute("Sum(金额)","订单编号=\'" & Tables("报价单").Current("订单编号") & "\'") dnew("财务审核") = Nothing dnew("总经理审批") = Nothing dnew("订单量") = 10000 dnew("业务跟单") = usna Dim drs As List(Of DataRow) drs = r.DataRow.GetChildRows("报价明细") Dim rc As DataRow For Each dr As DataRow In drs rc = dr.Clone rc("订单编号") = dnew("订单编号") Next End If Else MessageBox.show("你无此操作权限!") End If Else MessageBox.show("未审核报价款式不能复制新增版本!") End If
|
||||
-- 作者:有点甜 -- 发布时间:2018/8/16 11:42:00 -- 上传具体出错的实例测试。 |
||||
-- 作者:yetle -- 发布时间:2018/8/16 12:34:00 --
我在新项目里面做了测试了,点复制新增后,确实旧的报价明细没有了
[此贴子已经被作者于2018/8/16 12:35:17编辑过]
|