PDA

View Full Version : نحوه نمایش اطلاعات در TreeView



rezaiy.ali
سه شنبه 06 شهریور 1386, 11:03 صبح
با سلام
من یه برنامه نوشتم که یه درخت N تای است
من داخل دیتابیسم(Sql) یه تیبل دارم که درایه 3 تا فیلد است که فیلد اول کلید اصلی(شماره رکورد) است فیلد دوم شماره رکورد پدر رکورد فرزند را نگاه داری می کند و فیلد سوم هم نام فرزند را نگاه درای می کند.
حال این اطلاعات را چطور می تونم که در داخل یهTreeView که هر گره پدر فرزنداشت در نود ها دیده بشه؟ در ضمن من نمی دونم که چطور Sp این برنامه را برای نمایش اطلاعات پدر و فرزند باید بنویسم:متفکر:
لطفا راهنمایی بفرمایید
با تشکر

mohandesan
سه شنبه 06 شهریور 1386, 11:36 صبح
من هم همین سوال رو دارم ولی می خوام از توی فایل txt بخونم اگه از دوستان کسی می دونه کمک کنه لطفا

SabaSabouhi
سه شنبه 06 شهریور 1386, 12:57 عصر
با سلام
باید درخت خودتون رو به شکل بازگشتى پر کنید.

صبا صبوحى

ghafoori
سه شنبه 06 شهریور 1386, 17:11 عصر
دوست عزیز ببینید پاسخ من در این پست به درد شما می خورد
http://barnamenevis.org/forum/showthread.php?t=77087

Hossis
سه شنبه 11 دی 1386, 22:11 عصر
این که راحته
من یه پروژه با 4 جدول به هم مرتبط نوشته ام
اگه وقت کنم برات می فرستم

البته کد اصلی رو می نویسم
خودت فیلدهای جدول رو راست و ریستش کن


------------------------------------------------------------------



#Region "TVLoad"
Private Function TTitr()
Dim Ad, Cap As String
Dim I As Integer
rs.Open("Titr", db, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
rs.MoveFirst()
For I = 0 To rs.RecordCount
If Not rs.EOF Then
If Not IsDBNull(rs.Fields("Ad").Value) Then Ad = rs.Fields("Ad").Value.ToString
If Not IsDBNull(rs.Fields("Caption").Value) Then Cap = rs.Fields("Caption").Value
TV.Nodes.Add(, , "T" & Ad, Cap, "bookclose", "bookopen")
End If
If Not rs.EOF Then rs.MoveNext()
Next
rs.Close()
End Function


Private Sub TvBand()
Dim I As Short
Dim Gro, Aad As String
Dim Cap As String
' nodx = New TreeNode


' On Error GoTo TVHead_Error
Line1:
rs.Open("[Band]", db, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
rs.MoveFirst()
For I = 0 To rs.RecordCount
If rs.EOF Then Exit For
If Not IsDBNull(rs.Fields("Id").Value) Then Gro = rs.Fields("Id").Value.ToString
If Not IsDBNull(rs.Fields("Ad").Value) Then Aad = rs.Fields("Ad").Value.ToString
If Not IsDBNull(rs.Fields("Caption").Value) Then Cap = rs.Fields("Caption").Value


TV.Nodes.Add("T" & Aad, 4, "B" & Gro, Cap, "bc", "bo")
' TV.Nodes("B" & Gro).TreeView.Sort()
If Not rs.EOF Then rs.MoveNext()
Next
rs.Close()
On Error GoTo 0
Exit Sub
TVHead_Error:
If Err.Number = 3705 Then
Err.Clear()
rs.Close()
GoTo Line1
End If
End Sub
Private Sub TvHead()
Dim I As Short
Dim Gro, Aad As String
Dim Cap As String
Dim Ttr As String


Gro = ""
Aad = ""
Cap = ""
' On Error GoTo TVHead_Error
Line1:
rs.Open("[Groub]", db, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
rs.MoveFirst()
For I = 0 To rs.RecordCount
If rs.EOF Then Exit For
If Not IsDBNull(rs.Fields("Groub").Value) Then Gro = rs.Fields("Groub").Value.ToString
If Not IsDBNull(rs.Fields("ID").Value) Then Aad = rs.Fields("ID").Value.ToString
If Not IsDBNull(rs.Fields("Caption").Value) Then Cap = rs.Fields("Caption").Value
If Not rs.EOF Then rs.MoveNext()
' nodx = TV.Nodes("T" & Aad).Nodes.Add("B" & Gro, Cap, "bookopen", "bookclose")
TV.Nodes.Add("B" & Aad, 4, "G" & Gro, Cap, "gc", "go")
Next
rs.Close()
On Error GoTo 0
Exit Sub
TVHead_Error:
If Err.Number = 3705 Then
Err.Clear()
rs.Close()
GoTo Line1
End If


Exit Sub


End Sub
Private Sub TVCaption()
Dim F As Byte
Dim I As Short
Dim Cap, Gro, Rel As String


' On Error GoTo TVCaption_Error
Line1:
rs.Open("[code]", db, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
For I = 0 To rs.RecordCount
If rs.EOF Then Exit For
If Not IsDBNull(rs.Fields("Id").Value) Then Gro = rs.Fields("Id").Value
If Not IsDBNull(rs.Fields("Head").Value) Then Cap = rs.Fields("Head").Value


If Not IsDBNull(rs.Fields("Groub").Value) Then Rel = rs.Fields("Groub").Value : F = 3
If Not IsDBNull(rs.Fields("Band").Value) Then Rel = rs.Fields("Band").Value : F = 2
If Not IsDBNull(rs.Fields("Titr").Value) Then Rel = rs.Fields("Titr").Value : F = 1
If Not rs.RecordCount = 0 Then
Select Case F
Case 1 'SubTitr
TV.Nodes.Add("T" & Rel, 4, "C" & Gro, Cap, "m", "sel")
Case 2 'SubBand
TV.Nodes.Add("B" & Rel, 4, "C" & Gro, Cap, "m", "sel")
Case 3 'SubGroub
TV.Nodes.Add("G" & Rel, 4, "C" & Gro, Cap, "m", "sel")
End Select
If rs.Fields("User").Value = True Then TV.Nodes("C" & Gro).ForeColor = QBColor(9)
End If
If Not rs.EOF Then rs.MoveNext()
Next
rs.Close()
On Error GoTo 0
Exit Sub
TVCaption_Error:
If Err.Number = 3705 Then
Err.Clear()
rs.Close()
GoTo Line1
End If


End Sub
#End Region