Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/6/13 11:37:00 [显示全部帖子]

1、表事件是有e参数的,在表事件中写代码,应该用e参数来表示触发事件的行和列,不要用Current,当前行并非一定就是触发事件的行:

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

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

 

否则即使现在不出错,以后也会出错。

 

2、判断空值的正确方法:

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

 

 

3、提问的时候,最好告诉错误提示,以及自己的设计逻辑

 

最好按顺序系统学习一遍,或者看一下论坛置顶的视频教程。

 

你这样基本abc没有掌握,胡乱拼凑的东西,必定漏洞百出

[此贴子已经被作者于2015/6/13 11:40:47编辑过]

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/6/13 11:44:00 [显示全部帖子]

Dim lower As Single = e.DataRow("Min")
Dim uper As Single = e.DataRow("Max")
Dim m As Single = e.DataRow("测量值")
Dim b As Boolean
If e.DataCol.Name = "测量值" AndAlso e.DataRow.IsNull("测量值") = False Then
    If e.DataRow.Isnull("Min") = False Then
        If e.DataRow.Isnull("max") = False Then
            b = (m >= lower) And (m <= uper)
        Else
            b = (m >= lower)
        End If
    Else
        If e.DataRow.Isnull("max") = False Then
            b = (m <= uper)
        End If
    End If
Else
    e.DataRow("判别") = Nothing
End If
If b = True Then
    e.DataRow("判别") = "OK"
Else
    e.DataRow("判别") = "NG"
End If
[此贴子已经被作者于2015/6/13 11:48:28编辑过]

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/6/13 11:48:00 [显示全部帖子]

学到现在,从你的代码可以看出编程逻辑是不错的,但是连事件的e参数都不知道,怎么能写出合格的代码呢?

实在看不下帮助,可以将论坛置顶的视频教程《编程基础》,《基本类型》,《事件编程》,这三个视频是基础来的,对应的三章帮助也是基础。

[此贴子已经被作者于2015/6/13 11:49:12编辑过]

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/6/13 11:58:00 [显示全部帖子]

从另一个帖子得知,我还忽视了你没有判断列名的错误,继续改:

 

Dim lower As Single = e.DataRow("Min")
Dim uper As Single = e.DataRow("Max")
Dim m As Single = e.DataRow("测量值")
Dim b As Boolean
If e.DataCol.Name = "测量值"
    If  e.DataRow.IsNull("测量值") = False Then
        If e.DataRow.Isnull("Min") = False Then
            If e.DataRow.Isnull("max") = False Then
                b = (m >= lower) And (m <= uper)
            Else
                b = (m >= lower)
            End If
        Else
            If e.DataRow.Isnull("max") = False Then
                b = (m <= uper)
            End If
        End If
    Else
        e.DataRow("判别") = Nothing
    End If
    If b = True Then
        e.DataRow("判别") = "OK"
    Else
        e.DataRow("判别") = "NG"
    End If
End If

 

帮助特别强调:

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

 


[此贴子已经被作者于2015/6/13 12:01:10编辑过]

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/6/13 12:00:00 [显示全部帖子]

你有编程的逻辑,但是短短一段代码,原则性错误就有如此之多。

 

你花50%的时间学习,50%的时间开发出合格产品,比你花1%的时间学习,用10000%的时间开发出漏斗百出的产品,要划算很多。

[此贴子已经被作者于2015/6/13 12:05:58编辑过]

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/6/13 12:03:00 [显示全部帖子]

论坛没有多少人会像我这这样,耐心给你纠正这些基本的错误,多数只是给你就事论事,让你的代码能凑合跑起来,基本的学习要去啃帮助,否则你开发出10个项目,也还是菜鸟。

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/6/13 14:11:00 [显示全部帖子]

你原来的判断没有多少意义,因为以下代码:

 

If b = True Then
    e.DataRow("判别") = "OK"
Else
    e.DataRow("判别") = "NG"
End If

 

在判断语句之外,无论什么列名都会执行。


 回到顶部