Foxtable(狐表)用户栏目专家坐堂 → treeview控件和临时表的使用


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

主题:treeview控件和临时表的使用

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


加好友 发短信
等级:婴狐 帖子:91 积分:844 威望:0 精华:0 注册:2013/6/1 14:59:00
treeview控件和临时表的使用  发帖心情 Post By:2013/8/17 11:55:00 [只看该作者]

大家好,我想建一个窗体,窗体左边用treeview控件,右边用一个临时表,通过选择或单击左边的节点,右边临时表中显示筛选的结果(根据节点名称筛选),出现了一个问题,就是要先选择左边的节点,再打开该窗体,右边临时表才会显示筛选的内容,怎样先单击左边的节点后,右边的临时表的内容就变化啊,不需要重负的打开窗口,谢谢了

NodeMouseClick的事件代码如下:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("充电柜信息","编号")
Dim dtb As New DataTableBuilder("初始化表")
dtb.AddDef("充电位号", Gettype(Integer), 150)
dtb.AddDef("姓名", Gettype(String), 150)
dtb.AddDef("部门", Gettype(String),150)
dtb.AddDef("IC卡号", Gettype(String),150)
dtb.Build()
Tables("初始化窗口_Table1").datasource= Tables("初始化表")
Dim str As String =""
Dim k As Integer=Val(e.node.name)
Vars("Num")=k
Dim tb As Table
tb=Tables("人员信息")
tb.applyfilter=False
tb.Filter="[充电位]>=" & k * 100+1 & " And [充电位]<= " & k * 100+96 & " "
If tb.Rows.count>0 Then
    tb.sort="充电位"
    For i As Integer=0 To tb.rows.count-1
        tb.Position=i
        Dim dr1  As  Row =  Tables("初始化表").AddNew()
        dr1("充电位号")=tb.current("充电位")
        dr1("姓名")=tb.current("姓名")
        dr1("部门")=tb.current("部门")
        dr1("IC卡号")=tb.current("IC卡编号")
    Next
Else
    Dim t2 As Table
    t2 = Tables("初始化表")
    If t2.Rows.count>0 Then
        For i As Integer = 0 To t2.Rows.Count-1
            t2.position=i
            t2.Current.delete()
        Next
    End If
End If

窗口加载事件(AfterLoad事件)的代码如下:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("充电柜信息","编号")
Dim t1 As Table
t1=Tables("充电柜信息")
Dim t2 As Table
t2=Tables("人员信息")
Dim dtb As new DataTableBuilder("初始化表")
dtb.AddDef("充电位号",Gettype(Integer),150)
dtb.AddDef("姓名",Gettype(String),150)
dtb.AddDef("部门",Gettype(String),150)
dtb.AddDef("IC卡号",Gettype(String),150)
dtb.Build()
Tables("初始化窗口_Table1").datasource= Tables("初始化表")
Dim m As Integer=Vars("Num")
If m>0 Then
    t2.ApplyFilter=False
    t2.filter="[充电位] >= " & m * 100 +1 & " and [充电位] <= " & m * 100 +96
    If t2.Rows.count>0 Then
        t2.Sort="充电位"
        For j As Integer=0 To t2.Rows.count-1
            t2.position=j
            Dim dr As Row=Tables("初始化表").AddNew()
            dr("充电位号")=t2.current("充电位")
            dr("姓名")=t2.current("姓名")
            dr("部门")=t2.current("部门")
            dr("IC卡号")=t2.current("IC卡编号")
        Next
        Tables("初始化窗口_Table1").datasource= Tables("初始化表")
    End If
Else
    For i As Integer=0 To t1.Rows.count-1
        t1.position=i
        Dim str As String=t1.current("编号")
        Dim k As Integer=Val(str)
        t2.ApplyFilter=False
        t2.filter="[充电位] >= " & k * 100 +1 & " and [充电位] <= " & k * 100 +96
        If t2.Rows.count>0 Then
            t2.sort="充电位"
            For j As Integer=0 To t2.Rows.count-1
                t2.position=j
                Dim dr As Row=Tables("初始化表").AddNew()
                dr("充电位号")=t2.current("充电位")
                dr("姓名")=t2.current("姓名")
                dr("部门")=t2.current("部门")
                dr("IC卡号")=t2.current("IC卡编号")
            Next
            Tables("初始化窗口_Table1").datasource= Tables("初始化表")
            Exit For
        End If
    Next
End If


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/17 11:58:00 [只看该作者]

请上个例子,纸上谈兵很难帮上忙

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


加好友 发短信
等级:婴狐 帖子:91 积分:844 威望:0 精华:0 注册:2013/6/1 14:59:00
  发帖心情 Post By:2013/8/17 12:08:00 [只看该作者]

这个附件中的项目就是个例子

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


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/17 12:11:00 [只看该作者]

没有数据源,啥也办不了.你做个内部数据源或者ACCESS数据源的例子吧.

 回到顶部