以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 新增复制当前行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147401) |
-- 作者:15666282205 -- 发布时间:2020/3/16 8:27:00 -- 新增复制当前行 老师,我想实现新增行时自动复制选中的当前行,请指导 |
-- 作者:有点蓝 -- 发布时间:2020/3/16 9:01:00 -- 直接克隆选中行即可 Dim r As Row = Tables("表A").current If r IsNot Nothing Then r.Clone End If
|
-- 作者:15666282205 -- 发布时间:2020/3/16 9:28:00 -- 老师,忘了说明白,需要复制当前行的其中几列,直接克隆还不行,麻烦您优化一下哦 |
-- 作者:有点蓝 -- 发布时间:2020/3/16 9:55:00 -- 方法一、克隆后去掉不需要的数据 Dim r As Row = Tables("表A").current Dim Cols1() As String = {"列一","列二","列三"} Dim dr2 As Row = Tables("表A").AddNew() For i As Integer = 0 To Cols1.Length -1 dr2(Cols2(i)) = r(Cols1(i)) Next [此贴子已经被作者于2020/3/16 9:54:54编辑过]
|
-- 作者:15666282205 -- 发布时间:2020/3/16 11:11:00 -- 老师,这是您以前教我的代码,是复制最后一行,能不能改编为复制当前行呢? \'---------------------自动复制最后一行------------- If e.DataTable.DataRows.Count = 0 Then \'如果是一个空表 Return \'那么返回 End If Dim ColNames As String() = {"生产工段","考勤班组","操作人","商品编码","商品全名"} \'定义一个数组,保存复制列的名称 Dim dr As DataRow = e.DataTable.DataRows(e.DataTable.DataRows.Count - 1) \'获得最后一行 For Each ColName As String In ColNames e.DataRow(ColName) = dr(ColName) \'将最后一行的内容复制到新增行中. Next |
-- 作者:有点蓝 -- 发布时间:2020/3/16 11:23:00 -- 看4楼 |
-- 作者:15666282205 -- 发布时间:2020/3/17 8:09:00 -- 老师,以下是我改编的代码,提示:编译错误,未声明“cols2”,错误代码:dr2(Cols2(i)) = r(Cols1(i)).请您看看。 \'-----------------------------------------新代码复制当前行------------------------------ \'Dim r As Row = Tables("工时表").current \'Dim Cols1() As String = {"生产工段","考勤班组","考勤员","操作人","商品编码","商品全名"} \'Dim dr2 As Row = Tables("工时表").AddNew() \'For i As Integer = 0 To Cols1.Length -1 \'dr2(Cols2(i)) = r(Cols1(i)) \'Next |
-- 作者:有点蓝 -- 发布时间:2020/3/17 8:39:00 -- dr2(Cols1(i)) = r(Cols1(i)) |
-- 作者:15666282205 -- 发布时间:2020/3/17 8:42:00 -- 之前我也改了试了,一运行狐表就退出 |
-- 作者:15666282205 -- 发布时间:2020/3/17 8:46:00 -- 行了,我以前放在表的新增行里,系统死机,我放在按钮里可以了,谢谢 |