Foxtable(狐表)用户栏目专家坐堂 → {求解} 复制行及子行,编码跟新问题


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

主题:{求解} 复制行及子行,编码跟新问题

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


加好友 发短信
等级:童狐 帖子:268 积分:1928 威望:0 精华:0 注册:2014/7/11 12:44:00
{求解} 复制行及子行,编码跟新问题  发帖心情 Post By:2022/7/3 10:11:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220703094814.png
图片点击可在新窗口打开查看

{求解} 复制行及子行,编码跟新
如图:当复制“分项000002”,其“子项000001,子项000002” 一并复制,编号根据现有最大编号值+1
但实际只复制了鼠标所在当前行,,并且行号未变

------------------------------
Select e.DataCol.Name
    Case "类型"
        If e.DataRow.IsNull("类型") Then
            e.DataRow("项目编号") = Nothing
        Else
            Dim lb As String = e.DataRow("类型")
            If e.DataRow("项目编号").StartsWith(lb) = False Then'如果项目编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(项目编号)", "类型 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
                If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(2, 6)) + 1 '获得最大编号的后6位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("项目编号") = lb & Format(idx, "000000")
            End If
        End If
End Select
-------------------

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/3 20:41:00 [只看该作者]

怎么做的复制?复制的时候不要复制编号,因为有判断【If e.DataRow("项目编号").StartsWith(lb) = False Then'如果项目编号前缀不符

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


加好友 发短信
等级:童狐 帖子:268 积分:1928 威望:0 精华:0 注册:2014/7/11 12:44:00
  发帖心情 Post By:2022/7/3 21:15:00 [只看该作者]

就右快捷键 “克隆行”操作



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


加好友 发短信
等级:童狐 帖子:268 积分:1928 威望:0 精华:0 注册:2014/7/11 12:44:00
  发帖心情 Post By:2022/7/3 21:18:00 [只看该作者]

另想了解:
如果主表的列太多(400来列),都是表达式计算,实际完成界面会分解成三个表来展示,
每个表都是吧其他列隐藏,
计算速度会不会有影响?

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/3 21:30:00 [只看该作者]

下面二选一
1、不要使用克隆,自己写代码复制,不要复制编号
2、去掉这句判断:If e.DataRow("项目编号").StartsWith(lb) = False Then'如果项目编号前缀不符

回4楼,表达式计算越多,速度就越慢。

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


加好友 发短信
等级:童狐 帖子:268 积分:1928 威望:0 精华:0 注册:2014/7/11 12:44:00
  发帖心情 Post By:2022/7/3 21:48:00 [只看该作者]

谢谢!

 回到顶部