You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
8.3 KiB
195 lines
8.3 KiB
Imports C1.Win.C1TrueDBGrid
|
|
Imports System
|
|
Imports System.Data
|
|
Imports System.Data.SqlTypes
|
|
Imports System.Data.SqlClient
|
|
|
|
Public Class Form2
|
|
Dim xvertragspartnernr As String = 2
|
|
|
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
|
|
Dim dt As New DataTable
|
|
dt = Me.Get_SubStruktur(0, 2, 1)
|
|
Me.ComboBoxTree1.TreeView.Nodes.Clear()
|
|
Me.ComboBoxTree1.TreeView.Nodes.Add("Test")
|
|
Me.Update_Node(dt, Me.ComboBoxTree1.TreeView.Nodes(0), "Vertragspartner", 1)
|
|
Me.ComboBoxTree1.TreeView.ExpandAll()
|
|
End Sub
|
|
|
|
|
|
''' <summary>
|
|
''' Parent-Beziehung herstellen und Struktur abfüllen
|
|
''' </summary>
|
|
''' <param name="oSourceData"></param>
|
|
''' <param name="node"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub Update_Node(ByVal oSourceData As DataTable, ByRef node As TreeNode, ByVal type As String, ByVal Details As Integer)
|
|
If Not (oSourceData Is Nothing) Then
|
|
Dim oView As DataView = oSourceData.DefaultView
|
|
Dim oTable As DataTable = oView.Table
|
|
Dim oDS As DataSet = New DataSet()
|
|
oDS.Tables.Add(oTable.Copy())
|
|
|
|
If oDS.Relations.Contains("SelfRefenceRelation") = False Then
|
|
oDS.Relations.Add("SelfRefenceRelation", _
|
|
oDS.Tables(0).Columns("Vertragselementnr"), _
|
|
oDS.Tables(0).Columns("Parentid"))
|
|
End If
|
|
oTable.Dispose()
|
|
oTable = Nothing
|
|
LoadNode(oDS, node, type, Details)
|
|
oDS.Dispose()
|
|
oDS = Nothing
|
|
End If
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Tree aufbauen
|
|
''' </summary>
|
|
''' <param name="oDS">Input-Dataset</param>
|
|
''' <param name="oNode">Aktueller Node</param>
|
|
''' <param name="type">Type Vertragspartner oder Vertragstyp</param>
|
|
''' <remarks></remarks>
|
|
Private Sub LoadNode(ByVal oDS As DataSet, ByRef oNode As TreeNode, ByVal type As String, ByVal Details As Integer)
|
|
'Dim oTreeView As TreeView = New TreeView()
|
|
Dim oDataRow As DataRow
|
|
For Each oDataRow In oDS.Tables(0).Rows
|
|
If Not oDataRow.IsNull("Parentid") Then
|
|
If oDataRow.Item("Parentid") = 0 Then
|
|
'If oDataRow.IsNull("Parentid") Then
|
|
Dim oNode1 As New TreeNode()
|
|
oNode1.Text = oDataRow("Bezeichnung").ToString()
|
|
Select Case type
|
|
Case "Vertragspartner"
|
|
oNode1.Tag = New Treenode_Descriptor("Vertragstyp", oDataRow("vertragselementnr").ToString, xVertragspartnernr, oDataRow("vertragstypnr").ToString)
|
|
oNode1.ImageIndex = 1
|
|
oNode1.SelectedImageIndex = 1
|
|
oNode1.StateImageIndex = 1
|
|
Case "Vertragstyp"
|
|
If oDataRow("aktiv") = True Then
|
|
oNode1.Tag = New Treenode_Descriptor("Vertragspartner", oDataRow("vertragselementnr").ToString, xVertragspartnernr, oDataRow("vertragstypnr").ToString)
|
|
oNode1.ImageIndex = 0
|
|
oNode1.SelectedImageIndex = 0
|
|
oNode1.StateImageIndex = 0
|
|
Else
|
|
oNode1.Tag = New Treenode_Descriptor("Vertragspartner", oDataRow("vertragselementnr").ToString, xVertragspartnernr, oDataRow("vertragstypnr").ToString)
|
|
oNode1.ImageIndex = 4
|
|
oNode1.SelectedImageIndex = 4
|
|
oNode1.StateImageIndex = 4
|
|
End If
|
|
End Select
|
|
oNode.Nodes.Add(oNode1)
|
|
RecursivelyLoadNode(oDataRow, oNode1, type, Details)
|
|
End If
|
|
End If
|
|
Next oDataRow
|
|
oDS.Dispose()
|
|
oDS = Nothing
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Child-Nodes hinzufügen
|
|
''' </summary>
|
|
''' <param name="oDataRow"></param>
|
|
''' <param name="oNode"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub RecursivelyLoadNode(ByVal oDataRow As DataRow, ByRef oNode As TreeNode, ByVal type As String, ByVal Details As Integer)
|
|
Dim oChildRow As DataRow
|
|
For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation")
|
|
Dim oChildNode As New TreeNode()
|
|
oChildNode.Text = oChildRow("Bezeichnung").ToString()
|
|
oChildNode.Tag = New Treenode_Descriptor("Vertragselement", oChildRow("Vertragselementnr").ToString(), xVertragspartnernr, oDataRow("vertragstypnr").ToString)
|
|
oChildNode.ImageIndex = 2
|
|
oChildNode.SelectedImageIndex = 2
|
|
oChildNode.StateImageIndex = 2
|
|
oNode.Nodes.Add(oChildNode)
|
|
RecursivelyLoadNode(oChildRow, oChildNode, type, Details)
|
|
Next oChildRow
|
|
End Sub
|
|
''' <summary>
|
|
''' Laden der Substruktur
|
|
''' </summary>
|
|
''' <param name="Vertragspartnernr">Nummer des aktuellen Vertragspartners</param>
|
|
''' <returns></returns>
|
|
''' <remarks></remarks>
|
|
Private Function Get_SubStruktur(ByVal vertragstypnr As Integer, ByVal Vertragspartnernr As Integer, ByVal Details_anzeigen As Integer) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_vertragsuebersicht_get_struktur"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@vertragstypnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, vertragstypnr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@vertragspartnernr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Vertragspartnernr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@Details", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Details_anzeigen))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("clsVertragsuebersicht::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
End Sub
|
|
End Class
|
|
|
|
|
|
''' <summary>
|
|
''' Treenode-Descriptor zur Befüllung des Tree-Node-Tags
|
|
''' </summary>
|
|
''' <remarks>Treenode-Tags werden mit den 2 Elementen (Type und Keyvalue) befüllt:
|
|
''' Type: Vertragspartner, Vertragstyp
|
|
''' Keyvalue: Primary-Key des Elementes</remarks>
|
|
Public Class Treenode_Descriptor
|
|
Dim m_type As String
|
|
Property Type() As String
|
|
Get
|
|
Return m_type
|
|
End Get
|
|
Set(ByVal value As String)
|
|
m_type = value
|
|
End Set
|
|
End Property
|
|
|
|
Dim m_keyvalue As Integer
|
|
Property Keyvalue() As Integer
|
|
Get
|
|
Return m_keyvalue
|
|
End Get
|
|
Set(ByVal value As Integer)
|
|
m_keyvalue = value
|
|
End Set
|
|
End Property
|
|
|
|
Dim m_vertragspartnernr As Integer
|
|
Property Vertragspartnernr() As Integer
|
|
Get
|
|
Return m_vertragspartnernr
|
|
End Get
|
|
Set(ByVal value As Integer)
|
|
m_vertragspartnernr = value
|
|
End Set
|
|
End Property
|
|
Dim m_vertragstypnr As Integer
|
|
Property Vertragstypnr() As Integer
|
|
Get
|
|
Return m_vertragstypnr
|
|
End Get
|
|
Set(ByVal value As Integer)
|
|
m_vertragstypnr = value
|
|
End Set
|
|
End Property
|
|
|
|
Sub New(ByVal Type As String, ByVal Keyvalue As Integer, ByVal Vertragspartnernr As Integer, ByVal vertragstypnr As Integer)
|
|
Me.Type = Type
|
|
Me.Keyvalue = Keyvalue
|
|
Me.Vertragspartnernr = Vertragspartnernr
|
|
Me.Vertragstypnr = vertragstypnr
|
|
End Sub
|
|
End Class
|