Foxtable(狐表)用户栏目专家坐堂 → 请教实现方案


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

主题:请教实现方案

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/5/4 23:06:00 [只看该作者]

接下来的问题是对提取的数据进行处理.

首先先删除无效数据,无效数据判断为,按编号进行数据记录统计,凡统计数不是3的倍数的,最后一条或两条数据是无效的

如果要精确处理,编号统计数量不是3的倍数如果余1就删除最后一条,如果余2就删除最后两条记录, 粗放点处理是凡不为3的倍数的数据全部删除,这样少数有效数据为被删除,但不影响统计结果,在允许误差范围之类.

 

初步思想是 先统计写入每编号的记录数,再根据记录数进行删除,

  另可以直接进行删除不?


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


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

 回复21楼,是在合并数据的时候不想合并某个些数据?

 

 方法一:合并以后,马上处理一下;

 

 方法二:未合并之前,剔除对应数据。

 

 自己做一下,做不好的话,请上传一个例子说明情况。


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/5/7 16:06:00 [只看该作者]

谢谢

对"试验临时数据"表里的所有记录进行遍历处理,按"来源"字段内容进行序号写入,如何编程:

 

1    M197

2    M197

3    M197

4    M197

 

1    M198

2    M198

3    M198

4    M198

 


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


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

 回复23楼,你的意思是给表添加一个 序号列,自动填入序号?

 

 方法一:http://www.foxtable.com/help/topics/2403.htm

 

 方法二:代码类似

 

For Each ly As String In DataTables("试验临时数据").GetValues("来源")
    Dim i As Integer = 1
    For Each dr As DataRow In DataTables("试验临时数据").Select("来源 = '" & ly & "'", "_Sortkey")
        dr("序号") = i
        i += 1
    Next
Next


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/5/8 8:09:00 [只看该作者]

_Identify

 

显示 _Sortkey 列不存在, 将其 改成存在的列 _Identify 效果实现

For Each ly As String In DataTables("试验临时数据").GetValues("来源")
Dim i As Integer = 1
For Each dr As DataRow In DataTables("试验临时数据").Select("来源 = '" & ly & "'", "_Identify")
dr("序号") = i
i += 1
Next
Next


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/5/8 8:26:00 [只看该作者]

'对最大值进行判断
For Each ly2 As String In DataTables("试验临时数据").GetValues("来源")
    Dim i2 , i3 As Integer
    i2 = e.DataTable.Compute("Max(数据序)","来源 = '" & ly2 &'"  )
    e.DataRow("有效序") = i2 '测试取数正确与否

    i3 = i2 mod 3 '判断最后三行是否为一个有效数据,(余数为0表示数据有效)

   if i3=1 then

    .删除 来源为 ly2 的第 i2 行  代码不会写

   end if

 

   if i3=2 then

     .删除 来源为 ly2 的第 i2及i2-1 行  代码不会写

   end if
Next

想取每数据源的最大值,这代码怎么不正确了,提示 Data Table 非 Formeventargs 的有效成员

[此贴子已经被作者于2014-5-8 8:33:34编辑过]

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/5/8 8:52:00 [只看该作者]

本示例数据中,M197要删除最后的两条数据,M198要删除最后的一条数据

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:试验数据管理系统408.rar


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


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

 不清楚你要做什么代码大致这样做。

 

For Each ly As String In DataTables("试验临时数据").GetValues("来源")
    Dim d1, d2, d3 As DataRow
    d1 = DataTables("试验临时数据").find("来源 = '" & ly & "'", "数据序 desc", 0)
    If d1("有效序") Mod 3 <> 0 Then
        d2 = DataTables("试验临时数据").find("来源 = '" & ly & "'", "数据序 desc", 1)
        If d2("有效序") Mod 3 <> 0 Then
            d2.Delete
        End If
        d1.Delete
    End If
Next


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/5/8 22:49:00 [只看该作者]

请教:

 

Dim aa As Integer
aa = 5.1
Output.Show (Math.Ceiling(aa))

 

这个输出为5

Output.Show (Math.Ceiling(5.1))

输出则为6

 

 

我需要的是输出为6的效果 ,即向上取整

 

直接使用常量,与引用变量输出结果为什么不一样了

 

 

 

Dim aa As Integer
aa = 5.6
aa = round2(aa+0.5,0)

Output.Show (Math.Ceiling(aa))

 

Dim aa As Integer
aa = 5.9
aa = round2(aa+0.5,0)

Output.Show (Math.Ceiling(aa))


 

这个都输出为 7

 

晕了..........

 

 

[此贴子已经被作者于2014-5-8 22:54:40编辑过]

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


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

 呃.....你把aa定义成Integer了,要用double

 

Dim aa As Double
aa = 5.1
Output.Show (Math.Ceiling(aa))


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