以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]实在搞不定了,只能求高手指教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46817)

--  作者:花开的声音
--  发布时间:2014/2/28 8:47:00
--  [求助]实在搞不定了,只能求高手指教
分组统计出现的问题.先上图:


图片点击可在新窗口打开查看此主题相关图片如下:图四.jpg
图片点击可在新窗口打开查看
图四是筛选树正常显示的情况图。

图片点击可在新窗口打开查看此主题相关图片如下:图二.jpg
图片点击可在新窗口打开查看
图二是不能正常显示的图


图片点击可在新窗口打开查看此主题相关图片如下:图三.jpg
图片点击可在新窗口打开查看
图三是把代码二放在窗口内的按钮上执行,出现的错误提示。

把代码一放在窗口上的按钮内执行,能够正常显示筛选树,如把代码一、代码二放在窗口的afterloae,登录时分别出现图一和图六所示的错误提示(图一、图六见二楼)。

代码一是求高手指教的,代码二是按帮助文件写的。

代码一:

Dim dt As DataTable
Dim b As New GroupTableBuilder("统计表1",DataTables("基层法律服务人员信息表"))
b.Groups.AddDef("主管司法局")
b.Groups.AddDef("法律服务所")
b.Groups.AddDef("姓名")
dt = b.Build(False)
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

trv.Nodes.Clear
trv.BuildTree(dt,"主管司法局|法律服务所|姓名")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Select Case nd.Level
        Case 0
            nd.Text = nd.text & "(" & dt.Compute("count(姓名)","主管司法局 = \'" & nd.DataRow("主管司法局") & "\'") & "人)"
        Case 1
            nd.Text = nd.text & "(" & dt.Compute("count(姓名)","主管司法局 = \'" & nd.DataRow("主管司法局") & "\' And 法律服务所 = \'" & nd.DataRow("法律服务所") & "\'") & "人)"
    End Select
Next
trv.Nodes.Insert("全部","全部(" & dt.Compute("count(姓名)") & "人)",0)
trv.ResumeRedraw


代码二:
Dim dt As DataTable
Dim b As New GroupTableBuilder("统计表1",DataTables("基层法律服务人员信息表"))
b.Groups.AddDef("主管司法局")
b.Groups.AddDef("法律服务所")
b.Groups.AddDef("姓名")
dt = b.Build(False)
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
\'trv.Nodes.Clear
trv.BuildTree(dt,"主管司法局|法律服务所|姓名")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Dim sfj As String = nd.DataRow("主管司法局")
    Dim fws As String = nd.DataRow("法律服务所")

    Select Case nd.Level
        Case 0
            nd.Text = nd.text & "(" & dt.Compute("count(姓名)","主管司法局 = " & sfj) &  "人)"
        Case 1
            nd.Text = nd.text & "(" & dt.Compute("count(姓名)","主管司法局 = " & sfj & " And  法律服务所 = " & fws) & "人)"
    End Select
Next
trv.Nodes.Insert("全部","全部(" & dt.Compute("count(姓名)") & "人)",0)
trv.ResumeRedraw



--  作者:花开的声音
--  发布时间:2014/2/28 8:49:00
--  
一天只能传三张呵


--  作者:Bin
--  发布时间:2014/2/28 8:50:00
--  
没有这个列,或者列名不对.
--  作者:lsy
--  发布时间:2014/2/28 9:01:00
--  
Select Case nd.Level
        Case 0
            nd.Text = nd.text & "(" & dt.Compute("count(姓名)","主管司法局 = \'" & sfj &  "\'") & "人)"
        Case 1
            nd.Text = nd.text & "(" & dt.Compute("count(姓名)","主管司法局 = \'" & sfj & "\' And  法律服务所 = \'" & fws & "\'") & "人)"
    End Select
[此贴子已经被作者于2014-2-28 9:01:57编辑过]

--  作者:花开的声音
--  发布时间:2014/2/28 11:39:00
--  
按lsy的代码改了,登录时还是出错呢。但在窗体里执行可以。
--  作者:lsy
--  发布时间:2014/2/28 11:58:00
--  
那就还有其他原因,发例子看看。
--  作者:花开的声音
--  发布时间:2014/2/28 12:15:00
--  
上传失败
--  作者:花开的声音
--  发布时间:2014/2/28 12:23:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:基层司法行政信息管理系统.rar


麻烦帮看下,另外,想在软件开发完成后,用户可以通过自行设置筛选条件(不是在设计时预先设置),并自动加入到筛选树下的下拉组合框里,点选下拉组合框内不同的值,自动在下面的筛选树里将人员情况筛选出来(每个节点中包括有多少人),高手给个思路。先谢。

--  作者:don
--  发布时间:2014/2/28 13:05:00
--  
Dim s1,s2,flt As String
s1 = "主管司法局|法律服务所|姓名"
Dim v1() As String=s1.split("|")

Dim dt As DataTable
Dim b As New GroupTableBuilder("统计表1",DataTables("基层法律服务人员信息表"))
b.Groups.AddDef(v1(0))
b.Groups.AddDef(v1(1))
b.Groups.AddDef(v1(2))
dt = b.Build(False)
Dim trv As WinForm.TreeView = Forms("窗口2").Controls("TreeView1")
\'trv.Nodes.Clear
trv.BuildTree(dt,s1)
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes   
    Select Case nd.Level
        Case 0,1
            flt = v1(0)  &  " =\'" & nd .FullName.replace("\\", "\' and " & v1(1) &  " = \'")  & "\'"
            nd.Text = nd.text & "(" & dt.Compute("count(姓名)",flt) &  "人)"
    End Select
Next
trv.Nodes.Insert("全部","全部(" & dt.Compute("count(姓名)") & "人)",0)
trv.ResumeRedraw

--  作者:花开的声音
--  发布时间:2014/2/28 13:35:00
--  
按七楼的改下,登录还是出错同样问题
图片点击可在新窗口打开查看此主题相关图片如下:图七.jpg
图片点击可在新窗口打开查看