以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]新增一行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=187419)

--  作者:puma
--  发布时间:2023/7/17 9:38:00
--  [求助]新增一行
我的需求是:只要最后一行有数据,就新增一行

用以下代,放到DataColChanging后,只要修改自动一行,效果不好,有自动新增行的案例吗?
Select Case e.DataCol.Name
    
    Case "列"
        Dim dr As DataRow = e.DataTable.DataRows(e.DataTable.DataRows.Count - 1) \'获得最后一行
        Dim max As Integer = DataTables("表").Compute("max(ID)")
        
        If dr("列") IsNot Nothing Then
            \'            MessageBox.show("1")
            DataTables("列").DataCols("ID").DefaultValue = """" & max & """"
            DataTables("列").AddNew()
        Else
            e.Cancel = True
        End If 
End Select

--  作者:有点蓝
--  发布时间:2023/7/17 9:41:00
--  
只要最后一行有数据】是指本来所有单元格都没有数据,然后随便一个单元格有数据就新增一行?
--  作者:puma
--  发布时间:2023/7/17 9:48:00
--  
图片点击可在新窗口打开查看  
这个表是子表,我有4列数据,第一列是id,第二列第三列是数据,第四列是表达式。  
 需求是第二列第三列 is Nothing   不新增行,  
 第二列第三列 isnot  Nothing  新增行

--  作者:有点蓝
--  发布时间:2023/7/17 9:58:00
--  
datacolchanged事件
dim idx as integer = tables("某表").findrow(e.datarow)
if idx = tables("某表").rows.count - 1
Select Case e.DataCol.Name
    case "第二列"
    if e.datarow.isnull("第三列") andalso e.oldvalue is nothing andalso e.newvalue > "" then
         e.datatable.addnew
    endif
    case "第三列"
    if e.datarow.isnull("第二列") andalso e.oldvalue is nothing andalso e.newvalue > "" then
         e.datatable.addnew
    endif
End Select
end if