Foxtable(狐表)用户栏目专家坐堂 → 未将对象应用设置到对象的实例……求解!


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

主题:未将对象应用设置到对象的实例……求解!

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


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


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


加好友 发短信
等级:一尾狐 帖子:415 积分:3628 威望:0 精华:0 注册:2016/1/1 20:20:00
  发帖心情 Post By:2016/9/17 10:42:00 [只看该作者]

更新以后已无报错,谢谢有点蓝老师!


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


加好友 发短信
等级:一尾狐 帖子:415 积分:3628 威望:0 精华:0 注册:2016/1/1 20:20:00
  发帖心情 Post By:2016/9/17 11:46:00 [只看该作者]

各位老师,目前我有个设计,是按照帮助文件当中,可以多选的筛选树这一例子做成的目录树。

然后我想问一下,在哪里插入一段代码可以自定义一个空白节点,点击就能把值为空的这一列筛选出来?

代码如下:

Dim nms As String() = {"符合要求","大会","场次分类","上次活动日期"} '指定生成目录树的各列
Dim qts As String() = {"'","'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
Dim nd As WinForm.TreeNode
For Each nd In e.node.allNodes '清除子节点的选中标记
    nd.Checked = False
Next
nd = e.Node.ParentNode
Do While nd IsNot Nothing '清除父节点的选中标记
    nd.Checked = False
    nd = nd.ParentNode
Loop
For Each nd In trv.AllNodes
    If nd.Checked  Then
        Dim rts() As String = nd.FullPath.Split("\")
        Dim val As String = ""
        For i As Integer = 0 To rts.length - 1
            If val > "" Then
                val = val & " And "
            End If
            val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
        Next
        If flt > "" Then
            flt = flt & " Or (" & val & ")"
        Else
            flt = val
        End If
    End If
Next
Tables("会员信息表").Filter  = flt


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


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

插入节点
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("订单", "产品|客户")
trv.Nodes.Insert("新节点",0)

不是很了解你的问题。树节点没有办法反映列的筛选

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3628 威望:0 精华:0 注册:2016/1/1 20:20:00
  发帖心情 Post By:2016/9/17 14:57:00 [只看该作者]

抱歉,是我没表达清楚!

上面那段代码可以通过上次活动日期这一列的内容,自动生成节点,可是如果上次活动日期为空,在目录树中并无显示,我就是想新增一个节点,将这些空值的行也可以通过节点筛选出来。


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


加好友 发短信
等级:一尾狐 帖子:415 积分:3628 威望:0 精华:0 注册:2016/1/1 20:20:00
  发帖心情 Post By:2016/9/17 15:00:00 [只看该作者]

然后,在哪里插入代码才可以达成这个目的?

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


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


1,手动生成树节点,例如这种方法

2,用一个checkbox控件设置是否加载空日期数据
Dim check As Boolean = e.Form.Controls("CheckBox1").Checked  
For Each nd In trv.AllNodes
    If nd.Checked  Then
        Dim rts() As String = nd.FullPath.Split("\")
        Dim val As String = ""
        For i As Integer = 0 To rts.length - 1
            If val > "" Then
                val = val & " And "
            End If
            If nms(i) = "上次活动日期" AndAlso check Then
                val = val & " (" & nms(i) & " = " & qts(i) & rts(i) & qts(i) & " or 上次活动日期 is null)"
            Else
                val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
            End If
        Next
        If flt > "" Then
            flt = flt & " Or (" & val & ")"
        Else
            flt = val
        End If
    End If
Next


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


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

具体上例子测试,看有没有其它办法

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3628 威望:0 精华:0 注册:2016/1/1 20:20:00
  发帖心情 Post By:2016/9/18 11:14:00 [只看该作者]

例子已上传,麻烦有点蓝老师看一下,能不能再第三级日期节点上增加一个名为“空”的,能筛选出日期列为空值的节点!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb


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


加好友 发短信
等级:一尾狐 帖子:415 积分:3628 威望:0 精华:0 注册:2016/1/1 20:20:00
  发帖心情 Post By:2016/9/19 8:50:00 [只看该作者]

求助图片点击可在新窗口打开查看

 回到顶部
总数 75 上一页 1 2 3 4 5 6 7 8 下一页