以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]目录树代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44632) |
-- 作者:cqlwsam -- 发布时间:2014/1/5 17:36:00 -- [求助]目录树代码 想实现如图的目录树,代码如何写? 一级目录是收治科室,来自表“基本信息” 二级目录是患者姓名,也来自表“基本信息” 三级目录是各种资料,包括:地址信息、病史资料、体征资料、检验资料、检查资料、其他资料 四级目录是各种资料的细分,病史资料包括:家族史、手术治疗史等等,体征资料包括:系统检查、专科检查等;检验资料包括血液分析、尿液分析等等 五级目录是各种资料再细分,如:血液分析将从表“血液分析”按患者PatientsID筛选来的数据,如果有则目录树显示检查日期,如果无,则无五级目录,但双击后可以添加血液分析结果。 如何用代码搞定?
|
-- 作者:lsy -- 发布时间:2014/1/5 17:52:00 -- 目录树的缺点,是层级多,不像表,一目了然。 你这目录树,共有五级,操作人员会不高兴的。 |
-- 作者:cqlwsam -- 发布时间:2014/1/5 19:38:00 -- 因为目前医院使用的就这样!一级目录会通过授权,只显示自己所属的科室,这样就只有四级目录了。 [此贴子已经被作者于2014-1-5 19:40:25编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/1/5 20:19:00 -- 如果是特制的目录树,就只能用递归自己做了,建议你还是直接用列去生成,简单方便。 |
-- 作者:cqlwsam -- 发布时间:2014/1/5 21:10:00 -- 使用如下代码,得到了三级目录。 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree("基本情况","收治科室|姓名") trv.StopRedraw \'停止绘制目录树 For Each nd As WinForm.TreeNode In trv.AllNodes \'遍历所有节点 If nd.level=1 Then nd.Text = nd.text & "(" & nd.DataRow("patientsID") & ")" nd.Nodes.Add("地址信息","地址信息","007.png") nd.nodes.add("基本信息") nd.nodes.add("地址信息") nd.nodes.add("病史资料","病史资料","001.png") nd.nodes.add("体检资料") nd.nodes.add("检验资料") nd.nodes.add("检查资料") nd.nodes.add("其它资料") End If Next trv.ResumeRedraw \'恢复绘制目录树 在三级目录下再添加子目录就搞不懂了。指点一下。谢谢!
|
-- 作者:有点甜 -- 发布时间:2014/1/5 21:47:00 -- 比如,代码可以这样写 Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree("基本情况","收治科室|姓名") trv.StopRedraw \'停止绘制目录树 For Each nd As WinForm.TreeNode In trv.AllNodes \'遍历所有节点 If nd.level=1 Then nd.Text = nd.text & "(" & nd.DataRow("patientsID") & ")" Dim node As WinForm.TreeNode Dim cnode As WinForm.TreeNode Dim ccnode As WinForm.TreeNode node = nd.Nodes.Add("地址信息","地址信息","007.png") cnode = node.Nodes.Add("我是第四级") ccnode = cnode.Nodes.Add("我是第五级") End If Next |
-- 作者:cqlwsam -- 发布时间:2014/1/5 21:56:00 -- 我看了一个例子: Dim nd As WinForm.TreeNode tr = Forms("窗口1").Controls("TreeView1") nd = Tr.Nodes.Add("Root1","根节点一") nd.Nodes.Add("Sub1","子节点一") nd.Nodes.Add("Sub2","子节点二") nd = Tr.Nodes.Add("Root2","根节点二") nd.Nodes.Add("Sub3","子节点三") nd.Nodes.Add("Sub4","子节点四") 外面在加一层循环,我试了一下,不行。
|
-- 作者:有点甜 -- 发布时间:2014/1/5 22:05:00 -- 看6楼,不是是可以任意建立的么? |
-- 作者:cqlwsam -- 发布时间:2014/1/5 22:11:00 -- 按您的方法可以任意建立。谢谢! |