以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关联表自动增加行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175809)

--  作者:lal021962
--  发布时间:2022/3/20 10:06:00
--  关联表自动增加行

Select Case e.DataCol.Name
    Case
"订单编号"
       
If e.DataRow.IsNull("订单编号") = False Then \'如果已经输入订单编号
           
If e.DataRow.GetChildRows("订单明细").Count = 0 Then \'而且无订单明细
               
Dim dr As DataRow = DataTables("订单明细").AddNew()
                dr(
"订单编号") = e.DataRow("订单编号")
            End
If
       
End If
End
Select



使用了这个代码后,每次订单编号重置,订单明细表都会自动增加一行。但我希望能做到对应的订单明细表,相同的订单编号只有一行,在这一行已经存在的情况下,不会增加第二行。请问如何做到。


--  作者:c39lin
--  发布时间:2022/3/20 12:58:00
--  
订单编号没有关联吗?
--  作者:c39lin
--  发布时间:2022/3/20 13:01:00
--  
DataColChanged  你把事件放到这里,不要放DataColChanging

应该就可以了

--  作者:有点蓝
--  发布时间:2022/3/20 20:35:00
--  
代码没有问题,除非是订单表和订单明细表没有做关联。如果没有做关联,改为使用find,或者compute查询是否有明细,不要使用GetChildRows
--  作者:lal021962
--  发布时间:2022/3/21 11:38:00
--  
关联后就可以了,感谢各位
--  作者:lal021962
--  发布时间:2022/3/21 11:43:00
--  
另外请问如果是从后台的数据库中判断是否有存在行,请问代码该如何改写
[此贴子已经被作者于2022/3/21 11:44:25编辑过]

--  作者:有点蓝
--  发布时间:2022/3/21 11:48:00
--  
比如:http://www.foxtable.com/webhelp/topics/2911.htm