Foxtable(狐表)用户栏目专家坐堂 → [求助]列内容变化后计算


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

主题:[求助]列内容变化后计算

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


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

Dim strs As List(Of String) = DataTables("产品").GetValues("名称")

For Each str As String In strs
    Dim drs As List(Of DataRow) = DataTables("产品").Select("名称 = '" & str & "'", "时间")

    if drs.count > 0 then
    Dim dr1 As DataRow = drs(0)
    dr1("距离累加值") = 0
    For i As Integer = 1 To drs.Count - 1
        Dim x1 As Double = drs(i-1)("纬度")
        Dim y1 As Double = drs(i-1)("经度")
        Dim x2 As Double = drs(i)("纬度")
        Dim y2 As Double = drs(i)("经度")
        
        Dim rad As Double = 6371
        Dim p1X As Double = X1 / 180 * Math.PI
        Dim p1Y As Double = Y2 / 180 * Math.PI
        Dim p2X As Double = X2 / 180 * Math.PI
        Dim p2Y As Double = Y2 / 180 * Math.PI
        Dim result As Double = Math.Acos(Math.Sin(p1Y) * Math.Sin(p2Y) + Math.Cos(p1Y) * Math.Cos(p2Y) * Math.Cos(p2X - p1X)) * rad
        drs(i)("距离累加值") = drs(i-1)("距离累加值") + result

Next

end if


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


加好友 发短信
等级:婴狐 帖子:74 积分:561 威望:0 精华:0 注册:2014/2/14 13:54:00
  发帖心情 Post By:2014/6/24 15:21:00 [只看该作者]

甜老师:
我试验了一下,代码没问题,是电脑的问题。1000多行以后才提示,剩下1000来条就可以运算了!!悲催的电脑,我去!!!

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


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

 应该跟电脑无关吧?再差的电脑,运行上面的代码也是瞬间完成的,没有你这种情况。

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


加好友 发短信
等级:婴狐 帖子:74 积分:561 威望:0 精华:0 注册:2014/2/14 13:54:00
  发帖心情 Post By:2014/6/24 15:26:00 [只看该作者]

超过1000多条就提示那个数据框,不超过就能正常运算。

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


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

以下是引用gaixuebo在2014-6-24 15:26:00的发言:
超过1000多条就提示那个数据框,不超过就能正常运算。

 

感觉不可能,没遇见过。


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


加好友 发短信
等级:婴狐 帖子:74 积分:561 威望:0 精华:0 注册:2014/2/14 13:54:00
  发帖心情 Post By:2014/6/24 15:49:00 [只看该作者]

按序排列就能运算几万条了。刚开始用的表格没按产品名称排序,所以就容易死机,谢谢甜老师和BIN老师了
谁有空在代码里帮我加一个先按产品名称排序的代码吧!

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


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

回复36楼

 

Tables("表A").Sort = "产品名称"


 回到顶部
总数 37 上一页 1 2 3 4