以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  后台加载目录树时过滤  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92366)

--  作者:刘林
--  发布时间:2016/11/2 8:30:00
--  后台加载目录树时过滤
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.connectionname = XX
cmd.CommandText = "SELE  CT DISTINCT 学校名称,年级,班级  From {学生信息}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt,"学校名称|年级|班级")
trv.Nodes.Insert("加载所有数据",0)

老师,请问我的用户分组用的是学生信息表中学校代码后4位,我想在后台加载目录树时只加载自己学校的年级班级,这样选择加载时时不会加载其他学校的,怎么改上面的句子,谢谢

--  作者:gryy
--  发布时间:2016/11/2 8:48:00
--  
进入的时候获取自己的自己学校的年级班级的变量
cmd.CommandText = "SELE  CT DISTINCT 学校名称,年级,班级  From {学生信息} where  学校名称,= 变量 and 年级 = 变量 and 班级 =变量 

--  作者:有点色
--  发布时间:2016/11/2 9:40:00
--  

如,这样。

 

Dim schoolName As String = "希望小学"

cmd.CommandText = "SELE  CT DISTINCT 学校名称, 年级, 班级  From {学生信息} where 学校名称 = \'" & schoolName & "\'"


--  作者:刘林
--  发布时间:2016/11/2 10:16:00
--  
非常谢谢,解决了想法了,还望多指导
--  作者:刘林
--  发布时间:2016/11/2 10:36:00
--  
Dim txt As String = e.sender.Text
Dim schoolname As String = user.group
If txt = "" Then
    DataTables("学生信息").LoadFilter =""
Else
    txt = "\'%" & txt & "%\'"
DataTables("学生信息").LoadFilter = "身份证件号 Like " & txt & " Or 学生姓名 Like " & txt & " Or 家庭成员姓名 Like " & txt & " Or 联系电话 Like " & txt & "And 学校名称 = "& schoolName
End If
DataTables("学生信息").Load

老师,我想用楼上类似方法,将textbox的查找改成上面内容,这校在后台查找时只在自己学校记录内查找加载,提示:  列名 \'内江市东兴区苏家乡中心学校\' 无效。请问是什么原因,怎么改

--  作者:有点蓝
--  发布时间:2016/11/2 10:55:00
--  
字符要加单引号

DataTables("学生信息").LoadFilter = "身份证件号 Like " & txt & " Or 学生姓名 Like " & txt & " Or 家庭成员姓名 Like " & txt & " Or 联系电话 Like " & txt & "And 学校名称 = \'"& schoolName &"\'"

--  作者:刘林
--  发布时间:2016/11/2 11:08:00
--  
我试验了下,还是能找出其他学校的学生记录呢?
--  作者:有点蓝
--  发布时间:2016/11/2 11:19:00
--  
DataTables("学生信息").LoadFilter = "(身份证件号 Like " & txt & " Or 学生姓名 Like " & txt & " Or 家庭成员姓名 Like " & txt & " Or 联系电话 Like " & txt & " ) And 学校名称 = \'"& schoolName &"\'"
--  作者:刘林
--  发布时间:2016/11/2 11:40:00
--  
哦,谢谢
Dim g As New GroupTableBuilder("学生统计", DataTables("学生信息"))
Dim dt1 As Table = Tables("学生统计_table1")
g.Groups.AddDef("学校名称")
g.Groups.AddDef("年级")
g.Groups.AddDef("班级")
g.Totals.AddDef("学生姓名",AggregateEnum.Count,"人数")
g.Totals.AddDef("性别",AggregateEnum.Count,"男")
g.FromServer = True
dt1.DataSource = g.BuildDataSource()
另请教如果要后台统计出性别为男这句怎么改

--  作者:有点色
--  发布时间:2016/11/2 11:52:00
--  

要这样改

 

Dim g As New GroupTableBuilder("学生统计", DataTables("学生信息"))
Dim dt1 As Table = Tables("学生统计_table1")
g.Groups.AddDef("学校名称")
g.Groups.AddDef("年级")
g.Groups.AddDef("班级")
g.Totals.AddDef("学生姓名",AggregateEnum.Count,"人数")
g.Totals.AddDef("性别",AggregateEnum.Count,"男")
g.Filter = "性别 = \'男\'"
g.FromServer = True
dt1.DataSource = g.BuildDataSource()
 
最后,如果你还要统计性别女或者其它的,你还需要这样做,参考 http://www.foxtable.com/webhelp/scr/2305.htm