以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- CurrentChanged (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90625) |
-- 作者:huhu -- 发布时间:2016/9/18 16:46:00 -- CurrentChanged 当需求明细表为空的时候就会报下面的错误。 .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 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2016/9/18 17:21:00 -- 还是报同样的错。 |
-- 作者:有点蓝 -- 发布时间:2016/9/18 17:29:00 -- 那就不只是这里的代码问题,检查是否触发了其它事件 |
-- 作者:huhu -- 发布时间: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
|
-- 作者:有点蓝 -- 发布时间:2016/9/18 17:57:00 -- 第一句加上msgbox(e.Table.Current isnot nothing)看看 最好上例子看看
|
-- 作者:huhu -- 发布时间: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 -- 发布时间:2016/9/19 12:29:00 -- 有谁给解答回复一下。 "需求提交时间”列的最小和最大值,这个怎么弄出来?
|
-- 作者:有点蓝 -- 发布时间:2016/9/19 14:28:00 -- 参考:http://www.foxtable.com/webhelp/scr/0393.htm |