以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  保存的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=13484)

--  作者:小猪鑫鑫
--  发布时间:2011/10/13 21:38:00
--  保存的问题
狐爸:还想问你一个问题,就是在使用的时候,有时增加行时增加得多了,这样保存时又一起保存进了数据源,有什么办法对新增的多的空白行自动识别不予保存呢,谢谢。
--  作者:狐狸爸爸
--  发布时间:2011/10/13 22:30:00
--  

保存前删除空白行:

 

Dim Filter As String
For Each dc As DataCol In DataTables("表A").DataCols
    If Filter > "" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & dc.Name & " Is Null"
Next
DataTables("表A").DeleteFor(Filter)


--  作者:小猪鑫鑫
--  发布时间:2011/10/14 7:54:00
--  
搞定,谢谢
--  作者:小猪鑫鑫
--  发布时间:2011/10/14 22:02:00
--  

但在实际工作中,有些表是关联表,新增行时继承了父表的数据(如关联键等),这时只要对狐爸的代码稍作修改即可,针对几列重要列没有数据的即判断它为空行,先删除这些空行再保存,如表A中设定[品种名][数量]列没有数据的行即表示为空行,这样我们可以在保存按扭中写入

Dim Filter As String

For Each dc As DataCol In DataTables("A").DataCols

    If dc.name ="品种" Or dc.name ="数量" Then ‘这是新增的一句代码

        If Filter > "" Then

            Filter = Filter & " And "

        End If

        Filter = Filter & dc.Name & " Is Null"

    End If

Next

DataTables("A").DeleteFor(Filter)

DataTables("表A").save()

我试过了,很好用,再次感谢狐爸