以文本方式查看主题 - 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 -- [求助]实在搞不定了,只能求高手指教 分组统计出现的问题.先上图: 把代码一放在窗口上的按钮内执行,能够正常显示筛选树,如把代码一、代码二放在窗口的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 --
麻烦帮看下,另外,想在软件开发完成后,用户可以通过自行设置筛选条件(不是在设计时预先设置),并自动加入到筛选树下的下拉组合框里,点选下拉组合框内不同的值,自动在下面的筛选树里将人员情况筛选出来(每个节点中包括有多少人),高手给个思路。先谢。
|
||||
-- 作者: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 |