Foxtable(狐表)用户栏目专家坐堂 → 赋值的时候如何能遍历所有列


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

主题:赋值的时候如何能遍历所有列

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


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
赋值的时候如何能遍历所有列  发帖心情 Post By:2013/11/10 15:21:00 [只看该作者]

“减少”按钮代码: 

For Each dr As Row In Tables("在职窗体_在职表").Rows

    If dr("减少原因") <> Nothing Then

        If dr("减少时间") = CurrentYM Then

               Dim r1 As DataRow = DataTables("在职职工表").Find("减少原因 Is Not Null ")

                Tables("不在职职工表").AddNew

                Dim r2 As Row = Tables("不在职职工表").Current

                r2("姓名") = r1("姓名")             '第1列名是 姓名

                r2("性别") = r1("性别")             '第2列名是 性别

               r2("出生年月") = r1("出生年月")   '第3列名是 出生年月

                r2("籍贯") = r1("籍贯")             '第4列名是 籍贯

               ' *****。。。。。。。。。。。。。还有第5列、第6列 等 很多100多列,没有写

                r1.delete

          End If

    End If

Next

因为【在职职工表】和【不在职职工表】两个表的结构完全一样,列数又很多,以后可能还有所增加或修改列名称,在*号处完全写完所有列不方便,请教怎么把所有的列全部赋值过来

 

 

[此贴子已经被作者于2013-11-10 15:23:17编辑过]

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


加好友 发短信
等级:一尾狐 帖子:431 积分:3214 威望:0 精华:2 注册:2011/9/10 21:35:00
  发帖心情 Post By:2013/11/10 17:45:00 [只看该作者]

For Each dc As DataCol In DataTables("B").DataCols
         dr(dc.Name) = e.DataRow(dc.Name)
Next

 

如果列名不同,或者只需复制部分列,可以参考下面的代码:

    Dim nma() As String = {"A1","A2","A3","A4"} 'A表数据来源列
   
Dim nmb() As String = {"B1","B2","B3","B4"} 'B表数据接收列
   
Dim dr As DataRow = DataTables("表B").AddNew
   
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
   
Next


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


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

是的软件功能讲究自动化,不要老是让开发者,事先给出所有列这种工作方式,必须有自动获取相关列的快速功能。在其它方面也是如此。

 


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


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2013/11/10 23:35:00 [只看该作者]

谢谢大师的指教,太有用了,实际使用的时候我改了一点点

  

  For Each dc As DataCol In DataTables("在职职工表").DataCols
                  r2(dc.Name) = r1(dc.Name)
  Next

[此贴子已经被作者于2013-11-10 23:36:30编辑过]

 回到顶部