Foxtable(狐表)用户栏目专家坐堂 → 控制重复列


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

主题:控制重复列

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/9 23:38:00 [显示全部帖子]


With CurrentTable
    Dim r As Row = .current
    Dim n As Integer
    n = .FindRow("[第一列] = '" & r("第一列") & "' and [第二列] = '" & r("第二列") & _
    "' And [第三列] = '" & r("第三列") & "' ", .Position + 2, True ) 

    If n >= 0 And n <> .position Then 

        Return "有重复的行!!! "
    Else
        Return "放心吧, 没有重复的行啦!!! "
    End If
End With


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 0:06:00 [显示全部帖子]

以下是引用实话实说在2010-12-9 23:44:00的发言:
提示不对. 能否用颜色标识重复行
[此贴子已经被作者于2010-12-9 23:46:21编辑过]

1、怎么不对呢?
2、 .Position = n     '直接定位到重复的行可以吗?


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 0:11:00 [显示全部帖子]

以下是引用lkqing在2010-12-9 23:50:00的发言:

数据量不是很大的内部表可以,如果是数据量很大的外部数据源,且数据动态加载的话,有困难。

这个用SQLCommand 稍微改造一下即可,不麻烦~ 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 0:14:00 [显示全部帖子]

以下是引用实话实说在2010-12-10 0:08:00的发言:
我的数据量较大(约1万行),用的外部数据源,而且是从EXCEL表复制来的,难免有重复行,想找出来,否则表的关联有问题,
[此贴子已经被作者于2010-12-10 0:08:09编辑过]

既然是复制而来,跟外部数据源有何关系呢? 一万行数据也是瞬间的事啊~~~

6楼可以定位到重复的行呀,修改之便是了。。。

[此贴子已经被作者于2010-12-10 0:14:21编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 0:25:00 [显示全部帖子]

Return:这是在命令窗口中用的,其他地方用messagebox
[此贴子已经被作者于2010-12-10 0:25:19编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 0:27:00 [显示全部帖子]

最好还是用select,好像比findrow更好,可以提示共有多少重复的行。。。。。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 0:46:00 [显示全部帖子]

Dim r As Row = CurrentTable.current
Dim drs As List(Of DataRow)
drs = DataTables("表A").Select("[第一列] = '" & r("第一列") & "' and [第二列] = '" & _
r("第二列") & "' And [第三列] = '" & r("第三列") & "'")
output.show("共有 " & drs.count & " 行重复的")

For Each dr As DataRow In drs 

    output.show("重复行对应的_identify号码 : " & dr("_identify"))

Next

 

[此贴子已经被作者于2010-12-10 0:51:25编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 10:51:00 [显示全部帖子]

以下是引用实话实说在2010-12-10 1:08:00的发言:

我传个实例文件,是开发版的,产品与用料关联,现需要计算[用料]表的"计算用料"列 = [产品]表的"数量汇总",不知问题在哪?

 下载信息  [文件大小:245.6 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:产品用料.rar

密码:58011700                                         [此贴子已经被作者于2010-12-10 1:15:58编辑过]

开发版看不了啦~  给你一段代码吧:

If DataTables("表A").DataCols.Contains("合并列") = False Then
     DataTables("表A").DataCols.Add("合并列", Gettype(String) )
End If

For i As Integer = 0 To Tables("表A").count-1
    Tables("表A")(i,"合并列") = Tables("表A")(i,"第一列") & _
    Tables("表A")(i,"第二列") & Tables("表A")(i,"第三列")
Next
DataTables("表A").DataCols("合并列").Unique = True  ‘禁止重复

 

至于你现『需要计算[用料]表的"计算用料"列 = [产品]表的"数量汇总"』 贴出代码来看看```


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 15:42:00 [显示全部帖子]

以下是引用实话实说在2010-12-10 14:11:00的发言:
我已经按15楼的方法处理了,但我还是想说说这个案例。我设计的用料核算软件,调试时一切正常,交给使用者试用时发现经常有死机现象,原因是使用者通过EXCEL复制大量数据,(实际使用需要)存在数据规范化问题,尤其是有关联的表,复制时,主表可能有重复的关联字段,这样变成了多对多的关联,关联表的表达式列的表达式运算时出错。

应该让你的使用人在使用前,先对Excel中的数据进行整理,排除掉重复的行或修正相关单元格(这个在Excel中进行也很简单)在粘贴(或ImporterMerger、建立连接)到狐表中。

若不事先处理也可以粘贴过来(到狐表),用一个按钮删除掉重复的行也行啊·····就像这里的:http://www.foxtable.com/dispbbs.asp?boardid=2&Id=8810


 回到顶部