父节点-树状结构展示采购单Treeview 第二季

问题描述

树状结构展示采购单Treeview 第二季

第一季没有得到答案,现在想到能否把父节点定义为 PO号,子节点为PO号+产品号,这样的话,每个子节点可以找到对应的父节点。。请高手列出详细方案,在线死等。

解决方案

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dt As New DataTable
        '模拟数据(要求按采购单排序)
        dt.Columns.Add("采购单", GetType(String))
        dt.Columns.Add("产品", GetType(String))
        dt.Rows.Add("PO150601", "铅笔")
        dt.Rows.Add("PO150601", "橡皮擦")
        dt.Rows.Add("PO150602", "笔记本")
        dt.Rows.Add("PO150603", "")
        '
        Dim nd1 As TreeNode = Nothing
        For Each dr As DataRow In dt.Rows
            If (nd1 Is Nothing) OrElse (nd1.Name <> dr(0)) Then
                nd1 = Me.TreeView1.Nodes.Add(dr(0), Mid(dr(0), 3))
            End If
            If Not String.IsNullOrEmpty(dr(1)) Then
                nd1.Nodes.Add(dr(1), dr(1))
            End If
        Next
    End Sub

注:VB.Net 中 TreeView 相同父节点下的兄弟是一个 Nodes 集合,没有全体节点的集合。所以 Key 不需要组合。
每个子节点的 Parent 就是父节点,不需要用 Key 去查找父节点了。

解决方案二:

treenode和此无关,首先它的nodes.Add方法你要会用。
至于你想显示什么,直接查询就可以了。
先用distinct查询出唯一的采购单号,然后再遍历每个采购单号,找到商品,添加到子节点上。
你可以将采购单的id查询出来放在节点的tag属性里。

解决方案三:

建议你把完整的代码打包放在百度网盘,我才好给你具体的代码。

解决方案四:

我的代码是不正确的,因为思路都还没有,还是贴上去,请大家修正。谢谢
Private Function SearchNode(ByVal Key As String) As TreeNode
If Key.Length = 1 Then
Return Me.TreeView1.Nodes(Key)
Else
Return SearchNode(Key.Substring(0, Key.Length - 2)).Nodes(Key)
End If
End Function
Private Sub SampleInst_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DateTimePicker1.Value = DateTime.Now.AddMonths(-1)
mycn.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=blue;uid=sa;pwd=0000"
mycommand.CommandText = " select samid,SamState,slState,(select procode from product(nolock) where Proid=Slproid) as Pcode,(select proName from product(nolock) where Proid=Slproid) as PName from Sample left join Samplelist on samid=slsamID and SamCdate between '" & DateTimePicker1.Value & "' and '" & DateTimePicker2.Value & "' and SamID like '%" & ComboBox1.Text & "%' order by samcdate desc,SamID desc,Pcode asc"
mycommand.Connection = mycn
Try
mycn.Open()
Dim mysqlreader As Data.SqlClient.SqlDataReader = mycommand.ExecuteReader
While mysqlreader.Read()
Dim key As String = mysqlreader.GetString(0)
Dim key1 As String = mysqlreader.GetString(0) & mysqlreader.GetString(3)
Dim text As String = mysqlreader.GetString(3) & "_" & mysqlreader.GetString(4)
If key = 1 Then
TreeView1.Nodes.Add(key, text)
Else
Dim parentkey As String = key.Substring(0, key.Length - 2)
SearchNode(parentkey).Nodes.Add(key, text)
End If
End While
Catch ex As Exception

    Finally
        mycn.Close()
    End Try
End Sub

解决方案五:


Private Sub SampleInst_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DateTimePicker1.Value = DateTime.Now.AddMonths(-1)
mycn.ConnectionString = "Data Source=127.0.0.1;Initial Catalog=blue;uid=sa;pwd=0000"
Dim mysql As String = " select samid,SamState,slState,(select procode from product(nolock) where Proid=Slproid) as Pcode,(select proName from product(nolock) where Proid=Slproid) as PName from Sample left join Samplelist on samid=slsamID and SamCdate between '" & DateTimePicker1.Value & "' and '" & DateTimePicker2.Value & "' and SamID like '%" & ComboBox1.Text & "%' order by samcdate desc,SamID desc,Pcode asc"
Dim mycom As New SqlClient.SqlCommand(mysql, mycn)
Dim dt As New DataTable
Try
mycn.Open()
myadapter.SelectCommand = mycom
myadapter.Fill(dt)
Dim nd1 As TreeNode = Nothing
For Each dr As DataRow In dt.Rows
If (nd1 Is Nothing) OrElse (nd1.Name <> dr(0)) Then
nd1 = Me.TreeView1.Nodes.Add(dr(0), Mid(dr(0), 1))
End If
If Not String.IsNullOrEmpty(dr(3)) Then
nd1.Nodes.Add(dr(3), dr(3))
End If
Next
Catch ex As Exception

    Finally
        mycn.Close()
    End Try
End Sub
时间: 2024-12-03 06:36:48

父节点-树状结构展示采购单Treeview 第二季的相关文章

treeview-树状结构展示采购单Treeview

问题描述 树状结构展示采购单Treeview 请热心的帮忙,如果有VB.NET或者C#代码就最好了,不胜感激. 解决方案 不知道你什么地方不懂,是不会查询数据库还是不会使treeview除非给出你现有的代码,否则没法帮你写.你有不懂可以接着问. 解决方案二: 就你的数据结构,一共两层.首先用select distinct(采购单) from table可以得到第一层的id添加节点.然后循环每个节点,用select * from 表 where 采购单=node.Text 可以得到这个节点下的第二

treeview-树状结构展示采购单Treeview 第三季

问题描述 树状结构展示采购单Treeview 第三季 在第二季中,由于tiger_zhao 的回归,使剧情发生重大改变.下面贴出最新状况,希望这一季中能解决产品号Pcode为空时候引起的问题. 解决方案 在数据查询上面控制,如果为空,用其他值代替...解决了..谢谢. 解决方案二: 问题补充代码: Public Class SampleInst Dim mycn As New SqlClient.SqlConnection Dim myadapter As New SqlClient.SqlDa

sql 树 汇总 子汇总父-sql 树状结构 向下汇总

问题描述 sql 树状结构 向下汇总 有结构:p_id m_id |num0 1 |81 2 |22 3 |1 3 4 |1需用语句快速实现:p_id m_id |num sum |0 1 |81 2 |2 82 3 |1 103 4 |1 11

树状结构 求和-sql 按树状结构 分组求和 父节点包括所有字节点的值

问题描述 sql 按树状结构 分组求和 父节点包括所有字节点的值 有一个表存树状结构: 值 上级节点 所属级数 001 * 1 00101 001 2 00102 001 2 0010203 00102 3 ... 00103 001 2 ... 在其他表中存储对应的数据,有[金额]和[数状表的字节点值]. 如: 100.00 / 0010203 现在想做出求和的效果如下 码值 合计 001 161 00101 61 0010101 50 0010101 11 00102 100 0010203

在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构

转自http://www.cnblogs.com/chenxizhang/archive/2011/06/22/2087692.html   这是项目中一个页面上的一个功能.我们需要在界面上通过一个TreeView控件显示一个递归的树状结构,也就是说会很多层嵌套的节点,而且层数是不确定的. 这个功能,可以通过HierarchicalDataTemplate来很方便地实现1. 业务实体 作为举例,我定义了一个大家都很熟悉的Folder类型,即文件夹.我们都知道,文件夹又可以包含子文件夹,而且可以多

Oracle存储过程 树状结构的存储与展示

树状结构的存储与展示  drop table article;    create table article  (    id number primary key,    cont varchar2(4000),    pid number,    isleaf number(1),  --0 代表非叶子节点,1代表叶子节点 叶子节点:节点下面没有其他子节点    alevel number(2)  );    insert into article values (1, '蚂蚁大战大象',

由简入繁实现Jquery树状结构的方法(推荐)_jquery

在项目中,我们经常会需要一些树状结构的样式来显示层级结构等,比如下图的样式,之前在学.net的时候可以直接拖个服务端控件过来直接使用非常方便.但是利用Jquery的一些插件,也是可以实现这些效果的,比如说Jquery.treeview.js插件. 下面就直入主题,开始从简入繁的分析怎么使用treeview插件,从已知的知识开始轻松入手,让树状结构唾手可得. 显示树状结构的几个实现步骤: 一.HTML做初始静态原型. 首先通过<ul></ul><li></li>

C#使用Jquery zTree实现树状结构显示 异步数据加载_C#教程

C#使用Jquery zTree实现树状结构显示_异步数据加载 JQuery-Ztree下载地址:https://github.com/zTree/zTree_v3 JQuery-Ztree数结构演示页面:  http://www.treejs.cn/v3/demo.php 关于zTree的详细解释请看演示页面,还有zTree帮助Demo.  下面简要讲解下本人用到的其中一个实例(直接上关键代码了): 异步加载节点数据:  A-前台: <link href="zTree_v3-master

实现树状结构的两种方法

实现树状结构的两种方法1.递归法递归是指在函数中显式的调用它自身.利用递归法实现树状结构的特点是写入数据速度较快,显示速度较慢(在树的分支/层次较多的情况下尤其明显).适用与写入数据量大,树的结构复杂的情况下.数据结构(以mysql为例) 代码:--------------------------------------------------------------------------------CREATE TABLE `tree1` ( `id` tinyint(3) unsigned