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


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

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

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


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

 呃,你不是吧

 

For Each n As String In DataTables("产品").GetValues("GPS产品名称", "GPS产品名称 is not null")
    Dim dr1 As DataRow = DataTables("产品").Find("GPS产品名称 = '" & n & "'", "日期")
    Dim dr2 As DataRow = DataTables("产品").Find("GPS产品名称 = '" & n & "'", "日期 desc")
    Dim fdr As DataRow = DataTables("表C").Find("第一列 = '" & n & "'")
    If fdr Is Nothing Then
        fdr = DataTables("表C").AddNew
        fdr("第一列") = n
    End If
    Dim x1 As Double = dr1("经度")
    Dim y1 As Double = dr1("纬度")
    Dim x2 As Double = dr2("经度")
    Dim y2 As Double = dr2("纬度")
    
    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
    fdr("第列") = result
Next

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


加好友 发短信
等级:婴狐 帖子:74 积分:561 威望:0 精华:0 注册:2014/2/14 13:54:00
  发帖心情 Post By:2014/6/24 10:29: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 & "'", "时间")
    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
Next

这段代码的最后的距离累加值 我想赋值到表C中的第三列

是不是还要加一个赋值?在哪里加呢?


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


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

嘿嘿,不好意思啊,甜老师。我这有点蒙 我参照这个加进去,总运行不了!!麻烦甜老师了哈


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/24 10:33: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 & "'", "时间")
    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
    Dim fdr As DataRow = DataTables("表C").Find("第一列 = '" & str & "'")
    If fdr Is Nothing Then
        fdr = DataTables("表C").AddNew
        fdr("第一列") = str
    End If
    fdr("第三列") = drs(drs.Count-1)("距离累加值")
Next


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


加好友 发短信
等级:婴狐 帖子:74 积分:561 威望:0 精华:0 注册:2014/2/14 13:54:00
  发帖心情 Post By:2014/6/24 10:38: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 & "'", "时间")
    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
Next




甜老师,不是那段代码改到第三列,而是这段代码,我想把最后的距离累加值赋值到表C中的第三列。应该怎么加啊?


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


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

 看14楼。

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


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

index was out of range.must be non-negative and less than the size of the collection
parameter name: index
  怎么了 甜老师

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


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

测试,没有报错,请认真测试。

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


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

怎么解决啊?甜老师

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


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

以下是引用gaixuebo在2014-6-24 10:55:00的发言:
怎么解决啊?甜老师

 

测试没有报错啊,你看看是不是你表C什么事件的代码影响了。


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