Foxtable(狐表)用户栏目专家坐堂 → 精简代码(自动复制多行)


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

主题:精简代码(自动复制多行)

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
精简代码(自动复制多行)  发帖心情 Post By:2015/7/6 21:13:00 [只看该作者]


假定表A有个逻辑列,希望在某行选中此逻辑列时,自动将此行复制到表(事件汇总)。

表A的“轻度”为整数列,在表A的DataColChanged事件代码设置为:

If e.DataCol.Name = "选择" Then
    Dim dr As DataRow = e.DataRow
    If dr("选择") = True And dr("轻度") > 0 Then
        Dim dt As DataTable = DataTables("事件汇总")
        Dim ndr As DataRow
        Dim n As Integer = dr("轻度")
        ndr = dt.AddNew(n)
        For Each dr1 As DataRow In dt.DataRows
            If dr1.RowState = DataRowState.Added Then
                dr1("译码日期") = dr("译码日期")
                dr1("性质") = "轻度"
            End If
        Next
    End If
End If
表A另有“严重”列也为整数列,想重复以上操作,该如何精简地写代码?谢谢





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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/6 21:21:00 [只看该作者]

If e.DataCol.Name = "选择" Then
    Dim dr As DataRow = e.DataRow
    Dim cs() As String = {"轻度","严重"}
    If dr("选择") = True
        Dim dt As DataTable = DataTables("事件汇总")
        Dim ndr As DataRow
        For Each c As String In cs
            Dim n As Integer = dr(c)
            If n > 0 Then
                ndr = dt.AddNew(n)
                For Each dr1 As DataRow In dt.DataRows
                    If dr1.RowState = DataRowState.Added Then
                        dr1("译码日期") = dr("译码日期")
                        dr1("性质") = "轻度"
                        dr1.Save
                    End If
                Next
            End If
        Next
    End If
End If

 回到顶部