Foxtable(狐表)用户栏目专家坐堂 → MUHUA,为什么打开这个表要3分钟甚至会死机?


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

主题:MUHUA,为什么打开这个表要3分钟甚至会死机?

帅哥哟,离线,有人找我吗?
zerov
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
MUHUA,为什么打开这个表要3分钟甚至会死机?  发帖心情 Post By:2013/5/2 11:50:00 [只看该作者]

三个表,《合同档案》含所有合同信息500条数据,《进度应收明细》有所有回款数据,1000条数据。
     进度应收 500条数据,在项目事件MainTable中通过Filler填充,将所有合同档案的数据填充到《 进度应收 》中的合同编号,然后在《 进度应收 》中的(DataColChanged)通过代码把合同档案的合同金额、付款方式、客户名称等填过来,并根据“合同编号”,统计《 进度应收明细》的回款数据,为什么会死机呢?

(《进度应收》与《进度应收明细》、《回款明细》关联,并通过表达式计算应收金额、回款金额。

1、填充代码:

If MainTable.Name = "进度应收" Then
    Dim f As New Filler
    f.SourceTable = DataTables("合同档案")
    f.SourceCols = "合同编号"
    f.DataTable = DataTables("进度应收")
    f.DataCols = "合同编号"
    f.ExcludenullValue= True
    f.ExcludeExistValue=True
    f.Append=False
   
    f.Fill()
End If


2、根据合同编号填充项目名称、客户名称、合同金额等代码

If e.DataCol.Name = "合同编号" Then '发生变化的是合同编号吗?在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("合同档案").Find("合同编号 = " & "'" & e.DataRow("合同编号") & "'" )
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("项目名称")= dr("项目名称")
        e.DataRow("客户名称")= dr("客户名称")
        e.DataRow("分公司")= dr("分公司")
        e.DataRow("年份")= dr("年份")
        e.DataRow("签约人")= dr("签约人")
        End If
End If

3、根据《进度应收明细》重置相关表,计算应收金额代码:



If DataTables("进度应收明细").HasChanges Then
    DataTables("项目总表").DataCols("合同编号").RaiseDataColChanged()
    DataTables("进度应收").DataCols("合同编号").RaiseDataColChanged()
    e.DataRow("日期")=Date.Today()
    e.DataRow("录入")=User.name()
End If
[此贴子已经被作者于2013-5-2 11:56:34编辑过]

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/5/2 12:01:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
  发帖心情 Post By:2013/5/2 12:02:00 [只看该作者]

我在怀疑,是不是因为关联计算,造成这么慢呢?

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
  发帖心情 Post By:2013/5/2 12:29:00 [只看该作者]

这次切换到《进度应收》表用了5分钟,竟然连菜单栏也灰了,图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
  发帖心情 Post By:2013/5/2 17:11:00 [只看该作者]

有高手不?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/2 17:12:00 [只看该作者]

把例子发上来吧.不然很难排查原因.

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/5/2 17:15:00 [只看该作者]

如果你在某个表的Datacolchanged事件中写上了下面的代码,那么慢才是正常的:

 

If DataTables("进度应收明细").HasChanges Then
    DataTables("项目总表").DataCols("合同编号").RaiseDataColChanged()
    DataTables("进度应收").DataCols("合同编号").RaiseDataColChanged()
    e.DataRow("日期")=Date.Today()
    e.DataRow("录入")=User.name()
End If

 

至于变灰,可能是激活码有误,可以联系客服QQ: 80014337,核对一下激活码。


 回到顶部