Foxtable(狐表)用户栏目专家坐堂 → 关于窗口dropdownclosed事件代码的疑问


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

主题:关于窗口dropdownclosed事件代码的疑问

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


加好友 发短信
等级:童狐 帖子:248 积分:2193 威望:0 精华:0 注册:2012/6/1 6:39:00
关于窗口dropdownclosed事件代码的疑问  发帖心情 Post By:2015/10/26 10:14:00 [只看该作者]

我在窗口的dropdownclosed中设置了如下的代码:

 

If e.Selected Then           '如果选择了值
    Dim tbl As Table = Tables("rkdrop_Table1")
    Dim bh As String = tbl.Current("hh")               '将要做订单的商品的货号
    Dim sdr As DataRow = DataTables("sp").Find("hh = '" & bh & "'")                '该商品在sp表中的对应记录
    Dim fws As String = sdr("jyfwsx")                'sp对应记录的jyfwsx
    Dim fwq As String = DataTables("bqyzz").DataRows(0)("jyfwlb")               '本企业的经营范围
    Dim gdr As DataRow = Tables("cgdmxb").Current.DataRow. GetParentRow("cgddb")               '采购订单明细表的对应父行
    Dim ghm As String = gdr("ghs")                    'cgddb中的对应行的ghs列
    Dim hdr As DataRow = DataTables("ghszz").Find("ghsmc = '" & ghm & "'")
    Dim fwg As String = hdr("jyfwlb")
    If tbl.Current IsNot Nothing Then
        If tbl.Current("kz") = True Then
            MessageBox.Show("该商品批准证明文件资质已过期,暂停采购计划!","提示", MessageBoxButtons.Ok, MessageBoxIcon.warning)
            e.Form.DropDownBox.Value = ""
            Tables("cgddb.cgdmxb").Current("hh") = ""
            Tables("cgddb.cgdmxb").Current("pm") = ""
            Tables("cgddb.cgdmxb").Current("sccj") = ""
            Tables("cgddb.cgdmxb").Current("gg") = ""
            Tables("cgddb.cgdmxb").Current("dw") = ""
        ElseIf fwq.contains( fws ) = False OrElse fwg.contains(fws) = False Then
            MessageBox.show("购销双方或单方不具备经营该商品的范围条件!")
            e.Form.DropDownBox.Value = ""
            Tables("cgddb.cgdmxb").Current("hh") = ""
            Tables("cgddb.cgdmxb").Current("pm") = ""
            Tables("cgddb.cgdmxb").Current("sccj") = ""
            Tables("cgddb.cgdmxb").Current("gg") = ""
            Tables("cgddb.cgdmxb").Current("dw") = ""
        Else
            e.Form.DropDownBox.Value = tbl.Current("pmzjm")
            Tables("cgddb.cgdmxb").Current("hh") = tbl.Current("hh")
            Tables("cgddb.cgdmxb").Current("pm") = tbl.Current("pm")
            Tables("cgddb.cgdmxb").Current("sccj") = tbl.Current("sccj")
            Tables("cgddb.cgdmxb").Current("gg") = tbl.Current("gg")
            Tables("cgddb.cgdmxb").Current("dw") = tbl.Current("dw")
        End If
        e.Form.DropDownBox.CloseDropDown()
    End If
End If

 

前边试验时是好用的,但是这两天不知道怎么回事,提示错误:

                                                    未将对象引用设置到对象的实例。

 

求解答!


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


加好友 发短信
等级:童狐 帖子:248 积分:2193 威望:0 精华:0 注册:2012/6/1 6:39:00
  发帖心情 Post By:2015/10/26 10:19:00 [只看该作者]

上述代码的简单的意思就是

 

在做订单时,需要判断

1、这个商品的批准文件有没有过期;

2、这个商品在不在购销双方的经营范围内;

 

如果条件1不满足,也就是批准文件已过期,取消执行

如果条件1满足但是条件2中有一个不满足,取消执行

 

条件1和条件2都满足,则执行。


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/10/26 10:33:00 [只看该作者]

 Dim bh As String = tbl.Current("hh") '将要做订单的商品的货号
Dim sdr As DataRow = DataTables("sp").Find("hh = '" & bh & "'") '该商品在sp表中的对应记录
Dim fws As String = sdr("jyfwsx") 'sp对应记录的jyfwsx
Dim fwq As String = DataTables("bqyzz").DataRows(0)("jyfwlb") '本企业的经营范围
Dim gdr As DataRow = Tables("cgdmxb").Current.DataRow. GetParentRow("cgddb") '采购订单明细表的对应父行
Dim ghm As String = gdr("ghs") 'cgddb中的对应行的ghs列
Dim hdr As DataRow = DataTables("ghszz").Find("ghsmc = '" & ghm & "'")

 

这些使用的返回值未必都有值,使用前都应该判断一下是否空值或空对象


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


加好友 发短信
等级:童狐 帖子:248 积分:2193 威望:0 精华:0 注册:2012/6/1 6:39:00
  发帖心情 Post By:2015/10/26 10:42:00 [只看该作者]

前两天,我还用过,没出问题。而且,这些值我都设置过了,应该问题没出在这里。

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


加好友 发短信
等级:童狐 帖子:248 积分:2193 威望:0 精华:0 注册:2012/6/1 6:39:00
  发帖心情 Post By:2015/10/26 11:08:00 [只看该作者]

求助

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/26 11:16:00 [只看该作者]

都要,加上判断,有可能用到的数据不存在,比如

 

If tbl.Current Is Nothing Then

    msgbox("表没有数据")

End If

 

If sdr Is Nothing Then

    msgbox("没有查找到数据")

End If


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


加好友 发短信
等级:童狐 帖子:248 积分:2193 威望:0 精华:0 注册:2012/6/1 6:39:00
  发帖心情 Post By:2015/10/26 13:50:00 [只看该作者]

大红袍老师:

 

我加上了判断空值代码之后,还是显示相同的错误提示,不知道是为什么?

这之前我用过几次还是好用的,没出现这种情况。

而且上述值都是设置过了,不为空。

就是近两天才出现的。

 

郁闷中。。。。。。


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


加好友 发短信
等级:童狐 帖子:248 积分:2193 威望:0 精华:0 注册:2012/6/1 6:39:00
  发帖心情 Post By:2015/10/26 13:58:00 [只看该作者]

是不是狐表出现bug了啊?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/26 14:03:00 [只看该作者]

呃,全部都要加上啊。

 

DataTables("bqyzz").DataRows(0)

 

Tables("cgdmxb").Current

 

hdr

 

等等...只要有可能是找不到数据的,都要加上判断,如果没有数据,就退出return


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


加好友 发短信
等级:童狐 帖子:248 积分:2193 威望:0 精华:0 注册:2012/6/1 6:39:00
  发帖心情 Post By:2015/10/27 7:09:00 [只看该作者]

大红袍老师:

dropdownclosed代码应该没问题。

我测试了一下,使用数据库的备份,检查了一下,1019号的上午备份数据库,使用起来,一切正常。

1019号下午以后的备份数据库打开时,就出现错误。

 

这种情况如何解决呢?


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