Imports System.ComponentModel
Imports DevComponents.AdvTree
Public Class frmdokumentvorlagen
Dim m_toSelect As Boolean = False
Property Vorlagenselect As Boolean
Get
Return m_toSelect
End Get
Set(value As Boolean)
m_toSelect = value
If value = True Then
Me.tsbtnnew.Visible = False
Me.ToolStripButton1.Visible = False
Me.ToolStripButton2.Visible = False
Me.ToolStripButton4.Visible = False
End If
End Set
End Property
Private Sub frmdokumentvorlagen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Load_Tree()
End Sub
#Region "LoadTree"
Sub Load_Tree()
Me.treestruktur.Nodes.Clear()
Get_tree()
Dim db As New clsDB
Dim s As String = "SELECT dbo.dms_vorlage.nreintrag, dbo.dms_vorlage.strukturnr, dbo.dms_vorlage.Bezeichnung, dbo.DMS_Struktur.Bezeichnung as Node FROM dbo.dms_vorlage INNER JOIN dbo.DMS_Struktur ON dbo.dms_vorlage.strukturnr = dbo.DMS_Struktur.Eintragnr where dbo.dms_vorlage.aktiv=1"
db.Get_Tabledata("DMS", "", s)
For Each dr As DataRow In db.dsDaten.Tables(0).Rows
Dim n As DevComponents.AdvTree.Node
n = SearchTheTreeView(Me.treestruktur, dr.Item("node"))
If Not n Is Nothing Then
Me.treestruktur.SelectedNode = n
Dim tn As New DevComponents.AdvTree.Node
tn.Text = dr.Item("Bezeichnung")
tn.Tag = "V:" + dr.Item("nreintrag").ToString
tn.ImageIndex = 2
Me.treestruktur.SelectedNode.Nodes.Add(tn)
End If
Next
Me.treestruktur.ExpandAll()
End Sub
Sub Get_tree()
Dim db As New clsDB
db.Get_Tabledata("DMS_Struktur", "", "Select * from dms_struktur where aktiv=1")
Load_Treeview(db.dsDaten, Me.treestruktur)
End Sub
Private Sub Load_Treeview(ByVal oSourceData As DataSet, ByRef tree As AdvTree)
If Not (oSourceData Is Nothing) Then
Dim oView As DataView = oSourceData.Tables(0).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("eintragnr"),
oDS.Tables(0).Columns("parentid"))
End If
oTable.Dispose()
oTable = Nothing
LoadTreeView(oDS, tree)
oDS.Dispose()
oDS = Nothing
End If
End Sub
'''
''' Tree aufbauen
'''
'''
'''
'''
Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As AdvTree)
'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
Dim oNode As New DevComponents.AdvTree.Node
oNode.Text = oDataRow("Bezeichnung").ToString()
oNode.Tag = oDataRow("eintragnr").ToString
oNode.ImageIndex = 0
oNode.ImageIndex = 0
oTreeview.Nodes.Add(oNode)
RecursivelyLoadTree(oDataRow, oNode)
End If
End If
Next oDataRow
oDS.Dispose()
oDS = Nothing
End Sub
'''
''' Child-Nodes hinzufügen
'''
'''
'''
'''
Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As DevComponents.AdvTree.Node)
Dim oChildRow As DataRow
For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation")
Dim oChildNode As New DevComponents.AdvTree.Node()
oChildNode.Text = oChildRow("Bezeichnung").ToString()
oChildNode.Tag = oChildRow("eintragnr").ToString()
If oChildRow("eintragnr") = 0 Then
oChildNode.ImageIndex = 0
oChildNode.ImageIndex = 0
Else
oChildNode.ImageIndex = 1
oChildNode.ImageIndex = 1
End If
oNode.Nodes.Add(oChildNode)
RecursivelyLoadTree(oChildRow, oChildNode)
Next oChildRow
End Sub
Dim NodesThatMatch As New List(Of DevComponents.AdvTree.Node)
Private Function SearchTheTreeView(ByVal TV As AdvTree, ByVal TextToFind As String) As DevComponents.AdvTree.Node
' Empty previous
NodesThatMatch.Clear()
' Keep calling RecursiveSearch
For Each TN As DevComponents.AdvTree.Node In TV.Nodes
If TN.Text = TextToFind Then
NodesThatMatch.Add(TN)
End If
RecursiveSearch(TN, TextToFind)
Next
If NodesThatMatch.Count > 0 Then
Return NodesThatMatch(0)
Else
Return Nothing
End If
End Function
Private Sub RecursiveSearch(ByVal treeNode As DevComponents.AdvTree.Node, ByVal TextToFind As String)
' Keep calling the test recursively.
For Each TN As DevComponents.AdvTree.Node In treeNode.Nodes
If TN.Text = TextToFind Then
NodesThatMatch.Add(TN)
End If
RecursiveSearch(TN, TextToFind)
Next
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
Me.Close()
End Sub
#End Region
Private Sub tsbtnnew_Click(sender As Object, e As EventArgs) Handles tsbtnnew.Click
Dim f As New frmImportVorlage
Dim strukturnr As String
strukturnr = Me.treestruktur.SelectedNode.Tag
If strukturnr.IndexOf("V:") > -1 Then
f.Strukturnr = Me.treestruktur.SelectedNode.Parent.Tag
Else
f.Strukturnr = Me.treestruktur.SelectedNode.Tag
End If
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
Load_Tree()
Me.treestruktur.SelectedNode = SearchTheTreeView(Me.treestruktur, f.TextBox1.Text)
End If
End Sub
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click
If Me.treestruktur.SelectedNode.Tag.ToString.IndexOf("V:") > -1 Then
Dim f As New frmImportVorlage
f.TextBox1.Text = Me.treestruktur.SelectedNode.Text
f.TextBox2.Visible = False
f.Label2.Visible = False
f.Button1.Visible = False
f.TextBox1.Select()
f.eintragnr = Me.treestruktur.SelectedNode.Tag
f.Text = "Vorlagenbezeichnung ändern"
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
Load_Tree()
Me.treestruktur.SelectedNode = SearchTheTreeView(Me.treestruktur, f.TextBox1.Text)
End If
Else
MsgBox("Es ist keine Vorlage für die Änderung gewählt.", vbExclamation)
End If
End Sub
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
If Me.treestruktur.SelectedNode.Tag.ToString.IndexOf("V:") > -1 Then
If MsgBox("Möchten Sie die Vorlage '" + Me.treestruktur.SelectedNode.Text + "' wirklich löschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then
Dim db As New clsDB
Dim s As String
s = Me.treestruktur.SelectedNode.Tag.ToString.Replace("V:", "")
db.Get_Tabledata("DMS", "", "Select * from dms_vorlage where nreintrag=" + s)
db.dsDaten.Tables(0).Rows(0).Item(4) = False
db.dsDaten.Tables(0).Rows(0).Item(6) = Now
db.dsDaten.Tables(0).Rows(0).Item(7) = Globals.ActUser
db.Update_Data()
Load_Tree()
End If
Else
MsgBox("Es ist keine Vorlage zum Löschen gewählt.", vbExclamation)
End If
End Sub
Private Sub NeueVorlageToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueVorlageToolStripMenuItem.Click
tsbtnnew_Click(sender, e)
End Sub
Private Sub VorlageÄndernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorlageÄndernToolStripMenuItem.Click
ToolStripButton4_Click(sender, e)
End Sub
Private Sub VorlagelöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorlagelöschenToolStripMenuItem.Click
ToolStripButton2_Click(sender, e)
End Sub
Private Sub ContextMenuStrip1_Opening(sender As Object, e As CancelEventArgs) Handles ContextMenuStrip1.Opening
If Me.treestruktur.SelectedNode.Tag.ToString.IndexOf("V:") = -1 Then
Me.VorlageÄndernToolStripMenuItem.Enabled = False
Me.VorlagelöschenToolStripMenuItem.Enabled = False
Else
Me.VorlageÄndernToolStripMenuItem.Enabled = True
Me.VorlagelöschenToolStripMenuItem.Enabled = True
End If
If Me.Vorlagenselect = True Then
Me.NeueVorlageToolStripMenuItem.Visible = False
Me.VorlageÄndernToolStripMenuItem.Visible = False
Me.VorlagelöschenToolStripMenuItem.Visible = False
Me.VorlageAuswählenToolStripMenuItem.Visible = True
Else
Me.NeueVorlageToolStripMenuItem.Visible = True
Me.VorlageÄndernToolStripMenuItem.Visible = True
Me.VorlagelöschenToolStripMenuItem.Visible = True
Me.VorlageAuswählenToolStripMenuItem.Visible = False
End If
End Sub
Private Sub VorlageAuswählenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorlageAuswählenToolStripMenuItem.Click
If Me.treestruktur.SelectedNode.Tag.ToString.IndexOf("V:") < 0 Then
MsgBox("Es wirde keine Vorlage ausgwählt.", vbInformation)
Exit Sub
End If
Me.DialogResult = DialogResult.OK
Me.Close()
End Sub
Private Sub treestruktur_DoubleClick(sender As Object, e As EventArgs) Handles treestruktur.DoubleClick
If Me.Vorlagenselect = True Then
VorlageAuswählenToolStripMenuItem_Click(sender, e)
End If
End Sub
End Class