Foxtable(狐表)用户栏目专家坐堂 → CurrentChanged


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

主题:CurrentChanged

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
CurrentChanged  发帖心情 Post By:2016/9/18 16:46:00 [只看该作者]

当需求明细表为空的时候就会报下面的错误。
.NET Framework 版本:2.0.50727.7905
Foxtable 版本:2016.7.29.1
错误所在事件:临时版本跟踪表,CurrentChanged
详细错误信息:
未将对象引用设置到对象的实例。

CurrentChanged代码
If DataTables("需求明细表").Find("需求编号 = '" & e.Table.Current("需求编号") & "'") Is Nothing Then
    DataTables("需求明细表").AppendLoad("需求编号 = '" & e.Table.Current("需求编号") & "'")
End If

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


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/18 17:13:00 [只看该作者]

if e.Table.Current isnot nothing then
If DataTables("需求明细表").Find("需求编号 = '" & e.Table.Current("需求编号") & "'") Is Nothing Then
    DataTables("需求明细表").AppendLoad("需求编号 = '" & e.Table.Current("需求编号") & "'")
End If
endif

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/9/18 17:21:00 [只看该作者]

还是报同样的错。

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


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/18 17:29:00 [只看该作者]

那就不只是这里的代码问题,检查是否触发了其它事件

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/9/18 17:34:00 [只看该作者]

我就是加载表。如果筛选出来的是空表就会报上面的错。
按钮代码
Dim kh As WinForm.ComboBox = e.Form.Controls("客户")
Dim bdjx As WinForm.ComboBox = e.Form.Controls("博达机型")
Dim startdate As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim enddate As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
If User.Name.Trim() = "jichenggang@bdcom.com.cn" Or  User.Name.Trim() = "liujiyong@bdcom.com.cn" Then
    Dim filter = DataTables("临时版本跟踪表").LoadFilter
    If filter > "" Then filter &= " and "
    If kh.text = ""  And bdjx.text = "" Then
        DataTables("临时版本跟踪表").LoadFilter = filter & "需求提交时间 > '" & startdate.Value & "' And 需求提交时间 < '"  & enddate.value.AddDays(1) & "'"
    ElseIf kh.text <> "" And bdjx.text <> "" Then
        DataTables("临时版本跟踪表").LoadFilter = filter & "需求提交时间 > '" & startdate.Value & "' And 需求提交时间 < '"  & enddate.value.AddDays(1) & "' and  客户 = '" & kh.text & "' and 博达机型 = '" & bdjx.text & "'"
    ElseIf kh.text <> "" And bdjx.text = "" Then
        DataTables("临时版本跟踪表").LoadFilter = filter & "需求提交时间 > '" & startdate.Value & "' And 需求提交时间 < '"  & enddate.value.AddDays(1) & "' and  客户 = '" & kh.text & "'"
    ElseIf kh.text = "" And bdjx.text <> "" Then
        DataTables("临时版本跟踪表").LoadFilter = filter & "需求提交时间 > '" & startdate.Value & "' And 需求提交时间 < '"  & enddate.value.AddDays(1) & "' and  博达机型 = '" & bdjx.text & "'"
    End If
Else
    Select Case user.Group
        Case  "录入","审核","协议一组","协议二组","交换组","R驱动组","S驱动组","EPON组","ONU组","网管组","网络组","路由组","PTN应用组","链路组","测试epon","测试switch","测试router"
            Dim filter = DataTables("临时版本跟踪表").LoadFilter
            If filter > "" Then filter &= " and "
            If kh.text = ""  And bdjx.text = "" Then
                DataTables("临时版本跟踪表").LoadFilter = filter & "需求提交时间 > '" & startdate.Value & "' And 需求提交时间 < '"  & enddate.value.AddDays(1) & "'"
            ElseIf kh.text <> "" And bdjx.text <> "" Then
                DataTables("临时版本跟踪表").LoadFilter = filter & "需求提交时间 > '" & startdate.Value & "' And 需求提交时间 < '"  & enddate.value.AddDays(1) & "' and  客户 = '" & kh.text & "' and 博达机型 = '" & bdjx.text & "'"
            ElseIf kh.text <> "" And bdjx.text = "" Then
                DataTables("临时版本跟踪表").LoadFilter = filter & "需求提交时间 > '" & startdate.Value & "' And 需求提交时间 < '"  & enddate.value.AddDays(1) & "' and  客户 = '" & kh.text & "'"
            ElseIf kh.text = "" And bdjx.text <> "" Then
                DataTables("临时版本跟踪表").LoadFilter = filter & "需求提交时间 > '" & startdate.Value & "' And 需求提交时间 < '"  & enddate.value.AddDays(1) & "' and  博达机型 = '" & bdjx.text & "'"
            End If
    End Select
End If
DataTables("临时版本跟踪表").Load

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


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/18 17:57:00 [只看该作者]

第一句加上msgbox(e.Table.Current isnot nothing)看看

最好上例子看看

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/9/19 10:19:00 [只看该作者]

想来想去还是换一种实现方式。
在临时版本跟踪表选择了客户,肯定是加载了数据的。那么只需要startdate和enddate的值为已加载表的"需求提交时间”列的最小和最大值。
如果加载的只有一行数据,那么startdate和enddate的值都相等,都是需求提交时间。
另外需求提交时间的格式是datalongtime。startdate和enddate应该是date。

SelectedIndexChanged代码:

Dim kh As WinForm.ComboBox = e.Form.Controls("客户")
Dim startdate As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim enddate As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
DataTables("临时版本跟踪表").LoadFilter = "客户= '" & kh.value & "'"
DataTables("临时版本跟踪表").Load
startdate.Value = 
Enddate.value = 

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/9/19 12:29:00 [只看该作者]

有谁给解答回复一下。
"需求提交时间”列的最小和最大值,这个怎么弄出来?

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


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/19 14:28:00 [只看该作者]


 回到顶部