以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 选定行后通过关联列自动加载 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127591) |
-- 作者:aza520 -- 发布时间:2018/11/17 15:46:00 -- 选定行后通过关联列自动加载 有表A和表B,通过“第一列”和“第二列"进行关联,表A是父表,请问老师怎么实现当选择表A某一行是,表B自动加载两列关联的数据行,不关联的行则不加载 |
-- 作者:有点蓝 -- 发布时间:2018/11/17 15:55:00 -- 表A,CurrentChanged事件 Dim r As Row = Tables("表A").Current If r Is Nothing Then \'如果Current为Nothing Return \'则返回 End If DataTables("表B").LoadFilter = "第一列=\'" & r("第一列") & "\' And 第二列=\'" & r("第二列") & "\'" DataTables("表B").Load |
-- 作者:aza520 -- 发布时间:2018/11/19 9:44:00 -- 老师,我是通过选定窗口子表行来加载零号清单相应行,但是与我重置列的代码有冲突,每次重置列的时候会出现错误,是什么问题 Dim r As Row = Tables("计量统计.计量汇总").Current If r Is Nothing Then \'如果Current为Nothing Return \'则返回 End If DataTables("零号清单").LoadFilter = "项目名称 =\'" & r("项目名称") & "\' And 施工合同段 =\'" & r("施工合同段") & "\'" DataTables("零号清单").Load 重置列代码: DataTables("计量统计").DataCols("第100章2").RaiseDataColChanged() \'重置第100章2等列 |
-- 作者:有点甜 -- 发布时间:2018/11/19 9:46:00 -- 重置列出错,说明你datacolchanged事件有问题。请加入msgbox调试代码
http://www.foxtable.com/webhelp/scr/1485.htm
|
-- 作者:aza520 -- 发布时间:2018/11/19 9:59:00 -- 我是写在CurrentChanged事件下,如果改成以下则没问题,但是达不到我要的结果 Dim r As Row = Tables("计量汇总").Current If r Is Nothing Then \'如果Current为Nothing Return \'则返回 End If DataTables("零号清单").LoadFilter = "项目名称 =\'" & r("项目名称") & "\' And 施工合同段 =\'" & r("施工合同段") & "\'" DataTables("零号清单").Load |
-- 作者:有点甜 -- 发布时间:2018/11/19 10:01:00 -- 1、报什么错?贴出来说明;
2、如果是重置列的问题,就是你datcolchanged有问题导致的。
3、不会做实例发上来测试。 |
-- 作者:aza520 -- 发布时间:2018/11/19 17:22:00 -- “计量统计”表和“计量汇总”表是关联表,计量统计是父表,并在窗口设了一个计算按钮,统计生成计量汇总表 分别在计量统计表的DataColChanged事件和计量汇总表的CurrentChanged事件设如下代码,计算按钮可以正常使用。 DataColChanged事件代码: Dim fdr = DataTables("计量汇总").find("项目名称 = \'" & e.DataRow("项目名称") & "\' And 施工合同段 = \'" & e.DataRow("施工合同段") & "\'", "计量期次 desc") If fdr Is Nothing Then e.DataRow("第100章2") = 0 Else e.DataRow("第100章2") = DataTables("计量汇总").compute("sum(第100章)", "项目名称 = \'" & e.DataRow("项目名称") & "\' And 施工合同段 = \'" & e.DataRow("施工合同段") & "\'") - fdr("第100章") End If CurrentChanged事件代码: Dim r As Row = Tables("计量汇总").Current If r Is Nothing Then \'如果Current为Nothing Return \'则返回 End If DataTables("零号清单").LoadFilter = "项目名称 =\'" & r("项目名称") & "\' And 施工合同段 =\'" & r("施工合同段") & "\'" DataTables("零号清单").Load 计算按钮代码: Dim b As New SQLGroupTableBuilder("统计表1","中间计量表") b.C b.Groups.AddDef("项目名称") \'根据产品分组 b.Groups.AddDef("施工合同段") \'根据产品分组 b.Groups.AddDef("计量期次") \'根据产品分组 b.Groups.AddDef("章节") \'根据产品分组 b.Totals.AddExp("第100章","case when 章节 = \'100\' then Round(申报数量 * 单价,0) else 0 end") b.Totals.AddExp("第200章","case when 章节 = \'200\' then Round(申报数量 * 单价,0) else 0 end") b.Totals.AddExp("第300章","case when 章节 = \'300\' then Round(申报数量 * 单价,0) else 0 end") b.Totals.AddExp("第400章","case when 章节 = \'400\' then Round(申报数量 * 单价,0) else 0 end") b.Totals.AddExp("第500章","case when 章节 = \'500\' then Round(申报数量 * 单价,0) else 0 end") b.Totals.AddExp("第600章","case when 章节 = \'600\' then Round(申报数量 * 单价,0) else 0 end") b.Totals.AddExp("第700章","case when 章节 = \'700\' then Round(申报数量 * 单价,0) else 0 end") b.Totals.AddExp("第800章","case when 章节 = \'800\' then Round(申报数量 * 单价,0) else 0 end") b.Totals.AddExp("第900章","case when 章节 = \'900\' then Round(申报数量 * 单价,0) else 0 end") b.Build \'生成统计表 \'MainTable = Tables("统计表1") \'打开生成的统计表 DataTables("计量汇总").DataRows.Clear Dim Cols1() As String = {"项目名称","施工合同段","计量期次","第100章","第200章","第300章","第400章","第500章","第600章","第700章","第800章","第900章"}\'指定数据来源列 Dim Cols2() As String = {"项目名称","施工合同段","计量期次","第100章","第200章","第300章","第400章","第500章","第600章","第700章","第800章","第900章"}\'指定数据接收表 For Each dr1 As DataRow In DataTables("统计表1").Select("[计量期次] > 0") Dim dr2 As DataRow = DataTables("计量汇总").Find("项目名称 = \'" & dr1("项目名称") & "\' and 施工合同段 = \'" & dr1("施工合同段") & "\' and 计量期次 = \'" & dr1("计量期次") & "\'") If dr2 Is Nothing Then dr2 = DataTables("计量汇总").AddNew() End If For i As Integer = 0 To Cols1.Length -1 dr2(Cols2(i)) = dr1(Cols1(i)) Next Next 当把CurrentChanged事件代码改成如下,点击计算按钮时则出现如图错误: CurrentChanged事件代码: Dim r As Row = Tables("计量统计.计量汇总").Current If r Is Nothing Then \'如果Current为Nothing Return \'则返回 End If DataTables("零号清单").LoadFilter = "项目名称 =\'" & r("项目名称") & "\' And 施工合同段 =\'" & r("施工合同段") & "\'" DataTables("零号清单").Load 错误提示: .NET Framework 版本:2.0.50727.8937 Foxtable 版本:2017.12.18.1 错误所在事件:计量汇总,CurrentChanged 详细错误信息: 值不能为空。 参数名: key |
-- 作者:有点甜 -- 发布时间:2018/11/19 17:34:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=127595&page=1&star=2
|