منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مساعدة في كود TreeView
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم اريد عمل الشجرة لتصنيف المصارف وفروعها 
مثلا مصرف الصحاري فرع عبد المنعم 
يعني المصرف وتحته فروعة
علما بأن لدي 
جدولين جدول Banks والحقول Num,Name
          جدول BranchesBanks والحقول  Num,Num, Num_Bra,Name_Bra
علما بان حقل Num في جدول الفروع هو مفتاح الفرعي لاضافة الفرع
PHP كود :
Con.Close()
 
       Dim SQLstr As String "Select * From Banks"
 
       Dim AccountDataSet As New DataSet
        Con
.Open()
 
       Dim AccTableAdapter As New SqlDataAdapter(SQLstrCon)
 
       AccTableAdapter.Fill(AccountDataSet"Banks")
 
       CreateTree()
 Private Sub CreateTree()
        TreeView1.BeginUpdate()
        TreeView1.Nodes.Clear()

        Dim MainHeader As New TreeNode("شجــرة المصــارف")

        MainHeader.Tag 0

        TreeView1
.Nodes.Add(MainHeader)

        AddSubNode(MainHeader)

        TreeView1.EndUpdate()
        TreeView1.ExpandAll()
        TreeView1.Select()
    End Sub
    
Private Sub AddSubNode(ByVal Node As TreeNode)
        Con.Close()
        Dim SQLstr As String "Select * From Banks"
        Dim AccountDataSet As New DataSet
        Con
.Open()
        Dim AccTableAdapter As New SqlDataAdapter(SQLstrCon)
        AccTableAdapter.Fill(AccountDataSet"Banks")
        Dim dv1 As DataView AccountDataSet.Tables("Banks").DefaultView

        dv1
.RowFilter "Num =" CType(Node.TagInteger)

        For Each drLine As DataRowView In dv1

            Dim SubNode 
As New TreeNode(drLine("Name"))

            SubNode.Tag drLine("Num").ToString

            Node
.Nodes.Add(SubNode)

            If Not SubNode.Tag Is String.Empty Then

                AddSubNode
(SubNode)

            End If
        Next

    End Sub 
التابع المصرف
(20-01-19, 02:30 PM)Adata كتب : [ -> ]السلام عليكم اريد عمل الشجرة لتصنيف المصارف وفروعها 
مثلا مصرف الصحاري فرع عبد المنعم 
يعني المصرف وتحته فروعة
علما بأن لدي 
جدولين جدول Banks والحقول Num,Name
          جدول BranchesBanks والحقول  Num,Num, Num_Bra,Name_Bra
علما بان حقل Num في جدول الفروع هو مفتاح الفرعي لاضافة الفرع
PHP كود :
Con.Close()
 
       Dim SQLstr As String "Select * From Banks"
 
       Dim AccountDataSet As New DataSet
        Con
.Open()
 
       Dim AccTableAdapter As New SqlDataAdapter(SQLstrCon)
 
       AccTableAdapter.Fill(AccountDataSet"Banks")
 
       CreateTree()
 Private Sub CreateTree()
        TreeView1.BeginUpdate()
        TreeView1.Nodes.Clear()

        Dim MainHeader As New TreeNode("شجــرة المصــارف")

        MainHeader.Tag 0

        TreeView1
.Nodes.Add(MainHeader)

        AddSubNode(MainHeader)

        TreeView1.EndUpdate()
        TreeView1.ExpandAll()
        TreeView1.Select()
    End Sub
    
Private Sub AddSubNode(ByVal Node As TreeNode)
        Con.Close()
        Dim SQLstr As String "Select * From Banks"
        Dim AccountDataSet As New DataSet
        Con
.Open()
        Dim AccTableAdapter As New SqlDataAdapter(SQLstrCon)
        AccTableAdapter.Fill(AccountDataSet"Banks")
        Dim dv1 As DataView AccountDataSet.Tables("Banks").DefaultView

        dv1
.RowFilter "Num =" CType(Node.TagInteger)

        For Each drLine As DataRowView In dv1

            Dim SubNode 
As New TreeNode(drLine("Name"))

            SubNode.Tag drLine("Num").ToString

            Node
.Nodes.Add(SubNode)

            If Not SubNode.Tag Is String.Empty Then

                AddSubNode
(SubNode)

            End If
        Next

    End Sub 
التابع المصرف

السلام عليكم ورحمه الله وبركاته 

تفضل هذه الاكواد الازمة لك 

وده شكل الفورم بعد تعبئه الاكواد

تحياتى 

[attachment=20654]

1 - 
Public Class frmBankbBranch
      Dim TVGroup As TreeNode
    Dim TVDet As TreeNode
    Dim TVSubDet As TreeNode

2 - 
 Sub FillTree()
        tv.Nodes.Clear()
        lblMyselect.Text = "............................"
        txtSearchTree.Enabled = True
        Dim dtGroup As DataTable = FillDatatree("Select * from tblGl_Bank where BankID <> 0 order by BankID")
        For Each drGroup As DataRow In dtGroup.Rows
            TVGroup = New TreeNode(drGroup("BankID") & " - " & drGroup("BankName"))
            TVGroup.Tag = drGroup("BankID")
            tv.Nodes.Add(TVGroup)
            Details(TVGroup)
        Next
    End Sub

3 - 
 Private Sub Details(tvDetails As TreeNode)
        Dim dtDeti As DataTable = FillDatatree("Select Bank_BranchID,Bank_BranchName from tblGl_BankBranch  where Bank_ID = " & TVGroup.Tag)
        For Each drDeti As DataRow In dtDeti.Rows
            TVDet = New TreeNode(drDeti("Bank_BranchID") & " - " & drDeti("Bank_BranchName"), 1, 1)
            TVDet.Tag = drDeti("Bank_BranchID")
            tvDetails.Nodes.Add(TVDet)
        Next
    End Sub

4 - 
 Private Sub frmBankbBranch_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 FillTree()
بارك الله فيك ولكن ماهو تعريف FillDatatree من بعد اذنك
معذرة اخى الكريم 

تفضل 

 Public Function FillDatatree(SQL As String) As DataTable
        Dim dt As New DataTable
        da = New SqlDataAdapter(SQL, Conn)
        da.Fill(dt)
        Return dt
    End Function

وده موديل منفصل
تمام بس ماعرفتش الخطأ بتطلع فاضية الشجرة
بارك الله فيك نجحت الطريقة
(20-01-19, 09:35 PM)Adata كتب : [ -> ]بارك الله فيك نجحت الطريقة


احسنت ،، بالتوفيق للجميع
(20-01-19, 09:35 PM)Adata كتب : [ -> ]بارك الله فيك نجحت الطريقة

الحمد لله رب العالمين 

جعله الله فى ميزان حسنات كل اعضاء ومشرفى المنتدى الكرام 

الذى تعلمنا منه الكتير وكان منصة لكل طالب علم 

تحياتى للجميع