以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 非关联验证 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99726) |
||||
-- 作者:实话实说 -- 发布时间:2017/4/25 16:59:00 -- 非关联验证 不想建立表的关联,想要以下结果 1、如果表B有对应的产品用料,(所有材料的用料)则勾选[标识]; 2、如果在表B编辑和新增产品的用料,则勾选表A的[标识]
|
||||
-- 作者:有点色 -- 发布时间:2017/4/25 17:30:00 -- 参考
http://www.foxtable.com/webhelp/scr/1453.htm
|
||||
-- 作者:有点色 -- 发布时间:2017/4/25 17:36:00 --
|
||||
-- 作者:实话实说 -- 发布时间:2017/4/25 17:43:00 -- 能贴出代码吗,我还没有升级 |
||||
-- 作者:有点色 -- 发布时间:2017/4/25 17:44:00 -- 表A_DataColChanged
Select Case e.DataCol.name Case "产品型号","产品规格" Dim fdr As DataRow = DataTables("表b").find("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\'") If fdr IsNot Nothing Then e.DataRow("标识") = True Else e.DataRow("标识") = False End If End Select
表B_DataColChanged
If e.DataCol.name = "产品型号" Then DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.oldvalue & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\'") DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\'") End If If e.DataCol.name = "产品规格" Then DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.OldValue & "\'") DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\'") End If |
||||
-- 作者:实话实说 -- 发布时间:2017/4/25 18:04:00 -- 验证后问题: 1、表B每个产品有两行,必须都有数据才能勾选,删除任一行数据都勾选不了或去掉勾选 |
||||
-- 作者:有点色 -- 发布时间:2017/4/25 18:07:00 -- 不明白你的问题。如何知道表A的数据对应两行还是三行还是四行? |
||||
-- 作者:实话实说 -- 发布时间:2017/4/25 18:14:00 -- 表A与表B实际是一对多(表A是一,表B是多) |
||||
-- 作者:实话实说 -- 发布时间:2017/4/25 18:15:00 -- 只有表B的用料都有数据(对应产品)才能在表A勾选 |
||||
-- 作者:有点色 -- 发布时间:2017/4/25 18:20:00 -- 以下是引用实话实说在2017/4/25 18:15:00的发言:
只有表B的用料都有数据(对应产品)才能在表A勾选
Select Case e.DataCol.name Case "产品型号","产品规格" Dim fdr As DataRow = DataTables("表b").find("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\'") If fdr IsNot Nothing Then e.DataRow("标识") = True Else e.DataRow("标识") = False End If End Select
表B_DataColChanged
If e.DataCol.name = "产品型号" Then DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.oldvalue & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\' and 用料 > 0") DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\' and 用料 > 0") End If If e.DataCol.name = "产品规格" Then DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.OldValue & "\'") DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\'") End If If e.DataCol.name = "用料" Then DataTables("表a").DataCols("产品型号").RaiseDataColChanged("产品型号=\'" & e.DataRow("产品型号") & "\' and 产品规格=\'" & e.DataRow("产品规格") & "\'") End If |