以文本方式查看主题

-  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=19986)

--  作者:pc005637
--  发布时间:2012/5/26 10:33:00
--  关于BeforeCloseProject的求助。(已解决)

项目各用户密码都是:888

 

项目要求:关闭项目前校验,当有记录"姓名"为空,而且"接诊医生"为当前用户,而且"国籍"不为"城堡"时。提示,并筛选出相应记录。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关闭项目.table

[此贴子已经被作者于2012-5-28 21:46:52编辑过]

--  作者:mr725
--  发布时间:2012/5/26 16:47:00
--  

加一个条件你应该没问题的吧:

 

If DataTables("表A").Find("[姓名] Is Null And [国籍] <> \'城堡\' And [接诊医生] = \'" & _
    User.Name & "\'") IsNot Nothing Then
    Dim Result As DialogResult
    Result = Messagebox.Show("你在""表A""表中存在没有输入姓名的记录," & _
    "请删除后再关闭项目!","提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    If Result = DialogResult.OK Then
        e.Cancel = True \'取消关闭项目
        Tables("表A").Filter = "[姓名] Is Null And [国籍] <> \'城堡\'  And [接诊医生] = \'" & User.Name & "\'"
        MainTable = Tables("表A")
        Return
    End If
End If


--  作者:pc005637
--  发布时间:2012/5/26 22:47:00
--  上面的代码是完全没反应,直接关闭项目了.

我原先也是按你说的方法来做的,就是因为不成功,才发贴求助的.

 

And [国籍] <> \'城堡\' 这段代码 不知道到是不是不能在 FIND 中起到作用?

[此贴子已经被作者于2012-5-26 22:48:29编辑过]

--  作者:pc005637
--  发布时间:2012/5/27 8:54:00
--  回复:(pc005637)关于BeforeCloseProject的求助。(未...
继续顶上去。
--  作者:程兴刚
--  发布时间:2012/5/27 9:34:00
--  
If DataTables("表A").Find("[姓名] Is Null And [接诊医生] = \'" & User.Name & "\'") IsNot Nothing Then
    Dim Result As DialogResult
    Result = Messagebox.Show("你在""表A""表中存在没有输入姓名的记录,请删除后再关闭项目!","提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    If Result = DialogResult.OK Then
        e.Cancel = True \'取消关闭项目
        Tables("表A").Filter = "[姓名] Is Null And [接诊医生] = \'" & User.Name & "\'"
        MainTable = Tables("表A")
    End If
End If

--  作者:pyh6918
--  发布时间:2012/5/27 9:36:00
--  
If DataTables("表A").Find("[姓名] Is Null And [接诊医生] = \'" & User.Name & "\' and [国籍]<>\'城堡\'") IsNot Nothing Then
    Messagebox.Show("你在""表A""表中存在没有输入姓名的记录,请删除后再关闭项目!","提示")
    e.Cancel = True \'取消关闭项目
    Tables("表A").Filter = "[姓名] Is Null And [接诊医生] = \'" & User.Name & "\'and [国籍]<>\'城堡\'"
    MainTable = Tables("表A")
    Return
End If

--  作者:程兴刚
--  发布时间:2012/5/27 9:36:00
--  

为何不直接删除?这样的话一行代码就可以搞定:

 

DataTables("表A").DeleteFor("[姓名] Is Null And [接诊医生] = \'" & User.Name & "\'")


--  作者:pc005637
--  发布时间:2012/5/27 10:07:00
--  回复:(程兴刚)为何不直接删除?这样的话一行代码就...

因为项目是运行在互联网上,环境例子:

分公司如果需要添加记录,必须总公司才能生成,不过记录会以国籍区别不同的公司。生成记录后,分公司会同步后,填写各项内容。但是填写不一定及时。

 

比如只有"城堡"公司才有这种添加记录的权限,其它公司就没有。

 

所以必须做出一定的校验。要不然"城堡"公司还没输入内容的话,你就关不了软件了。


--  作者:程兴刚
--  发布时间:2012/5/27 10:44:00
--  

最好用自定义登录,就不会出现这些问题!


--  作者:pc005637
--  发布时间:2012/5/27 16:56:00
--  回复:(程兴刚)最好用自定义登录,就不会出现这些问...

因为要限制子单位不能生成新记录,所以只能在总部生成记录了,下面子单位只能修改完善记录。

 

现在的主要问题是

 

DataTables("XX").Find() 的问题。里面的条件不能使用<>.的问题。想求个解决方法。曲线的也行。