Foxtable(狐表)用户栏目专家坐堂 → [求助]增加数据行非常慢 估计我代码算法问题


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

主题:[求助]增加数据行非常慢 估计我代码算法问题

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
[求助]增加数据行非常慢 估计我代码算法问题  发帖心情 Post By:2014/7/6 12:41:00 [只看该作者]

我是有个肉禽蛋下单界面 点增加出库单 按钮 会在社员基本信息.畜牧出库单增加一行 同时在社员基本信息.畜牧出库单.畜牧出库明细增加一行  但是增加的时候会卡 速度很慢!

增加数据行非常慢 估计我代码算法问题  
而且增加好之后   我在商品大类中选择商品  也要卡一段时间才行   因为我选择商品大类 后面的商品名称 编码 规格 单价 数量(默认1) 单位 折扣 小计 余额之类的都是自动关联出来的~ 然后这个余额会关联到上面表格的消费金额中 用上一次的余额减去这次的消费金额 得到 最终余额。
比如 我选猪肉 单价35 数量为1 金额则为-35  然后上面的表格消费金额就是-35 余额为上一次的余额178.38减去35 得到143.38~  我改变下面的单价、数量  有计算的话  就会卡很久!!(DataColChanged事件代码里有计算代码)这是为什么~还有点增加产品明细按钮在下面表格增加一行 也会卡很久~  
大神麻烦看看 能不能改进啊 麻
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

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

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

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
  发帖心情 Post By:2014/7/6 12:47:00 [只看该作者]

把程序上传~ 麻烦大神帮忙看下 foxtable开发版的  开发者登录密码chsheng 外部数据库链接可能需要重新设置下~
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:单机版_- 改.rar


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/6 14:25:00 [只看该作者]

 畜牧出库明细表的DataColchanged事件改一下

 

If e.DataCol.Name = "配送日期" Then
   If e.DataRow.IsNull("配送日期") = False Then
        e.DataRow("星期") = Format(e.DataRow("配送日期"), "dddd")
   End If
End If


If e.DataCol.name="数量" Then
   DataTables("畜牧出库单").DataCols("存款金额").RaiseDataColChanged("_Identify = '" & e.DataRow("出库编号") & "'")
End If
If e.DataCol.name="单价" Then
   DataTables("畜牧出库单").DataCols("存款金额").RaiseDataColChanged("_Identify = '" & e.DataRow("出库编号") & "'")
End If


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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
可以了~有点甜大哥很厉害啊 麻烦在请教个问题  发帖心情 Post By:2014/7/6 15:09:00 [只看该作者]

还是肉禽蛋下单界面~  当我7月6号 在下面表格添加了两笔订单
点旁边的 删除出库单按钮 上面表格中7月6号那行删掉了~下面表格2笔订单也没了  但是回畜牧出库明细 还是会有那两行数据 (这两行是垃圾数据 是要删除的~) 
我想到的是表间关联 畜牧出库单_明细 同步删除关联行勾选上~  但是一勾选上就会出错~这个怎么弄?用代码吗
图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/6 15:23:00 [只看该作者]

 我设置了,测试没有问题,设置以后,会报错,你退出重新打开以后,就正常了。

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
嗯嗯 我试了下 要退出才可以 我以为是设置有问题~ 麻烦还有个问题看下  发帖心情 Post By:2014/7/6 15:55:00 [只看该作者]

不好意思 还有个问题 问题是在蔬菜下单 界面
我点右下角的蔬菜余额统计按钮 希望把对应客户的今天之前(包括今天)小计累加统计 得到的值写入对应客户的蔬菜余额列中
例如 点按钮 7012客户 就是把今天之前 7012客户之前小计全部累加起来 写入社员基本信息表 蔬菜余额列中
7013客户同理  希望点一下按钮所有客户的都统计出来
我的蔬菜余额统计按钮代码 是:
Dim sum As Double
sum=Tables("社员基本信息.社员消费明细").Compute("Sum(单价)","配送日期 <=   #Date.Today# ")
Tables("社员基本信息").Current("蔬菜余额")=sum
但一点按钮就会出错~好像不行!
图片点击可在新窗口打开查看此主题相关图片如下:41.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:42.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/6 16:05:00 [只看该作者]

 代码

 

For Each dr As DataRow In DataTables("社员基本信息").DataRows
    Dim sum As Double
    sum = DataTables("社员消费明细").Compute("Sum(单价)","社员ID = '" & dr("社员信息_社员ID") & "' and 配送日期 <= #" & Date.Today & "# ")
    dr("蔬菜余额")=sum
Next


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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
  发帖心情 Post By:2014/7/6 16:16:00 [只看该作者]

可以了 谢谢有点甜大哥~
如果我想更进一步:  每天晚上11点多 也就是晚上 自动调用这段代码 来更新每个客户的蔬菜余额值 不用点按钮去手动更新~ 这个可以实现吗?
这个要写在什么事件里面??

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/6 16:18:00 [只看该作者]

 你应该写在afterOpenProject事件里,每次打开项目的时候,就计算一次。

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
这样也行~  发帖心情 Post By:2014/7/6 16:35:00 [只看该作者]

原本没改之前计算非常慢~以为计算会花费很久时间 就想晚上让它慢慢计算 一直挂在那  改了之后计算速度还是很快的!
麻烦在看下这个 我是想蔬菜下单界面 打开之后 记录位置会自动停在配送日期 离今天最近的日期位置
例如7月6号打开 停在7月6号的位置 如果没有6号 有5号 停在7月5号的位置 
我是写在蔬菜下单界面 afterload 事件里面 代码:
Tables("社员基本信息.社员消费明细").Sort="配送日期"
For Each dr As Row In Tables("社员基本信息.社员消费明细")
    If dr("配送日期") >=  Date.Today
        Tables("社员基本信息.社员消费明细").Position=dr.Index
    End If
Next

不过这段代码不行~ 不会跳转过去
图片点击可在新窗口打开查看此主题相关图片如下:51.png
图片点击可在新窗口打开查看

 回到顶部
总数 14 1 2 下一页