Foxtable(狐表)用户栏目专家坐堂 → 关于重置列


  共有1535人关注过本帖树形打印复制链接

主题:关于重置列

美女呀,离线,留言给我吧!
wymoonwalker
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2120 威望:0 精华:0 注册:2014/2/10 10:59:00
关于重置列  发帖心情 Post By:2023/7/23 18:03:00 [只看该作者]

 请教老师个问题。
我做了一张汇总表A,其中多列需要引用其他7个表的数据。不考虑建立关联表,于是通过代码跨表引用数据自动输入。
因为数据提供表的数量较多,且每张表都有5000行左右,项目打开全部加载压力较大。于是又学习了后台处理,初始不加载这7张表,代码从find改为SQLfind。
可是这7张表的数据每天更新,自从改成SQLfind后,重置列的时间不知道为什么特别长,系统都有点卡顿了。
请问老师,这种情况我应该怎么处理更高效一些?


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/24 9:21:00 [只看该作者]

在写完代码后可以重置一次列。之后不应该再做任何重置列操作。

把所有表的代码都发上来看看

 回到顶部
美女呀,离线,留言给我吧!
wymoonwalker
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2120 威望:0 精华:0 注册:2014/2/10 10:59:00
  发帖心情 Post By:2023/7/24 10:26:00 [只看该作者]

If e.DataCol.Name = "合同编号" Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("技术勘察文件登记表").SQLFind("工程编号 = '" & e.DataRow("合同编号") & "'")
    If dr IsNot Nothing  Then'如果找到, 则设置各列内容
        e.DataRow("报告审批") = dr("审批")
        e.DataRow("报告LOG") = dr("Log")
    End If
End If
If e.DataCol.Name = "合同编号" Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("技术地基检测物探登记表").SQLFind("工程编号 = '" & e.DataRow("合同编号") & "'")
    If dr IsNot Nothing Then'如果找到, 则设置各列内容
        e.DataRow("报告审批") = dr("审批")
        e.DataRow("报告LOG") = dr("Log")
    End If
End If
If e.DataCol.Name = "合同编号" Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("技术监测测量登记表").SQLFind("工程编号 = '" & e.DataRow("合同编号") & "'")
    If dr IsNot Nothing Then'如果找到, 则设置各列内容
        e.DataRow("报告审批") = dr("审批")
        e.DataRow("报告LOG") = dr("Log")
    End If
End If
If e.DataCol.Name = "合同编号" Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("技术地质勘查登记表").SQLFind("工程编号 = '" & e.DataRow("合同编号") & "'")
    If dr IsNot Nothing Then'如果找到, 则设置各列内容
        e.DataRow("报告审批") = dr("审批")
        e.DataRow("报告LOG") = dr("Log")
    End If
End If
If e.DataCol.Name = "合同编号" Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("技术设计文件登记表").SQLFind("工程编号 = '" & e.DataRow("合同编号") & "'")
    If dr IsNot Nothing Then'如果找到, 则设置各列内容
        e.DataRow("报告审批") = dr("审批")
        e.DataRow("报告LOG") = dr("Log")
    End If
End If
If e.DataCol.Name = "合同编号" Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("技术施工组织设计登记表").SQLFind("工程编号 = '" & e.DataRow("合同编号") & "'")
    If dr IsNot Nothing Then'如果找到, 则设置各列内容
        e.DataRow("报告审批") = dr("审批")
        e.DataRow("报告LOG") = dr("Log")
    End If
End If
If e.DataCol.Name = "合同编号" Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("技术水环灾文件登记表").SQLFind("工程编号 = '" & e.DataRow("合同编号") & "'")
    If dr IsNot Nothing Then'如果找到, 则设置各列内容
        e.DataRow("报告审批") = dr("审批")
        e.DataRow("报告LOG") = dr("Log")
    End If
End If
If e.DataCol.Name = "合同编号" Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("合同台帐2019").SQLFind("合同编号 = '" & e.DataRow("合同编号") & "'")
    If dr IsNot Nothing Then'如果找到, 则设置各列内容
        e.DataRow("施工状态") = dr("施工状态")
        e.DataRow("合同额") = dr("合同额")
        e.DataRow("签订合同") = dr("审批")
        e.DataRow("合同LOG") = dr("Log")
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
wymoonwalker
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2120 威望:0 精华:0 注册:2014/2/10 10:59:00
  发帖心情 Post By:2023/7/24 10:30:00 [只看该作者]

写完代码后重置列是有效的,但是各种登记表是每天更新的,如果不每天重置的话,这个汇总表数据怎么同步过来呢?现在的设置是不加载这些登记表,在汇总表上用重置的方法更新,缺点是重置耗时太长了。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/24 10:32:00 [只看该作者]

这些代码都是哪个表的?

 回到顶部
美女呀,离线,留言给我吧!
wymoonwalker
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2120 威望:0 精华:0 注册:2014/2/10 10:59:00
  发帖心情 Post By:2023/7/24 16:18:00 [只看该作者]

 是在汇总表A里的,表属性datacolchanged


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/24 16:28:00 [只看该作者]

在其它表里写代码同步更新汇总表的数据,就不需要重置列了:http://www.foxtable.com/webhelp/topics/1453.htm

如果汇总表只是简单的汇总,不需要手工修改,建议改为查询表,直接从其它表取数据:http://www.foxtable.com/webhelp/topics/2322.htm,这种不需要事件代码了

 回到顶部
美女呀,离线,留言给我吧!
wymoonwalker
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:224 积分:2120 威望:0 精华:0 注册:2014/2/10 10:59:00
  发帖心情 Post By:2023/7/25 10:44:00 [只看该作者]

 谢谢老师!我试试自动更新。汇总表有些列还是需要手工录入的,只能跨表引用了。
查询表也很好用,但不能编辑,如果有在生成查询表的基础上还可以增加列编辑列的操作就更方便了。

 回到顶部