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


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

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/23 20:18:00 [显示全部帖子]

 没看懂你的问题,最好举例说明。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/23 20:19:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/23 20:26:00 [显示全部帖子]

是不是3楼的意思?如果不是,上传例子加以说明。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/23 20: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

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

 看14楼。

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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什么事件的代码影响了。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/24 11:20:00 [显示全部帖子]

以下是引用gaixuebo在2014-6-24 11:19:00的发言:
不是表C的问题把。。。我看前半段计算表A的代码就提示这个!!换定义的变量名还是怎么解决呢?

 

弄个不行的例子发上来,我用前面的项目测试是可以的。


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