Foxtable(狐表)用户栏目专家坐堂 → [求助]如何填充筛选结果


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

主题:[求助]如何填充筛选结果

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


加好友 发短信
等级:婴狐 帖子:11 积分:212 威望:0 精华:0 注册:2012/2/18 23:15:00
[求助]如何填充筛选结果  发帖心情 Post By:2012/2/29 10:24:00 [只看该作者]

我在同一个表中录入数据,因为每天的行比较多,而且每周同一个日子记录差别不大,所以通过筛选某天的记录,然后批量复制,比如我筛选出上周一的记录,然后本周一自动复制其中的几列,再自动填充日期,这样就减轻的工作量。

原来的思路是增加了一个“选中”列,然后筛选以后将选中列自动打勾,再复制打勾行的部分列,但是实际使用中,发现如果我筛选出的部分行已经通过审核被锁定,就无法再打勾,权限上又不允许录入人员解锁,导致不能完全按要求复制,下面的代码中,怎么样才能成为填充可见行

 

Dim Cols1() As String = {"姓名","班次","岗位"}
Dim
Cols2() As String = {"姓名","班次","岗位"}
For Each
dr1 As DataRow In DataTables("表A").Select("[选中] = true")
    Dim
dr2 As DataRow = DataTables("表A").AddNew
()
    For
i As Integer = 0 To Cols1.Length -
1
       
dr2(Cols2(i)) = dr1(Cols1(i
))
    Next
Next

 

怎么样将黄色部分改成选择可见行


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/29 10:28:00 [只看该作者]

Dim Cols1() As String = {"姓名","班次","岗位"}
Dim Cols2() As String = {"姓名","班次","岗位"}
For Each dr1 As Row In Tables("表A").Rows()
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next

 

建议看看:

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

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

 


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


加好友 发短信
等级:婴狐 帖子:11 积分:212 威望:0 精华:0 注册:2012/2/18 23:15:00
  发帖心情 Post By:2012/2/29 15:14:00 [只看该作者]

以下是引用狐狸爸爸在2012-2-29 10:28:00的发言:

Dim Cols1() As String = {"姓名","班次","岗位"}
Dim Cols2() As String = {"姓名","班次","岗位"}
For Each dr1 As Row In Tables("表A").Rows()
    Dim dr2 As DataRow = DataTables("表A").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next

 

这段代码执行的结果是系统崩溃,我是在同一个表中复制,测试时我先筛选出了2条记录,结果自动复制了一分多种,几万条记录还在复制,只好直接结束进程

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/29 15:32:00 [只看该作者]

Dim Cols1() As String = {"姓名","班次","岗位"}
Dim Cols2() As String = {"姓名","班次","岗位"}
Dim cnt As Integer = DataTables("表A").DataRows.Count
For i As Integer = 0 To cnt -1
    Dim dr1 As DataRow = DataTables("表A").DataRows(i)
    Dim dr2 As DataRow = DataTables("表A").AddNew()
    For m As Integer = 0 To Cols1.Length -1
        dr2(Cols2(m)) = dr1(Cols1(m))
    Next
Next

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


加好友 发短信
等级:婴狐 帖子:11 积分:212 威望:0 精华:0 注册:2012/2/18 23:15:00
  发帖心情 Post By:2012/2/29 15:43:00 [只看该作者]

以下是引用狐狸爸爸在2012-2-29 15:32:00的发言:
Dim Cols1() As String = {"姓名","班次","岗位"}
Dim Cols2() As String = {"姓名","班次","岗位"}
Dim cnt As Integer = DataTables("表A").DataRows.Count
For i As Integer = 0 To cnt -1
    Dim dr1 As DataRow = DataTables("表A").DataRows(i)
    Dim dr2 As DataRow = DataTables("表A").AddNew()
    For m As Integer = 0 To Cols1.Length -1
        dr2(Cols2(m)) = dr1(Cols1(m))
    Next
Next

 

结果还是如此,还是会复制所有行,包括隐藏行

 

Dim cnt As Integer = Tables("表A").Rows.Count
For i As Integer = 0 To cnt -1
    Dim dr1 As Row = Tables("表A").Rows(i)
    Dim dr2 As DataRow = DataTables("表A").AddNew()
    For m As Integer = 0 To Cols1.Length -1
        dr2(Cols2(m)) = dr1(Cols1(m))
    Next
Next

 

这样可以了

[此贴子已经被作者于2012-2-29 15:48:26编辑过]

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


加好友 发短信
等级:婴狐 帖子:11 积分:212 威望:0 精华:0 注册:2012/2/18 23:15:00
  发帖心情 Post By:2012/2/29 15:57:00 [只看该作者]

感谢狐爸帮助!

 回到顶部