Foxtable(狐表)用户栏目专家坐堂 → 自定义项目能做判断是否存在吗?


  共有22869人关注过本帖树形打印复制链接

主题:自定义项目能做判断是否存在吗?

帅哥哟,离线,有人找我吗?
mr725
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
自定义项目能做判断是否存在吗?  发帖心情 Post By:2009/4/4 16:48:00 [只看该作者]

我在窗口中combobox控件的属性列表项目采用自定义项目(允许手工输入)时,当选择后不小心按了某按键删除(或加上)了个别字符后,关闭窗口时出现错误提示~ 
能不能加个判断,如果自定义项目中不存在的时候,提示没有该项目,而不是由系统弹出错误提示呢?
[此贴子已经被作者于2009-4-4 19:04:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/4/4 18:20:00 [只看该作者]

肯定可以的,来个示例文件吧,或将窗口模板传上来看看。

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/4/4 19:09:00 [只看该作者]

关闭 按钮 代码:
Dim xm As DataRow  = DataTables("项目表").Find("项目代码 = '" & e.Form.Controls("combobox1").text.SubString(0,4) & "'")
            if xm.isnull("项目代码") then
                e.Form.Controls("combobox1").value = ""
                e.Form.Controls("ComboBox1").Select() 
            else
            Dim Multi As string = e.Form.Controls("combobox1").text
            Dim Values as String()
                Values = Multi.split(" ")
                dim ss1 as string = (Values(1))
                Tables("pzbj").Current("项目") = ss1 
            e.form.Close()           
            end if

项目格式是:
1001 项目1|1002 项目2|  .........
其中1001等是和项目表中的项目代码一致的。          其他也没什么代码的。 还有1楼应是手工允许直接录入

今天论坛网页一直有问题,时断时续的。。。。。。。。
[此贴子已经被作者于2009-4-4 19:11:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/4/4 19:32:00 [只看该作者]

改成这样看看。

Dim xm As DataRow  = DataTables("项目表").Find("项目代码 = '" & e.Form.Controls("combobox1").text.SubString(0,4) & "'")
If xm Is Nothing Then
    e.Form.Controls("combobox1").value = ""
    e.Form.Controls("ComboBox1").Select()
else
    Dim Multi As string = e.Form.Controls("combobox1").text
    Dim Values as String()
    Values = Multi.split(" ")
    dim ss1 as string = (Values(1))
    Tables("pzbj").Current("项目") = ss1
    e.form.Close()
end if

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/4/4 19:38:00 [只看该作者]

知道了,是‘1001 项目1’中间的空格造成的,所以要判断空格是否存在!~
有时输入完1001后,项目 ‘1001 项目1 ’自动全部进入控件,这时比如敲回车不小心多触到小数点‘.’这样那个空格就没有了,项目1也被小数点清掉了,只剩下 1001.  ,代码中的Values = Multi.split(" ") 就失灵了,
就会出现错误提示

现在要求增加一个判断,点击关闭按钮时,如果自定义项目中没有控件中的内容的话,就返回控件重新输入,该怎么做???

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/4/4 19:40:00 [只看该作者]

测试一下四楼的代码,看看能不能解决?

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/4/4 19:57:00 [只看该作者]

诶~  czy版主的 If xm Is Nothing Then 比我的 if xm.isnull("项目代码") then 要好(因为我的项目代码中有几行确实是空值,是必须保留的空值) ! 谢谢了。

不过我5楼说的还是会发生问题的。还要加上是否有空格的判断和自定义项目中没有控件中的内容 的判断,因为允许直接输入,可能会超出自定义内容

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/4/4 20:13:00 [只看该作者]

czy版主:请看5、7楼。

今天不知我这里网络有点问题还是论坛的问题,总是时断时续的。。。。。。。。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/4 21:09:00 [只看该作者]

Validating

离开控件之前执行,通常用于验证控件的内容。

e参数属性:

Sender:返回触发事件的控件
Form:   返回控件所在的窗口

Cancel: 逻辑型,设为True禁止离开控件。

示例

如果将某个DateTimePicker(日期输入框)的Validating事件设置为:

If e.Sender.Value Is Nothing Then
    e.Cancel =
True
End
If

这样直到你在该DateTimePicker中输入内容,否则你将不能离开它去选择其他控件。

但是验证也有例外的时候,例如窗口中通常有一个取消按钮,单击这个按钮,最好不用执行任何控件的Validating事件,否则我明明需要取消操作,却还得在取消之前还得输入一些内容,这不符合通常的操作习惯。为解决这个问题,只需在窗口设计的时候,将这个按钮的"执行验证"属性设为False即可,该属性位于“行为”分组中。


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/4/4 22:02:00 [只看该作者]

空格判断解决了,
Dim xm As DataRow  = DataTables("项目表").Find("项目代码 = '" & e.Form.Controls("combobox1").text.SubString(0,4) & "'")
If xm Is Nothing Then
    e.Form.Controls("combobox1").value = ""
    e.Form.Controls("ComboBox1").Select()
else

if e.Form.Controls("combobox1").text.SubString(4,1) <> " " then 
                e.Form.Controls("ComboBox1").Select() 
                e.Form.Controls("combobox1").value = "" 

else
    Dim Multi As string = e.Form.Controls("combobox1").text
    Dim Values as String()
    Values = Multi.split(" ")
    dim ss1 as string = (Values(1))
    Tables("pzbj").Current("项目") = ss1
    e.form.Close()
end if

end if

下面是如何判断控件中的内容是否包含在自定义项目中,如果没有的话也不让关闭窗口,这个不会做啊~
是不是在自定义项目中开头或结尾处加 "|" 呀,试了几遍都不成功。 

另外,狐爸呀~ 你9楼说的帮助我也看过,好像和我要的东东不大嘎呀! 我是在窗口关闭前才将控件中的内容写到指定位置的。问题是有些在自定义中没有的内容也可以写到指定位置的。


[此贴子已经被作者于2009-4-4 22:02:38编辑过]

 回到顶部
总数 12 1 2 下一页