以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  保存前判断控制(解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129681)

--  作者:taifeng110
--  发布时间:2019/1/3 17:58:00
--  保存前判断控制(解决)
增加行数据后,在保存新增行数据前进行一下判断,运费,物流公司不能为空,只要有一个为空就提示,并退出保存
BeforeSaveDataRow里
If e.DataRow.IsNull("运费") Then
    Messagebox.Show("请输入运费!")
    e.cancel=True
End If
If e.DataRow.IsNull("") Then
    Messagebox.Show("请输入运费!")
    e.cancel=True
End If
有没有其他方法写更简便点呢?

[此贴子已经被作者于2019/1/5 22:56:47编辑过]

--  作者:有点甜
--  发布时间:2019/1/3 18:07:00
--  
If e.DataRow.IsNull("运费") Then
    Messagebox.Show("请输入运费!")
    e.cancel=True
return
End If
If e.DataRow.IsNull("物流公司") Then
    Messagebox.Show("请输入物流公司!")
    e.cancel=True
return
End If

--  作者:taifeng110
--  发布时间:2019/1/3 20:15:00
--  
只能这样一个一个写条件吗?有没有简单的办法呢?
--  作者:有点甜
--  发布时间:2019/1/3 20:56:00
--  
Dim cs As String() = {"运费","物流公司"}
For Each c As String In cs
    If e.DataRow.IsNull(c) Then
        Messagebox.Show("请输入" & c & "!")
        e.cancel=True
        Return
    End If
Next

--  作者:taifeng110
--  发布时间:2019/1/3 23:05:00
--  
太感谢了,还是要多学啊,谢谢老大!
--  作者:taifeng110
--  发布时间:2019/1/3 23:45:00
--  
Dim cs As String() = {"发货日期","出库编号","物流公司","运费","物流单号","合同编号","客户编号","客户名称"}
For Each c As String In cs
    If e.DataRow.IsNull(c) Then
        Dim nm As String
        nm=CurrentTable.Name   \'增加了表名
        Messagebox.Show("请输入      " & nm & "     " &c & "    数据!,不能为空")
        e.cancel=True
        Return
    End If
Next
增加了表名,本来想保存的时候提示在哪张表的哪个字段是空,但是存在一个问题,假如:B表里的发货日期是空,鼠标在A表时
提示就变成里:请输入A表发货日期数据,实际应该是请输入B表里发货日期数据,这个怎么改呢?

--  作者:有点甜
--  发布时间:2019/1/4 9:05:00
--  

改成

 

        nm=e.datatable.name


--  作者:taifeng110
--  发布时间:2019/1/4 9:45:00
--  
还是不可以
--  作者:有点甜
--  发布时间:2019/1/4 9:51:00
--  
代码没问题,上传具体实例测试。
--  作者:taifeng110
--  发布时间:2019/1/5 22:57:00
--  
解决了,谢谢!