以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  BeforeCloseProject求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43096)

--  作者:L88919138
--  发布时间:2013/11/29 12:08:00
--  BeforeCloseProject求助
 

求助以下代码为何无法将存货账中筛选出业务发生日期为空并且商品名称不为空的记录?

 

If DataTables("存货账").Find("[业务发生日期] Is Null") Is Nothing Then

    If DataTables("存货账").Find("[商品名称] Is Null") IsNot Nothing Then

        Return \'那么返回

    End If

    Dim Result As DialogResult

    Result = Messagebox.Show("存货账业务发生日期未录入,请录入完整后再保存.","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

    If Result = DialogResult.No Then \'如果用户选择否

        e.Cancel = True \'取消关闭项目

        Tables("存货账").Filter = "[业务发生日期] Is Null" \'筛选出业务发生日期为空的记录.

        MainTable = Tables("存货账") \'选择存货账作为主表.

    End If

End If


--  作者:狐狸爸爸
--  发布时间:2013/11/29 12:13:00
--  

参考:

http://www.foxtable.com/help/topics/0400.htm

http://www.foxtable.com/help/topics/0396.htm

 

 

查找发生日期为空并且商品名称不为空:

 

If DataTables("存货账").Find("[业务发生日期] Is Null And [商品名称] Is Not Null") Is Nothing Then


End If


--  作者:L88919138
--  发布时间:2013/11/29 14:15:00
--  

多谢狐爸指点。

 


--  作者:L88919138
--  发布时间:2014/1/20 15:59:00
--  

  我在项目事件BeforeSaveProject中输入如下代码,为何只有例子二表格有效果,而例子一、例子三无法按程序列出产品不为空而日期为空的记录?请大师们赐教下。谢谢。

 

Dim Result As DialogResult

 

If DataTables("例子二").Find("[日期] Is Null And [产品] Is Not Null") Is Nothing Then

    Return \'那么返回

End If

Result = Messagebox.Show("例子二日期未录入,是否保存.","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If Result = DialogResult.No Then \'如果用户选择否

    e.Cancel = True \'取消关闭项目

    Tables("例子二").Filter = "[日期] Is Null And [产品] Is Not Null" \'筛选出状态为空的记录.

    MainTable = Tables("例子二") \'选择表作为主表.

End If

 

If DataTables("例子一").Find("[日期] Is Null And [产品] Is Not Null") Is Nothing Then

    Return \'那么返回

End If

Result = Messagebox.Show("例子一日期未录入,是否保存.","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If Result = DialogResult.No Then \'如果用户选择否

    e.Cancel = True \'取消关闭项目

    Tables("例子一").Filter = "[日期] Is Null And [产品] Is Not Null" \'筛选出状态为空的记录.

    MainTable = Tables("例子一") \'选择表作为主表.

End If

 

If DataTables("例子三").Find("[日期] Is Null And [产品] Is Not Null") Is Nothing Then

    Return \'那么返回

End If

Result = Messagebox.Show("例子三日期未录入,是否保存.","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If Result = DialogResult.No Then \'如果用户选择否

    e.Cancel = True \'取消关闭项目

    Tables("例子三").Filter = "[日期] Is Null And [产品] Is Not Null" \'筛选出状态为空的记录.

    MainTable = Tables("例子三") \'选择表作为主表.

End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账.rar


--  作者:Bin
--  发布时间:2014/1/20 16:11:00
--  
你这样做,前面的没有符合要求的,就直接return 了 那还有机会执行后面的.


应该这样做

If DataTables("例子二").Find("[日期] Is Null And [产品] Is Not Null")  Then

    Result = Messagebox.Show("例子二日期未录入,是否保存.","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If Result = DialogResult.No Then \'如果用户选择否

    e.Cancel = True \'取消关闭项目

    Tables("例子二").Filter = "[日期] Is Null And [产品] Is Not Null" \'筛选出状态为空的记录.

    MainTable = Tables("例子二") \'选择表作为主表.

End If

End If


--  作者:L88919138
--  发布时间:2014/1/20 17:18:00
--  
谢谢BIN大师指点。