'TreeView Functions
'------------------
Public Sub Create_Tree()
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaSet As OraDynaSet
Dim OraFields As OraFields
Dim NewNodeKey As Node
Dim PSCPKEY As String
Dim txtNewNodeKey As String
Dim ProNodeCheck As String
Dim ProNodeKey As String
' Create the OraSession Object. The argument to CreateObject is the
' name by which theOraSession object is known to the OLE system.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
' Create the OraDatabase Object by opening a
' connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("QSDB", "QSDB_USER/5star5", 0&)
' Create the OraDynaset Object.
Set OraDynaSet = OraDatabase.CreateDynaset("select * from PS where PS_IMKEY = '" & gbtxtPartName & "'", 0&)
Set OraFields = OraDynaSet.Fields
'Create Root Node and it's children
OraDynaSet.MoveFirst
tvPS.Nodes.Clear
tvPS.Nodes.Add , , gbtxtPartName & "_PART", gbtxtPartName
Do While Not OraDynaSet.EOF
Set NewNodeKey = tvPS.Nodes.Add((gbtxtPartName & "_PART"), tvwChild, gbtxtPartName & "_PART" & "_" & OraFields("PS_CPKEY").Value & "_MAT", OraFields("PS_CPKEY").Value)
PSCPKEY = OraFields("PS_CPKEY").Value
txtNewNodeKey = NewNodeKey.Key
ProNodeCheck = OraFields("PS_CPKEY").Value
ProNodeKey = NewNodeKey.Key
Call Check_Node_Pro(ProNodeCheck, ProNodeKey)
Call Check_Node_Mat(PSCPKEY, txtNewNodeKey) 'Calls function to test a node for children nodes
OraDynaSet.MoveNext
Loop
ProNodeCheck = gbtxtPartName
ProNodeKey = gbtxtPartName & "_PART"
Call Check_Node_Pro(ProNodeCheck, ProNodeKey)
Call Select_Expand 'Calls the function used to expand the parent node
Call Assign_Icons 'Calls the function used to assign all icons to the nodes
End Sub
Private Sub Check_Node_Mat(ByVal PSCPKEY As String, ByVal txtNewNodeKey As String)
Dim OraSession1 As OraSession
Dim OraDatabase1 As OraDatabase
Dim OraDynaSet1 As OraDynaSet
Dim OraFields1 As OraFields
Dim NewNodeKey1 As Node
Dim txtParentNode As String
Dim PSCPKEY1 As String
Dim txtNewNodeKey1 As String
Dim ProNodeCheck As String
Dim ProNodeKey As String
Set OraSession1 = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase1 = OraSession1.OpenDatabase("QSDB", "QSDB_USER/5star5", 0&)
Set OraDynaSet1 = OraDatabase1.CreateDynaset("select PS_IMKEY,PS_CPKEY from PS where PS_IMKEY = '" & PSCPKEY & "'", 0&)
Set OraFields1 = OraDynaSet1.Fields
If OraFields1.Count = 0 Then 'Checks to see if the node has children nodes
Exit Sub 'If no children nodes, exit sub
Else
OraDynaSet1.MoveFirst 'If children nodes exist, create
Do While Not OraDynaSet1.EOF
txtParentNode = tvPS.Nodes(tvPS.Nodes.Count).Parent.Text
Set NewNodeKey1 = tvPS.Nodes.Add((txtNewNodeKey), tvwChild, txtNewNodeKey & "_" & OraFields1("PS_CPKEY") & "_MAT", OraFields1("PS_CPKEY"))
PSCPKEY1 = OraFields1("PS_CPKEY")
txtNewNodeKey1 = NewNodeKey1.Key
ProNodeCheck = OraFields1("PS_CPKEY").Value
ProNodeKey = NewNodeKey1.Key
Call Check_Node_Pro(ProNodeCheck, ProNodeKey)
Call Check_Child_Node_Mat(PSCPKEY1, txtNewNodeKey1) 'Check new node for children
OraDynaSet1.MoveNext
Loop
End If
End Sub
Private Sub Check_Child_Node_Mat(ByVal PSCPKEY1 As String, ByVal txtNewNodeKey1 As String)
Dim OraSession2 As OraSession
Dim OraDatabase2 As OraDatabase
Dim OraDynaSet2 As OraDynaSet
Dim OraFields2 As OraFields
Dim NewNodeKey2 As Node
Dim txtParentNode1 As String
Dim PSCPKEY As String
Dim txtNewNodeKey As String
Dim ProNodeCheck As String
Dim ProNodeKey As String
Set OraSession2 = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase2 = OraSession2.OpenDatabase("PKDEMO", "pkdemo/pkdemo", 0&)
Set OraDynaSet2 = OraDatabase2.CreateDynaset("select PS_IMKEY,PS_CPKEY from PS where PS_IMKEY = '" & PSCPKEY1 & "'", 0&)
Set OraFields2 = OraDynaSet2.Fields
If OraFields2.Count = 0 Then 'Checks nodes for children
Exit Sub 'If no children nodes, exit sub
Else
OraDynaSet2.MoveFirst 'If children nodes exist, create
Do While Not OraDynaSet2.EOF
txtParentNode1 = tvPS.Nodes(tvPS.Nodes.Count).Parent.Text
Set NewNodeKey2 = tvPS.Nodes.Add((txtNewNodeKey1), tvwChild, txtNewNodeKey1 & "_" & OraFields2("PS_CPKEY") & "_MAT", OraFields2("PS_CPKEY"))
PSCPKEY = OraFields2("PS_CPKEY")
txtNewNodeKey = NewNodeKey2.Key
ProNodeCheck = OraFields2("PS_CPKEY").Value
ProNodeKey = NewNodeKey2.Key
Call Check_Node_Pro(ProNodeCheck, ProNodeKey)
Call Check_Node_Mat(PSCPKEY, txtNewNodeKey) 'Check for children nodes
OraDynaSet2.MoveNext
Loop
End If
End Sub
Private Sub Check_Node_Pro(ByVal ProNodeCheck As String, ByVal ProNodeKey As String)
Dim OraSession3 As OraSession
Dim OraDatabase3 As OraDatabase
Dim OraDynaSet3 As OraDynaSet
Dim OraFields3 As OraFields
Dim NewNodeKey3 As Node
Dim txtParentNode3 As String
Set OraSession3 = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase3 = OraSession3.OpenDatabase("QSDB", "QSDB_USER/5star5", 0&)
Set OraDynaSet3 = OraDatabase3.CreateDynaset("select RT_WCKEY,RT_OP_NUM from RT where RT_IMKEY = '" & ProNodeCheck & "'", 0&)
Set OraFields3 = OraDynaSet3.Fields
If OraFields3.Count = 0 Then 'Checks to see if the node has children nodes
Exit Sub 'If no children nodes, exit sub
Else
OraDynaSet3.MoveFirst 'If children nodes exist, create
Do While Not OraDynaSet3.EOF
txtParentNode3 = tvPS.Nodes(tvPS.Nodes.Count).Parent.Text
Set NewNodeKey3 = tvPS.Nodes.Add((ProNodeKey), tvwChild, ProNodeKey & "_" & OraFields3("RT_WCKEY") & OraFields3("RT_OP_NUM") & "_PRO", OraFields3("RT_WCKEY"))
OraDynaSet3.MoveNext
Loop
End If
End Sub