以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  垃圾行产生的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=123248)

--  作者:aza520
--  发布时间:2018/8/10 15:58:00
--  垃圾行产生的问题
由于用户操作时不细心,录入行时有些行不完整,或是空白行,并保存了。因行数据是按条件加载的,用户再打开系统或是重新加载之后,就看不到这些行了,实际系统又存在,变成垃圾行。请问老师,有什么思路可以避免这样的情况?
--  作者:有点甜
--  发布时间:2018/8/10 17:08:00
--  

保存的时候判断,beforeSaveDataRow事件

 

http://www.foxtable.com/webhelp/scr/0628.htm

 


--  作者:aza520
--  发布时间:2018/8/10 17:47:00
--  
想实现“项目名称”为列空时,不能保存。以下代码不起作用

If e.DataRow.IsNull("项目名称") Then \'判断是否不符合验证要求
    MessageBox.Show("项目名称未输入","存盘失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) \'提示用户
    Dim Index As Integer
    Index = Tables("S征地记录").FindRow(e.DataRow) \'找出此行在销售数据Table中的位置
    If Index > -1 Then \'如果找到此行
        Tables("S征地记录").Position = Index \'将焦点定位到此行
    End If
    MainTable = Tables("S征地记录") \'选择销售数据表作为主表.
    e.Cancel = True \'取消存盘
End If

--  作者:有点蓝
--  发布时间:2018/8/10 20:33:00
--  
肯定起作用的,不过如果有多行都不符合保存要求,每一行都会触发beforeSaveDataRow,知道所有行保存完毕。e.Cancel = True仅可以取消有问题的行,并不会取消所有未保存的行。

如果是保存多行的,最好自己做个保存按钮,保存前通过datatable.find函数找出不符合的行并提示