以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 引用问题(急) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=13577) |
||||
-- 作者:7032175 -- 发布时间:2011/10/18 7:45:00 -- 引用问题(急) 我有二个表其中表A里面是计划号不相同,材质也不相同,表B是将表A里面的相同的计划号与相同的材质进行了合并,我想得到的结果就是当表A里面的相同的计划号与相同的材质全部在"主"里面打成对号后就会在表B里面合并的相同计划号与材质完成情况上自动打成对号 |
||||
-- 作者:7032175 -- 发布时间:2011/10/18 7:54:00 --
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/10/18 7:56:00 -- 其实很简单,找出算出打勾的行数是否等于总行数而已,设置表A的DataColChanged事件: if e.DataCol.Name = "主" Then if e.NewValue = True Then Dim cnt1 as Integer = Datatables("表A").Compute("Count([_Identify])", "计划号 = \'" & e.DataRow("计划号") & "\'") \'总行数 Dim cnt2 as Integer = Datatables("表A").Compute("Count([_Identify])", "计划号 = \'" & e.DataRow("计划号") & "\' And 主 = True") \'打勾的行数 dim dr As Datarow = Datatables("表B").Find(, "计划号 = \'" & e.DataRow("计划号") & "\'")) if dr isnot nothing dr("完成情况") = (cnt1= cnt2) end if end if end if
大概如此,自行调整。 |
||||
-- 作者:7032175 -- 发布时间:2011/10/18 8:08:00 -- dim dr As Datarow = Datatables("表B").Find(, "计划号 = \'" & e.DataRow("计划号") & "\'")) 这行代码有错 显示 ![]() ![]() |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/10/18 8:28:00 -- 手误,后面多了个)号。
|
||||
-- 作者:7032175 -- 发布时间:2011/10/18 8:46:00 -- 狐狸爸爸 我还是没有搞明白 你给的公式我用了之后不能进行计算 还是请狐狸爸爸帮我写一下文 谢谢狐狸爸爸了 我是学识不行 这是主要原因 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/10/18 9:02:00 --
注意表达式列是不会触发DataColChanged事件的。 |
||||
-- 作者:7032175 -- 发布时间:2011/10/18 9:15:00 -- 伟大的狐狸爸爸 我想在Dim dr As DataRow = DataTables("表B").Find( "计划号 = \'" & e.DataRow("计划号") & "\'") 这段代码后面在加上一个材质 如何加进去 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/10/18 9:20:00 -- 参考:
http://www.foxtable.com/help/topics/1284.htm
|
||||
-- 作者:7032175 -- 发布时间:2011/10/18 9:31:00 -- 谢谢狐狸爸爸的帮助 我以初步完成我想要的结果 但是当表A里面的相同的计划号但是不相同的材质 在表B里面却不无正常的打对号 当表A里面相同的计划现里面的二个材质 我只有一个材质全部打上对号了 但是在表B里面却无法在对应的材质上打对号 就算是在表A里面把相同的材质与相同的计划号全部打上对号 表B里面的只能有一个材质上打对号 这让我很不理解 不知道问题出现在什么地方 |