以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89167) |
||||
-- 作者:xh2207 -- 发布时间:2016/8/16 16:07:00 -- [求助] 当订单表中只要存在过品名和型号规格时,在商品表中相同的品名和型号规格行不能删除和修改,但计量单位和单价列可以修改。 当订单表中未存在过品名和型号规格时,在商品表中相同的品名和型号规格行能删除和修改,计量单位和单价列也能修改。 目的:当期只要在订单表中出现过的商品,均不能在商品表中删除或修改品名和规格型号;否侧当期内,在订单表中未出现过的商品,均能在商品表中删除或修改。
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/16 16:12:00 -- If e.DataCol.Name = "品名" Or e.DataCol.Name = "型号规格" Then Dim dr As DataRow dr = DataTables("订单").Find("品名 = \'" & e.DataRow("品名") & "\' And 型号规格 = \'" & e.DataRow("型号规格") & "\'") If dr IsNot Nothing Then MessageBox.Show("此订单号已经存在!") e.Cancel = True End If End If |
||||
-- 作者:xh2207 -- 发布时间:2016/8/16 16:19:00 -- 试过,行,这问题纠结了很久,还是未理解透教程。谢谢大红袍。 |
||||
-- 作者:xh2207 -- 发布时间:2016/8/20 9:26:00 -- @大红袍 上次请教你并得到你的帮助,得 以实现这功能: 当期只要在订单表中出现过的商品,均不能在商品表中删除或修改品名和规格型号;否侧当期内,在订单表中未出现过的商品,均能在商品表中删除或修改。 但还不完善,无论订单表中是否出现过,均可以直接删除该行,这是不允许的。只要在订单表中出现过的商品,不允许在商品表中直接删除该行,不能在商品表中删除或修改品名和规格型号,其他列可以修改,如计量单位、单价列可以修改。 |
||||
-- 作者:Hyphen -- 发布时间:2016/8/20 9:32:00 -- 参考:http://www.foxtable.com/webhelp/scr/0605.htm 具体问题上传实例
|
||||
-- 作者:xh2207 -- 发布时间:2016/8/20 10:58:00 -- 实例
|
||||
-- 作者:Hyphen -- 发布时间:2016/8/20 11:31:00 -- 商品表 BeforeDeleteDataRow事件 If DataTables("订单").Find("品名=\'" & e.DataRow("品名") & "\' and 型号规格=\'" & e.DataRow("型号规格") & "\'") IsNot Nothing Then msgbox("不能删除") e.Cancel = True End If PrepareEdit事件 Select Case e.Col.Name Case "品名","型号规格" If DataTables("订单").Find("品名=\'" & e.Row("品名") & "\' and 型号规格=\'" & e.Row("型号规格") & "\'") IsNot Nothing Then e.Cancel = True End If End Select |