以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请问老师,表A中通过窗口新增了一行数据后如何在表B中同时新增一行数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122349) |
-- 作者:初心不改再说未来 -- 发布时间:2018/7/23 17:33:00 -- 请问老师,表A中通过窗口新增了一行数据后如何在表B中同时新增一行数据 表A中有个订单编号列,(通过日期自动生成,非表达式列),通过窗口提交数据后形成一行新数据 点击保存按钮后, 如何在表B的订单编号列同时新增一条数据,并且将表A的编号同时自动赋值到表B的编号列中?
|
-- 作者:有点甜 -- 发布时间:2018/7/23 17:45:00 -- 参考
http://www.foxtable.com/webhelp/scr/2490.htm
|
-- 作者:初心不改再说未来 -- 发布时间:2018/7/23 20:20:00 -- 我就是看的这个帮助,但是按照帮助代码写进去,表B没有新增数据,是我代码有问题吗? Select Case e.DataCol.name Case "订单编号" Dim dr As DataRow = DataTables("计调操作表").Find("订单编号 = \'" & e.OldValue & "\'") If dr Is Nothing Then dr = DataTables("计调操作表").AddNew() dr("订单编号") = e.DataRow("订单编号") dr("客人姓名") = e.DataRow("客人姓名") dr("出行行程") = e.DataRow("出行行程") Else dr("订单编号") = e.DataRow("订单编号") End If Case "客人姓名","出行行程" Dim dr As DataRow = DataTables("计调操作表").Find("订单编号 = \'" & e.DataRow("订单编号") & "\'") If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select Dim drr As DataRow = DataTables("计调操作表").Find("订单编号 = \'" & e.DataRow("订单编号") & "\'") If drr IsNot Nothing Then drr.Delete() End If \'根据订单表客人信息,自动计算出订单总人数 If e.DataCol.name = "客人姓名" Then If e.NewValue = Nothing Then e.DataRow("订单人数") = 0 Else e.DataRow("订单人数") = e.newvalue.split(",").length End If End If \'根据出团时间自动生成订单编号(以后看下中间的-能不能去掉) If e.DataCol.Name = "出团时间" Then If e.DataRow.IsNull("出团时间") Then e.DataRow("订单编号") = Nothing Else Dim bh As String = Format(e.DataRow("出团时间"),"yyyyMMdd") \'取得编号的8位前缀 If e.DataRow("订单编号").StartsWith(bh) = False \'如果编号的前8位不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(订单编号)","出团时间 = #" & e.DataRow("出团时间") & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该天的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(9,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("订单编号") = bh & "-" & Format(idx,"000") End If End If End If |
-- 作者:有点蓝 -- 发布时间:2018/7/23 20:23:00 -- 这段代码去掉 Dim drr As DataRow = DataTables("计调操作表").Find("订单编号 = \'" & e.DataRow("订单编号") & "\'") If drr IsNot Nothing Then drr.Delete() End If |
-- 作者:初心不改再说未来 -- 发布时间:2018/7/23 20:41:00 -- 那订单这边删除行了,就没法和库存这边同步了呀,本来这段代码的意思就是要同步删除的吧? 我测试了,可以新加了,但是没了同步删除功能
|
-- 作者:有点蓝 -- 发布时间:2018/7/23 20:52:00 -- 同步删除到删除事件写代码,不同事件有不同的用法,并不是所有代码 放到一个事件里完成 |