以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 产品与模具的关系 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128816) |
||||
-- 作者:edisontsui -- 发布时间:2018/12/15 17:06:00 -- 产品与模具的关系
请看附页excel档案。我有两个数据表,即“物料字典”和“模具清单”。“模具清单”里面的一个模具型号在“物料字典”里面可能会包含多个物料编号,这些物料编号会在“模具清单”的“所应用的产品”这个数据列反映出来。那么,当“物料字典”里面增加、删除数据行或者修改其“模具型号”内容时,希望“模具清单”里面的“所应用的产品”这栏的数据能够得到立即更新。请赐教代码如何写。谢谢。 |
||||
-- 作者:有点蓝 -- 发布时间:2018/12/15 17:30:00 --
|
||||
-- 作者:edisontsui -- 发布时间:2018/12/17 10:40:00 -- 不要意思,我的foxtable版本低了,打不开你给的档案。可否请你将代码发给我即可?谢谢。 |
||||
-- 作者:有点甜 -- 发布时间:2018/12/17 10:48:00 -- 物料字典_DataColChanged
Select Case e.DataCol.Name
物料字典_DataRowDeleting
Dim dr As DataRow = DataTables("模具清单").Find("模具型号=\'" & e.DataRow("模具型号") & "\'") |
||||
-- 作者:edisontsui -- 发布时间:2018/12/17 16:32:00 -- Select Case
e.DataCol.Name Case "模具型号" If e.DataRow("模具型号") <>
"不适用" Dim dr As DataRow =
DataTables("模具清单").Find("模具型号=\'" & e.DataRow("模具型号")
& "\'") dr("所应用的产品") =
e.DataTable.GetComboListString("物料编号","模具型号=\'" &
e.DataRow("模具型号") &
"\'").Replace("|",",") End If End Select If e.DataCol.Name
= "模具型号" AndAlso e.OldValue > "" AndAlso e.newvalue
<> "不适用" Then Dim dr As DataRow = DataTables("模具清单").Find("模具型号=\'"
& e.DataRow("模具型号") & "\'") dr = DataTables("模具清单").Find("模具型号=\'"
& e.OldValue & "\'") If dr IsNot Nothing Then dr("所应用的产品") =
e.DataTable.GetComboListString("物料编号","模具型号=\'" &
e.OldValue & "\'").Replace("|",",") End If End If 我将你的代码更改上面那样。我在“物料字典”里面增加和删除数据行时,能够正常运行,满足我们的要求。但是当我在“物料字典”里面执行“模具型号”的“重置列”时,会出现如下警告: .NET Framework 版本:2.0.50727.8793 Foxtable 版本:2017.3.18.1 错误所在事件:表,物料字典, DataColChanged 详细错误信息: 调用的目标发生了异常。 未将对象引用设置到对象的实例。 为什么呢? |
||||
-- 作者:有点甜 -- 发布时间:2018/12/17 16:58:00 -- 没看懂你需要做什么效果,先试试
Select Case e.DataCol.Name If e.DataCol.Name = "模具型号" AndAlso e.OldValue > "" AndAlso e.newvalue <> "不适用" Then |