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.

268 lines
10 KiB

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
''' <summary>
''' Tree aufbauen
''' </summary>
''' <param name="oDS"></param>
''' <param name="oTreeview"></param>
''' <remarks></remarks>
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
''' <summary>
''' Child-Nodes hinzufügen
''' </summary>
''' <param name="oDataRow"></param>
''' <param name="oNode"></param>
''' <remarks></remarks>
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