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


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

主题:关于重置列

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


加好友 发短信
等级:童狐 帖子:228 积分:2163 威望:0 精华:0 注册:2014/2/10 10:59:00
关于重置列  发帖心情 Post By:2023/7/23 18:03:00 [显示全部帖子]

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


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


加好友 发短信
等级:童狐 帖子:228 积分:2163 威望: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:228 积分:2163 威望:0 精华:0 注册:2014/2/10 10:59:00
  发帖心情 Post By:2023/7/24 10:30:00 [显示全部帖子]

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


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


加好友 发短信
等级:童狐 帖子:228 积分:2163 威望:0 精华:0 注册:2014/2/10 10:59:00
  发帖心情 Post By:2023/7/24 16:18:00 [显示全部帖子]

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


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


加好友 发短信
等级:童狐 帖子:228 积分:2163 威望:0 精华:0 注册:2014/2/10 10:59:00
  发帖心情 Post By:2023/7/25 10:44:00 [显示全部帖子]

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

 回到顶部