以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  插入行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=162421)

--  作者:13775189031
--  发布时间:2021/4/14 13:15:00
--  插入行
请教:
加载树中加载所有行,执行以下命令时,增加行在所有行的第一行
但是加载树中分类显示时,执行以下命令时,新增加的行就不在所有行的第一行了
要如何改,在加载树中无论如何分类,增加行始终在所有行的第一行?

Select Case e.DataCol.name
    Case "预算编号","物资说明"
        If e.DataRow.IsNull("预算编号") = True OrElse e.DataRow.IsNull("物资说明") = True Then
            DataTables("原材料采购明细表").DeleteFor("预算编号=\'" & e.DataRow("预算编号") & "\'")
        Else
            Dim ndr1 As DataRow = DataTables("原材料采购明细表").Find("预算编号 = \'" & e.DataRow("预算编号") & "\'")
            If e.DataRow("物资说明") = "原材料" Then
                Dim ndr As Row = Tables("原材料采购明细表").AddNew
                ndr("内部合同编号") = e.DataRow("内部合同编号")
                ndr("预算编号") = e.DataRow("预算编号")
                ndr("生产令号") = e.DataRow("生产令号")
                ndr("项目名称") = e.DataRow("项目名称")
                ndr("物资说明") = e.DataRow("物资说明")
                ndr("编制人") = e.DataRow("编制人")
                ndr("取消采购") = e.DataRow("取消采购")
                ndr("事业部_审核")= e.DataRow("事业部_审核")
                ndr.Move(0)
            ElseIf e.DataCol.name = "物资说明" AndAlso e.OldValue = "原材料"
                DataTables("原材料采购明细表").deletefor("预算编号 = \'" & e.DataRow("预算编号") & "\'")
            End If
        End If
End Select


--  作者:有点蓝
--  发布时间:2021/4/14 13:47:00
--  
ndr.Move(0)
ndr("_sortkey") = DataTables("原材料采购明细表").sqlcompute("min([_sortkey])") - 0.00000001

--  作者:13775189031
--  发布时间:2021/4/15 8:55:00
--  
如果在当前表直接点击插入行操作时,如何在加载树分类的情况下,始终都在所有行的第一行插入
--  作者:有点蓝
--  发布时间:2021/4/15 9:12:00
--  
同样的方法,到DataRowAdding事件给_sortkey赋值
--  作者:13775189031
--  发布时间:2021/4/15 9:29:00
--  
OK!
可否实现无论在那个位置插入行,都能按照插入时间自动排序,最后插入的始终在所有行的第一行!


--  作者:有点蓝
--  发布时间:2021/4/15 9:37:00
--  
这种建议不要使用默认的插入行功能,自己到按钮写代码处理,新增后给时间列和_sortkey赋值即可
[此贴子已经被作者于2021/4/15 9:37:10编辑过]