以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关联表的子表,同步表时特别慢 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=165309) |
||||
-- 作者:hbkongxin -- 发布时间:2021/5/13 13:22:00 -- [求助]关联表的子表,同步表时特别慢 主表就是下单的,子表就是生产的记录,刷新子表时特别慢
|
||||
-- 作者:hbkongxin -- 发布时间:2021/5/13 13:32:00 -- 还有新版本的交叉统计,不能直接显示小计了 |
||||
-- 作者:有点蓝 -- 发布时间:2021/5/13 13:59:00 -- 开发者密码给一下 |
||||
-- 作者:hbkongxin -- 发布时间:2021/5/13 14:00:00 -- 004226 |
||||
-- 作者:有点蓝 -- 发布时间:2021/5/13 14:30:00 -- 如果是指【打印明细】表加载慢 ,是因为【华晨生产计划】的表达式计算造成的,【打印明细】表加载后会导致【华晨生产计划】7000多行数据的表达式列重新计算。加载的数据越多肯定就越慢。建议改为数据列,然后在表事件里实时计算:http://www.foxtable.com/webhelp/topics/1472.htm |
||||
-- 作者:hbkongxin -- 发布时间:2021/5/13 15:11:00 -- 请老师帮忙,我不知道该怎么设计代码,要关联到 登记日期,客户,花号,色位,面料,下单米数,打印机台 ,都相同才能统计 |
||||
-- 作者:有点蓝 -- 发布时间:2021/5/13 15:24:00 -- 有多少个列就加多少个添加咯 首先将统计表的DataColChanged事件代码设置为: If e.DataCol.Name = "产品" orelse e.DataCol.Name = "列2" orelse e.DataCol.Name = "列3" Then Dim Filter As String = "[产品] = \'" & e.DataRow("产品") & "\' and [列2] = \'" & e.DataRow("列2") & "\' and [列3] = \'" & e.DataRow("列3") & "\'" e.DataRow("数量") = DataTables("订单").Compute("Sum(数量)", Filter) 同样在统计表设置好上述代码后,请重置一次该表的产品列。 订单表的金额列是一个表达式列,其表达式为:[数量] * [单价] * (1 - [折扣]) Select Case e.DataCol.Name If pr IsNot Nothing Then |
||||
-- 作者:hbkongxin -- 发布时间:2021/5/13 15:30:00 -- If e.DataCol.Name = "总米数" Then Dim pr As DataRow pr = DataTables("华晨生产计划").Find("(登记日期 = \'" & e.DataRow("登记日期") & "\',客户 = \'" & e.DataRow("客户") & "\' ,花号 = \'" & e.DataRow("花号") & "\')") If pr IsNot Nothing Then pr("总米数")= pr("总米数") + e.NewValue - e.OldValue End If End If |
||||
-- 作者:有点蓝 -- 发布时间:2021/5/13 15:44:00 -- 去掉条件里的逗号。 另外建议使用帮助里的【另一种自动更新方式】,不要使用第一种+ e.NewValue - e.OldValue的方法
|
||||
-- 作者:hbkongxin -- 发布时间:2021/5/13 15:52:00 -- Select Case e.DataCol.name Case "登记日期","客户","花号","色位","面料","米数","打印机台" Dim Filter As String = "[登记日期] = \'" & e.DataRow("登记日期") & "\' and [客户] = \'" & e.DataRow("客户") & "\' and [花号] = \'" & e.DataRow("花号") & "\' and [色位] = \'" & e.DataRow("色位") & "\' and [面料] = \'" & e.DataRow("面料") & "\' and [下单米数] = \'" & e.DataRow("米数") & "\' and [打印机台] = \'" & e.DataRow("打印机台") & "\'" e.DataRow("打印总数") = DataTables("打印明细").Compute("Sum(打印米数)", Filter) e.DataRow("墨水总量") = DataTables("打印明细").Compute("Sum(墨水用量)", Filter) End Select
|