Foxtable(狐表)用户栏目专家坐堂 → 加载很慢


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

主题:加载很慢

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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/11/16 15:15:00 [只看该作者]

For Each ary() As String In DataTables("配载订单").GetValues( "车牌|车型")
    Dim filter As String = "车牌 = '" & ary(0) & "' and 车型 = '" & ary(1) & "'"
    Dim fdr As DataRow = DataTables("配载订单").Find(filter)
    DataTables("配载订单").DataCols("车牌").RaiseDataColChanged(fdr)
Next

 

调度配载 重置车牌 是这样加在按钮事件上吗,我加了 点击报错 {未将对象设置运用到对象实例上}


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 15:20:00 [只看该作者]

车牌、车型的重置列,没有优化空间,代码最优了。

 

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("车辆属性")
    End If
End If


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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/11/16 15:50:00 [只看该作者]

For Each ary() As String In DataTables("应付款项").GetValues( "司机|车牌|出车日期")
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)

按钮事件报错 逻辑是先得重置客户列 从“客户地点”得到对应的地点 才能按照项目 城市 地点 得出车型的运费 之后才比较是否是同一个司机 同一部车 同一天 得到不相同地址的点费 然后重置车牌得到装量

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 15:57:00 [只看该作者]

代码?报什么错?

 

DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列

For Each ary() As String In DataTables("应付款项").GetValues( "司机|车牌|出车日期")
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
Next


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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/11/16 16:24:00 [只看该作者]

表达式包含无效日期常量“##” 6377条数据花了5分钟  这是几天的数据 这要是一个月 不得玩完?我再说一说逻辑 您看怎样使数据处理更为有效

目的:

自动运算出运费和点费

用应付款项的项目匹配价目表的项目 城市匹配城市 地点匹配地点 最后 e.DataRow("运费") = jdr("车型_" & e.DataRow("车型"))

得出运费后 如果是同一个司机 同一天 同一部车 把运费进行对比 取得最高运费 其他返回空值 接下来把最高运费的送货地点作为基础与其他返回空值的订单的送货地点对比 相同地点的点费赋予空值 不同的赋予: 

Select Case drs(i)("车型")
                Case "9M6"
                    drs(i)("点费") = 80
                Case "6M2","6M8","7M6"
                    drs(i)("点费") = 60
                Case "4M5","4M2"
                    drs(i)("点费") = 30
最后重置车牌得到装载量

过程是否能简化

[此贴子已经被作者于2015/11/16 16:27:49编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 16:28:00 [只看该作者]

 你需求这么奇葩,数据量又那么多,耗时是肯定的啊。试试代码

 

DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列

 

For Each ary() As String In DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null")
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
Next


 

[此贴子已经被作者于2015/11/16 16:45:31编辑过]

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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/11/16 16:45:00 [只看该作者]

我也头疼 公司就这样算运费跟点费的 想自动化 如果是按公里数加起运费也不需要这么复杂 上面的代码为啥子要重置两次客户列 我想这样行不行 重置客户列与车牌列不触发运费计算与点费计算 分开用按钮实现 如果不行 这个又怎样加进度条 不然以为死机了

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 16:47:00 [只看该作者]

哦,试试代码这样写

 

Systemready = False
DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列
Systemready = true

 

For Each ary() As String In DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null")
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
Next


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


加好友 发短信
等级:一尾狐 帖子:412 积分:2665 威望:0 精华:0 注册:2015/10/2 23:48:00
  发帖心情 Post By:2015/11/16 17:04:00 [只看该作者]

然并卵 我还是加进度条吧 是不是加到

DataColChanged

里去

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 17:13:00 [只看该作者]

Systemready = False
DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列
Systemready = True

 

'加在这里
For Each ary() As String In DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null")
    '加在这里
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
Next


 回到顶部
总数 50 上一页 1 2 3 4 5 下一页