Foxtable(狐表)用户栏目专家坐堂 → [求助]如何取出为空的列名


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

主题:[求助]如何取出为空的列名

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
[求助]如何取出为空的列名  发帖心情 Post By:2014/10/28 10:16:00 [显示全部帖子]

代码如下:

当需求描述,show_version,版本期望交期如果有一列为空,就提示需求描述,show version和版本期望交期不能为空。但这样的提示不够准确。

希望能具体到到底是那一列的值或者是哪几列的值为空。

例如,如果是需求描述为空,那就提示需求描述不能为空。

如果是需求描述和show_version都为空,那就提示需求描述和show_version都不能为空。

 

Dim r As Row = Tables("需求明细表").Current
If r("已提交") Then
    MessageBox.show("此需求已经提交过了,不能再次提交","博达软件管理系统",MessageBoxButtons.OK,MessageBoxIcon.error)
    Return
End If
If r.IsNull("需求描述") = True OrElse r.IsNull("show_version") = True OrElse r.IsNull("版本期望交期") = True Then
    MessageBox.show("请检查,需求描述,show version和版本期望交期不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)
Else


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/10/28 10:32:00 [显示全部帖子]

以下是引用有点甜在2014-10-28 10:19:00的发言:
If r.IsNull("需求描述")
    MessageBox.show("请检查,需求描述不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)
Else If r.IsNull("show_version")
    MessageBox.show("请检查,show version不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)
Else If r.IsNull("版本期望交期") Then
    MessageBox.show("请检查,版本期望交期不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)
Else

这么写的话,提示还是不够准确。

比如正好这3列都为空或者其中2列为空。可提示信息只有一列内容。


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/10/28 10:49:00 [显示全部帖子]

以下是引用有点甜在2014-10-28 10:34:00的发言:
If r.IsNull("需求描述")
    MessageBox.show("请检查,需求描述不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)
End If
If r.IsNull("show_version")
    MessageBox.show("请检查,show version不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)
End If
If r.IsNull("版本期望交期") Then
    MessageBox.show("请检查,版本期望交期不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)
End If

这样也肯定是某一列为空的提醒。

比如这3列都为空。我是否要加入对这3列都为空的判断。如果是2列,那还需要组合一下。

If r.IsNull("需求描述") = True andalso r.IsNull("show_version") = True andalso r.IsNull("版本期望交期") = True Then
    MessageBox.show("请检查,需求描述,show version和版本期望交期不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)
Else


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/10/28 11:05:00 [显示全部帖子]

以下是引用有点甜在2014-10-28 10:51:00的发言:

Dim str As String = ""
If r.IsNull("需求描述")
    str &= "需求描述,"
End If
If r.IsNull("show_version")
    str &= "show version,"
End If
If r.IsNull("版本期望交期") Then
    str &= "版本期望交期"
End If

    MessageBox.show("请检查," & str.Trim(",") & "不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)

这个方法好。我咋就不知道这么做呢。我试一下。


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/10/28 11:16:00 [显示全部帖子]

试过了,这样是可以的。但有个问题。当这3列都不为空的时候,按道理应该去执行红色字体的代码。可事实上又去执行了一次蓝色字体的代码,提示框的内容为请检查,不能为空。

If r.IsNull("版本期望交期")
    str &= "版本期望交期,"
End If
If r.IsNull("show_version")
    str &= "show version,"
End If
If r.IsNull("需求描述") Then
    str &= "需求描述"
End If
MessageBox.show("请检查," & str.Trim(",") & "不能为空","点击第二步提交时请确认",MessageBoxButtons.OK,MessageBoxIcon.Question)

If r.Isnull("需求描述")=False AndAlso r.Isnull("show_version")=False AndAlso r.Isnull("版本期望交期")=False
    If MessageBox.show("请确认新增行内容是否可以提交售后审核?","提交前请确认",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)=DialogResult.OK Then


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/10/28 11:45:00 [显示全部帖子]

以下是引用Bin在2014-10-28 10:53:00的发言:
参考2楼

dim  cns as string = {"列1","列2"}
dim  cs as string
for each s as string in cns
    if tables(X).current.isnull(s) then
         cs = cs & "," & "s"
    end if
next

messagebox.show(cs.trim(",") & "  不能为空")
[此贴子已经被作者于2014-10-28 10:53:02编辑过]

采用集合的方法肯定也是可以的。谢谢有点甜和BIN老师,学会了新的思路。


 回到顶部