Foxtable(狐表)用户栏目专家坐堂 → [求助]循环计算


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

主题:[求助]循环计算

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


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

以下是引用有点甜在2014-6-17 9:59:00的发言:

 

取决于你字符的长度。你的是外部数据表吗?是不是设置了约束?

我把代码输入进去,结果导入内部数据源的时候,名称都变了,所以我就把代码 第一列都替换为GPS产品名称了,然后经纬度都替换第五列,第六列了(其余也都替换成功,变色了!,可是代码第一列后半部分换成GPS产品名称后却变灰了。显示cant find colume [GPS产品名称]


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


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

呃,不明白你的意思,红色代码如果不需要,可以删掉。请上传具体的例子说明你的问题。

 

For Each n As String In DataTables("表A").GetValues("第一列", "第一列 is not null")
    Dim dr1 As DataRow = DataTables("表A").Find("第一列 = '" & n & "'", "第二列")
    Dim dr2 As DataRow = DataTables("表A").Find("第一列 = '" & n & "'", "第二列 desc")
    Dim fdr As DataRow = DataTables("表D").Find("第一列 = '" & n & "'")
    If fdr Is Nothing Then
        fdr = DataTables("表D").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
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

以下是引用有点甜在2014-6-17 15:27:00的发言:

呃,不明白你的意思,红色代码如果不需要,可以删掉。请上传具体的例子说明你的问题。

 

For Each n As String In DataTables("表A").GetValues("第一列", "第一列 is not null")
    Dim dr1 As DataRow = DataTables("表A").Find("第一列 = '" & n & "'", "第二列")
    Dim dr2 As DataRow = DataTables("表A").Find("第一列 = '" & n & "'", "第二列 desc")
    Dim fdr As DataRow = DataTables("表D").Find("第一列 = '" & n & "'")
    If fdr Is Nothing Then
        fdr = DataTables("表D").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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table

代码是这样的

For Each n As String In DataTables("产品").GetValues("产品", "产品 is not null")
    Dim dr1 As DataRow = DataTables("产品").Find("产品 = '" & n & "'", "日期")
    Dim dr2 As DataRow = DataTables("产品").Find("产品 = '" & 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

麻烦帮忙看下 为什么执行不了呢?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/17 15:43: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
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

以下是引用有点甜在2014-6-17 15:43: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

搞定!!感谢!!

以后这个第一列和第二列必须都得是固定的格式了是把!就是第一列必须是GPS产品名称,第二列必须是开始时间是吧??


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


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

 没看到你什么意思。第一列和第二列,你可以换成别的列名,修改列名的时候,代码对应着改


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


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

谢谢有点甜老师。顶一个。正在看你的视频!讲的真好对新手很有用!
我现在针对的数据都是他们报给我的EXCEL表格,但是是CSV格式的,有的统计数据特别多,1000多万条,固定的格式,我想问有点甜老师,我就针对你的视频从头学习就可以吗?CSV格式可以导入里面吗?或者转成别的格式呢?

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


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

 csv格式不能导入,只能到excel、access、.txt、foxpro等的格式。

 

 1000万行,建议弄成Acceess数据库,或者SqlServer。

 

 http://www.foxtable.com/help/topics/0684.htm

 


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


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

有点甜老师,我把帮主文件都看了一遍,所以我想学习针对ACESS导入和针对数据计算和操作等代码信息!包括做一个界面等,我应该怎么入手呢?学习些什么视频呢

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


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

以下是引用gaixuebo在2014-6-18 20:48:00的发言:
有点甜老师,我把帮主文件都看了一遍,所以我想学习针对ACESS导入和针对数据计算和操作等代码信息!包括做一个界面等,我应该怎么入手呢?学习些什么视频呢

 

可以看这个视频入门。剩下的,就看自己了。

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=24512

 


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