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


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

主题:复制

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


加好友 发短信
等级:婴狐 帖子:50 积分:414 威望:0 精华:0 注册:2012/2/25 17:41:00
复制  发帖心情 Post By:2012/4/6 11:19:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120406111619.jpg
图片点击可在新窗口打开查看

有一个问题,当我在年度列输入一个新值,当新值和旧值不一样时,保存新值并复制增加当前行其他列值,于是我在datachanging加入了以下代码,

Select Case e.DataCol.Name
Case "年度"
If e.NewValue<> e.OldValue AndAlso e.NewValue > "" AndAlso e.OldValue > ""  Then
     Dim nb As DataRow = e.DataTable.AddNew
         For Each dc As DataCol In e.DataTable.DataCols
         nb(dc.Name) = e.DataRow(dc.Name)
          Next
End If
End Select

但会出现一个问题,就是会出现两行一样的数据,后来,我又在datachanged加入以下代码,

Select Case e.DataCol.name
    Case "年度","编号"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("年度") = False AndAlso dr.IsNull("编号") = False Then
            If e.DataTable.Compute("Count([_Identify])","年度 = '" & dr("年度") & "' And 编号 = '" & dr("编号") & "'") > 1 Then
                MessageBox.Show("已经存在相同数据的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue
            End If
        End If
End Select

用来删除重复的数据行

现在的问题是,当我选择一个不同的年度值时,它会因为值重复而删除原先复制增加的数据行,

现在我想,当我选择不同年度值时,复制增加新行时,将新值保存在新复制增加的数据行中



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


加好友 发短信
等级:婴狐 帖子:50 积分:414 威望:0 精华:0 注册:2012/2/25 17:41:00
  发帖心情 Post By:2012/4/6 11:21:00 [只看该作者]

那位哥哥帮我看看,万分感谢!

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


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

DataColChanged事件代码不要,设置DataColChanging事件代码:

 

Select Case e.DataCol.Name
    Case "年度"
        If e.NewValue<> e.OldValue AndAlso e.NewValue > "" AndAlso e.OldValue > ""  Then
            Dim nb As DataRow = e.DataTable.AddNew
            For Each dc As DataCol In e.DataTable.DataCols
                If dc.name = "年度"  Then
                    nb("年度") = e.NewValue
                Else
                    nb(dc.Name) = e.DataRow(dc.Name)
                End If
            Next
            e.cancel = True
        End If
End Select


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


加好友 发短信
等级:婴狐 帖子:50 积分:414 威望:0 精华:0 注册:2012/2/25 17:41:00
  发帖心情 Post By:2012/4/18 11:45:00 [只看该作者]

现在问题又来了,当我重复点同年度时,会出击重复数据,现在该怎么办


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


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

4楼代码不会出现这个问题

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


加好友 发短信
等级:婴狐 帖子:50 积分:414 威望:0 精华:0 注册:2012/2/25 17:41:00
  发帖心情 Post By:2012/4/18 15:00:00 [只看该作者]

还是会出现的

 回到顶部