以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 目录树 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=92095) |
-- 作者:kaituozhe -- 发布时间:2016/10/26 9:30:00 -- 目录树 Dim Filter As String 以上代码是那里错了?点击“显示所有行”时提示如下:
.NET Framework 版本:2.0.50727.5485
|
-- 作者:有点蓝 -- 发布时间:2016/10/26 9:44:00 -- 目录树是怎么生成的?应该是e.Node.DataRow 是空的 |
-- 作者:kaituozhe -- 发布时间:2016/10/26 9:59:00 -- 那一句代码有问题呀
|
-- 作者:kaituozhe -- 发布时间:2016/10/26 10:03:00 -- 那里有问题,怎么改?都没有说清楚呀 |
-- 作者:有点蓝 -- 发布时间:2016/10/26 10:13:00 -- 先回答我问题好不好?目录树是怎么生成的?我明确问题在哪才能给你答案! 如果e.Node.DataRow 是空的就加个判断 Dim Filter As String Dim d1 As Date Dim d2 As Date Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行 if dr is nothing then return Dim Year As Integer = e.Node.DataRow("年") If e.Node.Text <> "显示所有行" Then Select Case e.Node.Level Case 0 .... 按理这样的用法e.Node.DataRow 也不会是空的,所以也有可能是触发的其它事件的错误? 最简单的加个代码msgbox(dr is nothing) 也可以自己判断是不是这里的问题
|
-- 作者:kaituozhe -- 发布时间:2016/10/26 11:00:00 -- Dim cmd As New SQLCom mand 目录树生成的代码
|
-- 作者:有点蓝 -- 发布时间:2016/10/26 11:21:00 -- Dim Filter As String Dim d1 As Date Dim d2 As Date If e.Node.Text <> "显示所有行" Then Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行 Dim Year As Integer =dr("年") Select Case e.Node.Level Case 0 Filter = "[公司名称] = \'" & dr("公司名称") & "\'" Case 1 Filter = "[公司名称] = \'" & dr("公司名称") & "\' And [科目编号] = \'" & dr("科目编号") & "\'" Case 2 d1 = New Date(Year,1,1) \'取得该年的第一天 d2 = new Date(Year,12,31) \'取得该年的最后一天 Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# and [公司名称] = \'" & dr("公司名称") & "\' And [科目编号] = \'" & dr("科目编号") & "\'" End Select End If Tables("明细分类_table1").Filter = Filter
|
-- 作者:kaituozhe -- 发布时间:2016/10/26 11:24:00 -- 可以了,谢谢 |