以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]同样的代码不同的表,存在执行差  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=72971)

--  作者:乡里出城
--  发布时间:2015/8/10 9:14:00
--  [求助]同样的代码不同的表,存在执行差

If DataTables("订单").Find("[发生日期] Is Null and [产品] Is Null and [客户] Is Null") Is Nothing Then

    Return \'那么返回

End If

Dim Result1 As DialogResult

Result1 = Messagebox.Show("本次登记的业务数据不完整,""""将为你选出未登记未整的业务,""""将不会保存未完整的数据,确定要关闭平台吗?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If Result1 = DialogResult.No Then

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

    Tables("订单").Filter = "[发生日期] Is Null or [产品] Is Null or [客户] Is Null"

    MainTable = Tables("订单")  

 

End If



上述代码应该没问题,在项目BeforeCloseProject能执行,可是相同的在其他表里却不能执行该代码,关闭项目就直接关闭了,没有判断行为


--  作者:blackzhu
--  发布时间:2015/8/10 9:26:00
--  
  e.Cancel = True 不是直接关闭了吗?


BeforeOpenProject

在打开项目之前执行,可以在此进行一些环境上的判断,决定是否打开项目。

e参数属性:

File:           字符型,表示正在打开的项目文件名称,含路径。
Cancel:          逻辑型,设为True,拒绝打开项目。
HideSplashForm: 逻辑型,设为True,关闭Foxtable的启动封面。

[此贴子已经被作者于2015/8/10 9:25:56编辑过]

--  作者:乡里出城
--  发布时间:2015/8/10 9:51:00
--  
我表述不清楚?我就是有空值 ,不符合的条件的时候,直接关闭,它就关了,不会有判断
--  作者:大红袍
--  发布时间:2015/8/10 9:55:00
--  

 呃,加入msgbox,看都执行了什么?

 

 只要执行了 e.Cancel = true,就不会关闭项目


--  作者:blackzhu
--  发布时间:2015/8/10 10:01:00
--  
老大 在这个事件中  e.Cancel  设置为TRue 是拒绝打开项目  
--  作者:乡里出城
--  发布时间:2015/8/10 11:26:00
--  
你看没对表的那个项目吧,什么拒绝打开项目,是项目的CLOSE,不是OPEN啊
[此贴子已经被作者于2015/8/10 11:29:51编辑过]

--  作者:大红袍
--  发布时间:2015/8/10 11:27:00
--  
 加入msgbox弹出信息
--  作者:乡里出城
--  发布时间:2015/8/10 11:28:00
--  
我说了,代码是没错的,换句话来说的,有时能执行的得,有时执行不了,你信么,就同样的代码同样的表,不同的时间,说真的,你相信么
--  作者:乡里出城
--  发布时间:2015/8/10 11:29:00
--  
帅哥,在线噢!
blackzhu 你没看清楚是项目的那个属性吧

--  作者:大红袍
--  发布时间:2015/8/10 11:33:00
--  

你第一行这样写

 

If DataTables("订单").Find("[发生日期] Is Null and [产品] Is Null and [客户] Is Null") Is Nothing Then

    Return \'那么返回

End If

 

那么,如果执行了return,下面的代码就不会执行了啊。直接关闭项目啊