1229 lines
48 KiB
VB.net
1229 lines
48 KiB
VB.net
Imports System.Data.SqlClient
|
|
Imports System.Data.SqlTypes
|
|
Imports System.Reflection
|
|
|
|
Public Class frmUebersicht
|
|
|
|
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
|
|
|
|
#Region "Deklarationen"
|
|
Dim Uebersicht As New clsUebersicht
|
|
Dim KeyValue As Integer = -1
|
|
Dim TargetDBObject As String
|
|
Dim WithEvents evh As _Generic_Event_Handler.Generic_Event_Handler = Globals.Generic_Event_Handler
|
|
Dim Datenklasse As New _DataClass.DataClass
|
|
Dim sec As New Utils.MySecurity
|
|
Dim Change_Keys As Boolean = False
|
|
Dim WHandler As New clsWindowHandling
|
|
Dim WithEvents fneuebeziehung As _AllgMainObjekte.frmSetNeueBeziehung
|
|
Dim allNodes As List(Of TreeNode) = New List(Of TreeNode)()
|
|
Dim OnTreeRefresh As Boolean = False
|
|
Dim mymsg As New Utils.MyMessage
|
|
Dim Active_Node As TreeNode
|
|
|
|
#End Region
|
|
|
|
#Region "Formular"
|
|
|
|
Sub New()
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
Datenklasse.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
Datenklasse.ConnectionString = Globals.sConnectionString
|
|
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
|
|
End Sub
|
|
|
|
Sub New(Optional ByVal Keyvalue As Integer = -1)
|
|
InitializeComponent()
|
|
Me.KeyValue = Keyvalue
|
|
Datenklasse.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
Datenklasse.ConnectionString = Globals.sConnectionString
|
|
End Sub
|
|
|
|
Private Sub frmUebersicht_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(False)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub frmUebersicht_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
Refresh_Tree(Me.KeyValue)
|
|
sec.Set_Form_Security(Me)
|
|
If Me.tsbtnReadonly.Enabled = False Then
|
|
Me.TreeStruktur.AllowDrop = False
|
|
End If
|
|
Me.AllgMainObjekte1.ConnectionFilename = Globals.ConnectionFileName
|
|
Me.WHandler.get_windowsize(1)
|
|
If WHandler.Width > 0 Then Me.Width = WHandler.Width
|
|
If WHandler.height > 0 Then Me.Height = WHandler.height
|
|
Me.WHandler.get_windowsize(11)
|
|
If WHandler.Width > 0 Then Me.SplitContainer1.SplitterDistance = WHandler.Width
|
|
End Sub
|
|
|
|
Sub Refresh_Tree(ByVal Keyvalue As Integer, Optional NodeCollection As TreeNodeCollection = Nothing)
|
|
OnTreeRefresh = True
|
|
If Keyvalue = -1 Then
|
|
Me.Uebersicht.treedata_for_search.Rows.Clear()
|
|
Me.Uebersicht.treedata_for_search.Columns.Clear()
|
|
End If
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Me.TreeStruktur.BeginUpdate()
|
|
Try
|
|
Me.TreeStruktur.Nodes.Clear()
|
|
Catch
|
|
End Try
|
|
Uebersicht.Load_Treeview(Me.TreeStruktur)
|
|
Dim i As Integer
|
|
Try
|
|
For i = 0 To allNodes.Count - 1
|
|
If allNodes(i).IsExpanded Then
|
|
If Not NodeCollection Is Nothing Then
|
|
TreeStruktur.SelectedNode = Me.Uebersicht.FindNode(NodeCollection, allNodes(i).Tag, allNodes(i).Tag)
|
|
Else
|
|
TreeStruktur.SelectedNode = Me.Uebersicht.FindNode(Me.TreeStruktur.Nodes, allNodes(i).Tag, allNodes(i).Tag)
|
|
End If
|
|
TreeStruktur.SelectedNode.Expand()
|
|
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
OnTreeRefresh = False
|
|
If Keyvalue <> -1 Then
|
|
If Not NodeCollection Is Nothing Then
|
|
Me.TreeStruktur.SelectedNode = Me.Uebersicht.FindNode(NodeCollection, Keyvalue, Keyvalue)
|
|
Else
|
|
Me.TreeStruktur.SelectedNode = Me.Uebersicht.FindNode(Me.TreeStruktur.Nodes, Keyvalue, Keyvalue)
|
|
End If
|
|
End If
|
|
Me.TreeStruktur.EndUpdate()
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.SelectedNode
|
|
Try
|
|
Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
Catch
|
|
End Try
|
|
Me.Cursor = Cursors.Default
|
|
|
|
End Sub
|
|
Protected Function Get_All_Expanded_Nodes()
|
|
If OnTreeRefresh = True Then Exit Function
|
|
allNodes.Clear()
|
|
Dim aln As List(Of TreeNode)
|
|
aln = GetAllNodes()
|
|
Dim i As Integer
|
|
For i = 0 To aln.Count - 1
|
|
If aln(i).IsExpanded Then allNodes.Add(aln(i))
|
|
Next
|
|
aln.Clear()
|
|
aln = Nothing
|
|
|
|
End Function
|
|
Protected Function GetAllNodes() As List(Of TreeNode)
|
|
|
|
Dim allNodes As List(Of TreeNode) = New List(Of TreeNode)()
|
|
|
|
' start recursion for each root node of the treeview
|
|
For i As Integer = 0 To TreeStruktur.Nodes.Count - 1
|
|
GetAllNodes(TreeStruktur.Nodes(i), allNodes)
|
|
Next
|
|
|
|
Return allNodes
|
|
|
|
End Function
|
|
|
|
Protected Sub GetAllNodes(ByVal subRoot As TreeNode, ByVal allNodes As List(Of TreeNode))
|
|
|
|
' check for null (this can be removed since within th
|
|
If (subRoot Is Nothing) Then
|
|
Exit Sub
|
|
End If
|
|
|
|
' add subroot
|
|
allNodes.Add(subRoot)
|
|
' add all it's children
|
|
For i As Integer = 0 To subRoot.Nodes.Count - 1
|
|
GetAllNodes(subRoot.Nodes(i), allNodes)
|
|
Next
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "Toolbar/Menu"
|
|
Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click
|
|
|
|
Me.Close()
|
|
End Sub
|
|
|
|
Private Sub SchliessenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SchliessenToolStripMenuItem.Click
|
|
Me.TSBtnQuit_Click(sender, e)
|
|
End Sub
|
|
|
|
Private Sub TSBtnSuche_Click(sender As Object, e As EventArgs) Handles TSBtnSuche.Click
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(False)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
Uebersicht.Init_Search()
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.SearchNode(Me.TreeStruktur, Trim(Me.ToolStriptxtSuche.Text))
|
|
End Sub
|
|
|
|
Private Sub TSBtnNext_Click(sender As Object, e As EventArgs) Handles TSBtnNext.Click
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(False)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindNextNode(Me.TreeStruktur)
|
|
End Sub
|
|
|
|
|
|
Private Sub ToolStriptxtSuche_KeyDown(sender As Object, e As KeyEventArgs) Handles ToolStriptxtSuche.KeyDown
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(False)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
If e.KeyCode = Keys.Enter Then
|
|
TSBtnSuche_Click(sender, e)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub TSBtnPrevious_Click(sender As Object, e As EventArgs) Handles TSBtnPrevious.Click
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(False)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindPrevNode(Me.TreeStruktur)
|
|
End Sub
|
|
|
|
Private Sub TSBtnFirst_Click(sender As Object, e As EventArgs) Handles TSBtnFirst.Click
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
AllgMainObjekte1.Save_Data()
|
|
End If
|
|
End If
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindFirst(Me.TreeStruktur)
|
|
End Sub
|
|
|
|
Private Sub TSBtnLast_Click(sender As Object, e As EventArgs) Handles TSBtnLast.Click
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(False)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindLastNode(Me.TreeStruktur)
|
|
End Sub
|
|
|
|
Private Sub TSBtnFilterAufheben_Click(sender As Object, e As EventArgs) Handles TSBtnFilterAufheben.Click
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(False)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
Me.ToolStriptxtSuche.Text = ""
|
|
Uebersicht.Init_Search()
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "TreeStruktur"
|
|
|
|
Private _prevNode As TreeNode
|
|
Public SelectedBackColor As Color
|
|
Public SelectedForeColor As Color
|
|
|
|
Private Sub TreeStruktur_AfterCollapse(sender As Object, e As TreeViewEventArgs) Handles TreeStruktur.AfterCollapse
|
|
Get_All_Expanded_Nodes()
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_AfterExpand(sender As Object, e As TreeViewEventArgs) Handles TreeStruktur.AfterExpand
|
|
Get_All_Expanded_Nodes()
|
|
End Sub
|
|
|
|
Protected Sub MultiSelectFileTreeView_AfterSelect(sender As Object, e As System.Windows.Forms.TreeViewEventArgs) Handles TreeStruktur.AfterSelect
|
|
If OnTreeRefresh Then Exit Sub
|
|
Try
|
|
|
|
Me.TreeStruktur.BeginUpdate()
|
|
Dim bBoth As Boolean = ModifierKeys = (Keys.Shift Or Keys.Control)
|
|
'
|
|
Dim bControl As Boolean = (ModifierKeys = Keys.Control)
|
|
Dim bShift As Boolean = (ModifierKeys = Keys.Shift)
|
|
|
|
If Not (bBoth OrElse bControl OrElse bShift) Then
|
|
'just a plain old selection
|
|
ClearChecksRecursive(Me.TreeStruktur.Nodes)
|
|
e.Node.Checked = True
|
|
Me.TreeStruktur.SelectedNode = e.Node
|
|
Return
|
|
End If
|
|
|
|
If bControl Then
|
|
' no clear, just do it
|
|
e.Node.Checked = Not e.Node.Checked
|
|
Me.TreeStruktur.SelectedNode = e.Node
|
|
End If
|
|
If bShift OrElse bBoth Then
|
|
|
|
|
|
If bShift Then
|
|
ClearChecksRecursive(Me.TreeStruktur.Nodes)
|
|
End If
|
|
|
|
Dim TopNode As New TreeNode()
|
|
Dim BottomNode As New TreeNode()
|
|
|
|
If _prevNode.Level <> TreeStruktur.SelectedNode.Level Then
|
|
TopNode = TreeStruktur.SelectedNode.Parent.Nodes(0)
|
|
BottomNode = e.Node
|
|
Else
|
|
TopNode = If((_prevNode.Index < TreeStruktur.SelectedNode.Index), _prevNode, TreeStruktur.SelectedNode)
|
|
BottomNode = If((TreeStruktur.SelectedNode.Index > _prevNode.Index), TreeStruktur.SelectedNode, _prevNode)
|
|
End If
|
|
|
|
Dim x As Integer = TopNode.Index
|
|
While x <= BottomNode.Index
|
|
Dim n As TreeNode = TreeStruktur.SelectedNode.Parent.Nodes(x)
|
|
n.Checked = True
|
|
'If n.Tag.[GetType]() <> GetType(FileInfo) Then
|
|
' n.Collapse()
|
|
'End If
|
|
System.Math.Max(System.Threading.Interlocked.Increment(x), x - 1)
|
|
End While
|
|
Return
|
|
End If
|
|
Me.TreeStruktur.EndUpdate()
|
|
Catch ex As Exception
|
|
Finally
|
|
Me.TreeStruktur.EndUpdate()
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeStruktur.AfterSelect
|
|
If OnTreeRefresh Then Exit Sub
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(True)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
Dim bBoth As Boolean = ModifierKeys = (Keys.Shift Or Keys.Control)
|
|
Dim bControl As Boolean = (ModifierKeys = Keys.Control)
|
|
Dim bShift As Boolean = (ModifierKeys = Keys.Shift)
|
|
|
|
If Not (bBoth OrElse bControl OrElse bShift) Then
|
|
'no modifier keys, so clear all nodes and select just this one
|
|
'ClearChecksRecursive(Me.Nodes)
|
|
e.Node.Checked = True
|
|
Me.TreeStruktur.SelectedNode = e.Node
|
|
Else
|
|
Return
|
|
End If
|
|
'Me.TreeStruktur.BeginUpdate()
|
|
Me.SuspendLayout()
|
|
Me.AllgMainObjekte1.Generic_Event_Handler = Globals.Generic_Event_Handler
|
|
Me.Panel2.Visible = True
|
|
Me.Panel2.Dock = DockStyle.Fill
|
|
Me.AllgMainObjekte1.ConnectionFilename = Globals.ConnectionFileName
|
|
Me.AllgMainObjekte1.ConnectionString = Globals.sConnectionString
|
|
Me.AllgMainObjekte1.TempFilePath = Globals.clsapplication.sTmp_filepath.Value
|
|
Me.AllgMainObjekte1.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
Me.AllgMainObjekte1.Type = Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode))
|
|
Me.AllgMainObjekte1.KeyValue = Me.TreeStruktur.SelectedNode.Tag
|
|
Me.ResumeLayout()
|
|
'Me.TreeStruktur.EndUpdate()
|
|
|
|
Exit Sub
|
|
End Sub
|
|
|
|
Protected Sub MultiSelectFileTreeView_BeforeSelect(sender As Object, e As TreeViewCancelEventArgs) Handles TreeStruktur.BeforeSelect
|
|
Try
|
|
If Me.AllgMainObjekte1.isDirty Then
|
|
'If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
' OnTreeRefresh = True
|
|
' AllgMainObjekte1.Save_Data(False)
|
|
' OnTreeRefresh = False
|
|
'End If
|
|
End If
|
|
_prevNode = Me.TreeStruktur.SelectedNode
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
End Sub
|
|
|
|
Protected Sub MultiSelectFileTreeView_AfterCheck(sender As Object, e As System.Windows.Forms.TreeViewEventArgs) Handles TreeStruktur.AfterCheck
|
|
|
|
SelectedBackColor = SystemColors.Highlight
|
|
SelectedForeColor = SystemColors.HighlightText
|
|
Try
|
|
e.Node.BackColor = If((e.Node.Checked = True), SelectedBackColor, SystemColors.Window)
|
|
e.Node.ForeColor = If((e.Node.Checked = True), SelectedForeColor, Me.ForeColor)
|
|
If e.Node.Checked Then
|
|
Dim nodeType As Type = e.Node.Tag.[GetType]()
|
|
'If nodeType = GetType(DirectoryInfo) OrElse nodeType = GetType(DriveInfo) Then
|
|
' e.Node.Expand()
|
|
'End If
|
|
End If
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Protected Sub ClearChecksRecursive(nodes As TreeNodeCollection)
|
|
Try
|
|
For Each node As TreeNode In nodes
|
|
node.Checked = False
|
|
ClearChecksRecursive(node.Nodes)
|
|
Next
|
|
Catch ex As Exception
|
|
Finally
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Private Sub TreeStruktur_DragDrop(sender As Object, e As DragEventArgs) Handles TreeStruktur.DragDrop
|
|
If e.Data.GetDataPresent("C1.Win.C1TrueDBGrid.C1TrueDBGrid", True) = True Then
|
|
Dim Grid As New C1.Win.C1TrueDBGrid.C1TrueDBGrid
|
|
Grid = CType(e.Data.GetData("C1.Win.C1TrueDBGrid.C1TrueDBGrid"), C1.Win.C1TrueDBGrid.C1TrueDBGrid)
|
|
e.Effect = DragDropEffects.None
|
|
|
|
Dim selectedTreeview As TreeView = CType(sender, TreeView)
|
|
Dim pt As Point = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y))
|
|
Dim targetNode As TreeNode = selectedTreeview.GetNodeAt(pt)
|
|
|
|
'AllgMainObjekte1.Update_Beziehung(targetNode.Tag, Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, targetNode), Grid)
|
|
End If
|
|
|
|
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
|
|
Dim cnodes As New Collection
|
|
If evh.Datacolleation.Count > 0 Then
|
|
ncol = evh.Datacolleation
|
|
|
|
Else
|
|
Globals.ncol.Clear()
|
|
Get_Checked_Nodes_root(Me.TreeStruktur.Nodes)
|
|
End If
|
|
Dim DestinationNode As TreeNode
|
|
Dim SourceNode As TreeNode
|
|
SourceNode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"), TreeNode)
|
|
Dim pt As Point
|
|
pt = Me.TreeStruktur.PointToClient(New Point(e.X, e.Y))
|
|
DestinationNode = TreeStruktur.GetNodeAt(pt)
|
|
|
|
If SourceNode.Tag = DestinationNode.Tag Then
|
|
MsgBox("Ein Knoten kann nicht auf sich selber zeigen - Funktion wird abgebrochen")
|
|
Exit Sub
|
|
End If
|
|
If check_destination(SourceNode, DestinationNode) = False Then
|
|
MsgBox("Ein Knoten kann nicht auf ein Unterknoten in der eigenen Unterstruktur verschoben wrden - Funktion wird abgebrochen")
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim SelTag As Integer
|
|
For i = 1 To Globals.ncol.Count
|
|
SelTag = Globals.ncol.Item(i)
|
|
|
|
Dim DBOBjektname = Uebersicht.Get_DBObjektname(Me.Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, DestinationNode))
|
|
Dim DBObjekt As New Object
|
|
Datenklasse.CreateNew(DBOBjektname, DBObjekt)
|
|
'DBObjekt.get_data(SourceNode.Tag)
|
|
DBObjekt.get_data(SelTag)
|
|
DBObjekt.iparentid = New SqlInt32(CType(DestinationNode.Tag, Int32))
|
|
DBObjekt.save_data()
|
|
DBObjekt.dispose()
|
|
Next
|
|
Me.Get_All_Expanded_Nodes()
|
|
evh.Fire_Struktur_Changed(SourceNode.Tag)
|
|
|
|
e.Effect = DragDropEffects.None
|
|
evh.Datacolleation.Clear()
|
|
End If
|
|
End Sub
|
|
|
|
Private Function check_destination(ByVal stn As TreeNode, ByVal dtn As TreeNode) As Boolean
|
|
Dim ptn As New TreeNode
|
|
Try
|
|
ptn = dtn
|
|
For i As Integer = 1 To 100
|
|
|
|
If ptn.Tag = stn.Tag Then Return False
|
|
ptn = ptn.Parent
|
|
Next
|
|
Return True
|
|
Catch ex As Exception
|
|
Return True
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
Private Sub TreeView1_NodeMouseClick(sender As Object, e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeStruktur.NodeMouseClick
|
|
If e.Button = Windows.Forms.MouseButtons.Right Then
|
|
Globals.ncol.Clear()
|
|
Me.Get_Checked_Nodes(Me.TreeStruktur.Nodes)
|
|
If Globals.ncol.Count > 1 Then Exit Sub
|
|
End If
|
|
TreeStruktur.SelectedNode = e.Node
|
|
Active_Node = e.Node
|
|
|
|
If e.Button = Windows.Forms.MouseButtons.Right Then
|
|
TreeStruktur.SelectedNode = e.Node
|
|
End If
|
|
End Sub
|
|
Private Sub TreeStruktur_DragEnter(sender As Object, e As DragEventArgs) Handles TreeStruktur.DragEnter
|
|
If e.Data.GetDataPresent("C1.Win.C1TrueDBGrid.C1TrueDBGrid", True) = True Then
|
|
'TreeNode found allow move effect
|
|
e.Effect = DragDropEffects.Move
|
|
Else
|
|
'No TreeNode found, prevent move
|
|
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
|
|
'TreeNode found allow move effect
|
|
e.Effect = DragDropEffects.Move
|
|
|
|
Else
|
|
'No TreeNode found, prevent move
|
|
e.Effect = DragDropEffects.None
|
|
End If
|
|
End If
|
|
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
|
|
Dim DestinationNode As TreeNode
|
|
Dim SourceNode As TreeNode
|
|
SourceNode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"), TreeNode)
|
|
Me.TreeStruktur.SelectedNode = SourceNode
|
|
Dim pt As Point
|
|
pt = Me.TreeStruktur.PointToClient(New Point(e.X, e.Y))
|
|
DestinationNode = TreeStruktur.GetNodeAt(pt)
|
|
Try
|
|
If Me.Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, DestinationNode) = Me.Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, SourceNode) Then
|
|
'TreeNode found allow move effect
|
|
e.Effect = DragDropEffects.Move
|
|
Else
|
|
'No TreeNode found, prevent move
|
|
e.Effect = DragDropEffects.None
|
|
End If
|
|
Catch ex As Exception
|
|
e.Effect = DragDropEffects.None
|
|
End Try
|
|
End If
|
|
|
|
|
|
End Sub
|
|
Private Sub changeNodeBackColor(ByVal backColor As Color, Optional ByVal node As TreeNode = Nothing)
|
|
TreeStruktur.BeginUpdate()
|
|
Try
|
|
If lastnode IsNot Nothing Then
|
|
Dim FS As New Font("Microsoft Sans Serif; 8.25pt", 8.25, FontStyle.Regular)
|
|
lastnode.NodeFont = FS
|
|
FS = Nothing
|
|
|
|
End If
|
|
'lastnode.BackColor = node.BackColor
|
|
Catch
|
|
End Try
|
|
If node IsNot Nothing Then
|
|
Dim FS As New Font("Microsoft Sans Serif; 8.25pt", 8.25, FontStyle.Bold)
|
|
node.NodeFont = FS
|
|
FS = Nothing
|
|
'.BackColor = backColor
|
|
lastnode = node
|
|
End If
|
|
' For Each n As TreeNode In If(node IsNot Nothing, node.Nodes, TreeStruktur.Nodes)
|
|
' changeNodeBackColor(backColor, n)
|
|
'
|
|
' Next
|
|
TreeStruktur.EndUpdate()
|
|
End Sub
|
|
|
|
|
|
|
|
Dim lastnode As New TreeNode
|
|
Private Sub TreeStruktur_DragOver(sender As Object, e As DragEventArgs) Handles TreeStruktur.DragOver
|
|
If e.Data.GetDataPresent("C1.Win.C1TrueDBGrid.C1TrueDBGrid", True) = True Then
|
|
e.Effect = DragDropEffects.Move
|
|
Else
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
|
|
Dim DestinationNode As TreeNode
|
|
Dim SourceNode As TreeNode
|
|
SourceNode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"), TreeNode)
|
|
|
|
Dim pt As Point
|
|
pt = Me.TreeStruktur.PointToClient(New Point(e.X, e.Y))
|
|
|
|
DestinationNode = TreeStruktur.GetNodeAt(pt)
|
|
'changeNodeBackColor(Color.Blue, DestinationNode)
|
|
Try
|
|
If Me.Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, DestinationNode) = Me.Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, SourceNode) And _
|
|
SourceNode.Tag <> DestinationNode.Tag Then
|
|
'TreeNode found allow move effect
|
|
e.Effect = DragDropEffects.Move
|
|
Else
|
|
'No TreeNode found, prevent move
|
|
e.Effect = DragDropEffects.None
|
|
End If
|
|
Catch ex As Exception
|
|
e.Effect = DragDropEffects.None
|
|
End Try
|
|
|
|
Const ScrollRegion As Single = 20
|
|
Dim pt1 As Point = TreeStruktur.PointToClient(Cursor.Position)
|
|
If (pt1.Y + ScrollRegion) > TreeStruktur.Height Then
|
|
SendMessage(TreeStruktur.Handle, 277&, 1&, vbNull)
|
|
ElseIf (pt1.Y) < TreeStruktur.Top + ScrollRegion Then
|
|
SendMessage(TreeStruktur.Handle, 277&, 0&, vbNull)
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
|
|
Private Sub TreeStruktur_ItemDrag(sender As Object, e As ItemDragEventArgs) Handles TreeStruktur.ItemDrag
|
|
DoDragDrop(e.Item, DragDropEffects.Move)
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "AllgMainObjekte"
|
|
|
|
|
|
Private Sub BeA_FunktionDetail1_C1Bezeihungen_DoubleClicked(keyvalue As Integer, Typ As String, NewWindow As Boolean) Handles AllgMainObjekte1.Beziehungen_DoubleClicked
|
|
If NewWindow = False Then
|
|
Me.TreeStruktur.SelectedNode = Me.Uebersicht.FindNode(Me.TreeStruktur.Nodes, keyvalue, keyvalue)
|
|
Else
|
|
Dim f As New frmUebersicht(keyvalue)
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub AllgMainObjekte1_DragDrop(sender As Object, e As DragEventArgs) Handles AllgMainObjekte1.DragDrop
|
|
'20130402_Sequenznr des Root-Nodes auslesen und als SequenzNr übergeben
|
|
Dim DBOBjektname = Uebersicht.Get_DBObjektname(Me.Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode))
|
|
Dim DBObjekt As New Object
|
|
Datenklasse.CreateNew(DBOBjektname, DBObjekt)
|
|
DBObjekt.get_data(Me.AllgMainObjekte1.KeyValue)
|
|
Dim sequenznr As Integer = DBObjekt.isequenz.value
|
|
DBObjekt.dispose()
|
|
Me.AllgMainObjekte1.Add_New_Beziehung(newnode.Tag, Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, newnode), newnode.Text, TargetDBObject, Change_Keys, sequenznr)
|
|
End Sub
|
|
|
|
Private Sub AllgMainObjekte1_DragEnter(sender As Object, e As DragEventArgs) Handles AllgMainObjekte1.DragEnter
|
|
'See if there is a TreeNode being dragged
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
|
|
|
|
'TreeNode found allow move effect
|
|
e.Effect = DragDropEffects.Move
|
|
Else
|
|
'No TreeNode found, prevent move
|
|
e.Effect = DragDropEffects.None
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Dim newnode As New TreeNode
|
|
Private Sub AllgMainObjekte1_DragOver(sender As Object, e As DragEventArgs) Handles AllgMainObjekte1.DragOver
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) = False Then Exit Sub
|
|
|
|
Dim DestinationNode As TreeNode
|
|
Dim pt As Point
|
|
pt = Me.TreeStruktur.PointToClient(New Point(e.X, e.Y))
|
|
|
|
DestinationNode = TreeStruktur.GetNodeAt(pt)
|
|
|
|
newnode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"), TreeNode)
|
|
Dim type1 As Integer
|
|
Dim type2 As Integer
|
|
type1 = Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, newnode)
|
|
type2 = Datenklasse.Get_Selectiontype(Me.AllgMainObjekte1.Type)
|
|
For Each dr As DataRow In Globals.Objekt_Beziehung.Rows
|
|
If dr.Item("Objekt1") = type1 And dr.Item("Objekt2") = type2 And dr.Item("Aktiv") = True Then
|
|
Me.TargetDBObject = dr.Item("Objektname")
|
|
Me.Change_Keys = dr.Item("Key_Umdrehen")
|
|
e.Effect = DragDropEffects.Move
|
|
Exit Sub
|
|
End If
|
|
Next
|
|
e.Effect = DragDropEffects.None
|
|
|
|
Exit Sub
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "Datenbank"
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "EVH-Ereignisse"
|
|
|
|
Private Sub evh_MainObject_Created(Keyvalue As Integer, Parentid As Integer, ByVal parentform As Object) Handles evh.MainObject_Created
|
|
Try
|
|
If parentform.handle = Me.Handle Then
|
|
Refresh_Tree(-1)
|
|
Dim tn As New TreeNode
|
|
tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, Parentid, "")
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindNode(tn.Nodes, Keyvalue, "")
|
|
Else
|
|
Dim sn As Integer = Me.TreeStruktur.SelectedNode.Tag
|
|
Dim PN As Integer = Me.TreeStruktur.SelectedNode.Parent.Tag
|
|
Refresh_Tree(-1)
|
|
Dim tn As New TreeNode
|
|
tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, PN, "")
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindNode(tn.Nodes, sn, "")
|
|
End If
|
|
Catch
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub evh_MainObject_Saved(ByVal Keyvalue As Integer, ByVal Parentid As Integer) Handles evh.MainObject_Saved
|
|
|
|
Try
|
|
If Me.TreeStruktur.SelectedNode.Tag = Keyvalue Then
|
|
'gaga
|
|
Dim DBObjekt As New Object
|
|
Dim s As String
|
|
s = Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Active_Node))
|
|
Datenklasse.CreateNew("_DataClass.db." + s, DBObjekt)
|
|
DBObjekt.get_data(Keyvalue)
|
|
Active_Node.Text = DBObjekt.sbezeichnung.ToString
|
|
Me.TreeStruktur.SelectedNode = Active_Node
|
|
Me.SortTreeNodeCollection(Active_Node.Parent.Nodes)
|
|
Me.AllgMainObjekte1.Refresh_Beziehungen()
|
|
|
|
'Refresh_Tree(-1)
|
|
'Dim tn As New TreeNode
|
|
'tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, Parentid, "")
|
|
'Me.TreeStruktur.SelectedNode = Uebersicht.FindNode(tn.Nodes, Keyvalue, "")
|
|
'Me.AllgMainObjekte1.Refresh_Beziehungen()
|
|
Else
|
|
Dim ntn As TreeNode
|
|
Dim DBObjekt As New Object
|
|
ntn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, Keyvalue, "")
|
|
Try
|
|
Dim s As String
|
|
s = Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, ntn))
|
|
Datenklasse.CreateNew("_DataClass.db." + s, DBObjekt)
|
|
DBObjekt.get_data(Keyvalue)
|
|
ntn.Text = DBObjekt.sbezeichnung.ToString
|
|
Me.SortTreeNodeCollection(ntn.Parent.Nodes)
|
|
Exit Sub
|
|
Catch ex As Exception
|
|
|
|
|
|
End Try
|
|
|
|
Dim sn As Integer = Me.TreeStruktur.SelectedNode.Tag
|
|
Dim PN As Integer = Me.TreeStruktur.SelectedNode.Parent.Tag
|
|
Refresh_Tree(-1)
|
|
Dim tn As New TreeNode
|
|
tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, PN, "")
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindNode(tn.Nodes, sn, "")
|
|
Me.AllgMainObjekte1.Refresh_Beziehungen()
|
|
End If
|
|
Catch
|
|
End Try
|
|
|
|
Exit Sub
|
|
|
|
|
|
|
|
'Dim tn As New TreeNode
|
|
'tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, Parentid, "")
|
|
'Me.TreeStruktur.SelectedNode = Uebersicht.FindNode(tn.Nodes, Keyvalue, "")
|
|
'Me.TreeStruktur.SelectedNode.Text=
|
|
|
|
'Dim tn As New TreeNode
|
|
'tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, Keyvalue, "")
|
|
'If tn Is Nothing Then
|
|
' Me.Refresh_Tree(Me.AllgMainObjekte1.KeyValue)
|
|
' Me.AllgMainObjekte1.Refresh_Details()
|
|
' Exit Sub
|
|
'Else
|
|
' tn.Text = Bezeichnung
|
|
' If tn.Tag = Me.AllgMainObjekte1.KeyValue Then Me.AllgMainObjekte1.Refresh_Details()
|
|
'End If
|
|
End Sub
|
|
|
|
|
|
Private Sub evh_Strucktur_Changed(ByVal keyvalue As Integer, ByVal treehanlde As Integer) Handles evh.Strucktur_Changed
|
|
Try
|
|
If keyvalue = -1 Or keyvalue <> TreeStruktur.SelectedNode.Tag Then
|
|
Refresh_Tree(Me.TreeStruktur.SelectedNode.Tag)
|
|
Else
|
|
Refresh_Tree(keyvalue)
|
|
End If
|
|
Catch
|
|
Refresh_Tree(keyvalue)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub evh_MainObject_Deleted(ByVal keyvalue As Integer, ByVal parentid As Integer) Handles evh.MainObject_Deleted
|
|
|
|
Try
|
|
Dim tn1 As New TreeNode
|
|
|
|
tn1 = Uebersicht.FindNode(Me.TreeStruktur.Nodes, keyvalue, "")
|
|
Try
|
|
|
|
If Globals.Treehandle <> Me.TreeStruktur.Handle Then
|
|
Try
|
|
Dim tn2 As New TreeNode
|
|
tn2 = Me.TreeStruktur.SelectedNode
|
|
Me.TreeStruktur.Nodes.Remove(tn1)
|
|
Me.TreeStruktur.SelectedNode = tn2
|
|
tn2 = Nothing
|
|
Catch
|
|
End Try
|
|
Else
|
|
Delete_Childs(keyvalue)
|
|
Me.TreeStruktur.Nodes.Remove(tn1)
|
|
End If
|
|
Exit Sub
|
|
|
|
Catch ex As Exception
|
|
Exit Sub
|
|
End Try
|
|
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
Try
|
|
|
|
Dim sn As Integer = Me.TreeStruktur.SelectedNode.Tag
|
|
Dim PN As Integer = Me.TreeStruktur.SelectedNode.Parent.Tag
|
|
Delete_Childs(keyvalue)
|
|
If onDelete Then Exit Sub
|
|
Try
|
|
If sn = keyvalue Then
|
|
Me.Refresh_Tree(parentid)
|
|
Try
|
|
Me.TreeStruktur.SelectedNode.Expand()
|
|
Catch
|
|
End Try
|
|
Else
|
|
Refresh_Tree(-1)
|
|
Dim tn As New TreeNode
|
|
tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, PN, "")
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindNode(tn.Nodes, sn, "")
|
|
End If
|
|
Catch
|
|
End Try
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub Delete_Childs(ByVal keyvalue As Integer)
|
|
Try
|
|
Dim DBOBjektname = Uebersicht.Get_DBObjektname(Me.Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode))
|
|
Dim tn As New TreeNode
|
|
tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, keyvalue, "")
|
|
If Not tn Is Nothing Then
|
|
ncol.Clear()
|
|
Me.Get_Sub_Nodes(tn.Nodes)
|
|
Dim i As Integer
|
|
For i = 1 To ncol.Count
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindNode(Me.TreeStruktur.Nodes, ncol.Item(i), "")
|
|
Try
|
|
Dim DBObjekt As New Object
|
|
Datenklasse.CreateNew(DBOBjektname, DBObjekt)
|
|
DBObjekt.get_data(Me.TreeStruktur.SelectedNode.Tag)
|
|
|
|
DBObjekt.delete_data()
|
|
DBObjekt.dispose()
|
|
Application.DoEvents()
|
|
Catch
|
|
End Try
|
|
|
|
Next
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
End Sub
|
|
#End Region
|
|
|
|
Private Sub KnotenÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KnotenÖffnenToolStripMenuItem.Click
|
|
Try
|
|
Me.TreeStruktur.SelectedNode.ExpandAll()
|
|
Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
Catch ex As Exception
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub KnotenSchliessenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KnotenSchliessenToolStripMenuItem.Click
|
|
Try
|
|
Me.TreeStruktur.SelectedNode.Collapse()
|
|
Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
Catch ex As Exception
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
|
|
If AllgMainObjekte1.isDirty Then
|
|
If MsgBox("Daten wurden verändert. Wollen Sie diese speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
Me.OnTreeRefresh = True
|
|
AllgMainObjekte1.Save_Data(False)
|
|
Me.OnTreeRefresh = False
|
|
Else
|
|
Me.AllgMainObjekte1.isDirty = False
|
|
End If
|
|
End If
|
|
Dim f As New frmSuche
|
|
f.SuchData = Uebersicht.treedata_for_search
|
|
'f.SuchTree = Me.TreeStruktur
|
|
f.MdiParent = Me.MdiParent
|
|
f.txtSuchbegriff.Text = Trim(ToolStriptxtSuche.Text)
|
|
f.Show()
|
|
End Sub
|
|
|
|
Public Function Get_Checked_Nodes_root(ByVal Nodes As TreeNodeCollection)
|
|
For Each node As TreeNode In Nodes
|
|
If node.Checked = True Then
|
|
Globals.ncol.Add(node.Tag)
|
|
|
|
End If
|
|
Get_Checked_Nodes_root(node.Nodes)
|
|
Next
|
|
End Function
|
|
|
|
|
|
Public Function Get_Checked_Nodes(ByVal Nodes As TreeNodeCollection)
|
|
For Each node As TreeNode In Nodes
|
|
If node.Checked = True Then
|
|
Globals.ncol.Add(node.Tag)
|
|
If node.Nodes.Count > 0 Then Get_Sub_Nodes(node.Nodes)
|
|
|
|
End If
|
|
Get_Checked_Nodes(node.Nodes)
|
|
Next
|
|
|
|
|
|
End Function
|
|
|
|
Public Function Get_Sub_Nodes(ByVal Nodes As TreeNodeCollection)
|
|
For Each node As TreeNode In Nodes
|
|
Globals.ncol.Add(node.Tag)
|
|
If node.Nodes.Count > 0 Then Get_Sub_Nodes(node.Nodes)
|
|
Get_Sub_Nodes(node.Nodes)
|
|
Next
|
|
End Function
|
|
|
|
Public Function Get_Checked_Nodes_Count(ByVal Nodes As TreeNodeCollection) As Integer
|
|
|
|
For Each node As TreeNode In Nodes
|
|
If node.Checked = True Then
|
|
Globals.ncol.Add(node.Tag)
|
|
End If
|
|
Get_Checked_Nodes(node.Nodes)
|
|
Next
|
|
Return Globals.ncol.Count
|
|
End Function
|
|
|
|
Private Sub NeuesElementToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuesElementToolStripMenuItem.Click
|
|
Me.AllgMainObjekte1.Add_Entry(Me.TreeStruktur.SelectedNode.Tag)
|
|
End Sub
|
|
|
|
Dim OnDelete As Boolean = False
|
|
Private Sub ElementLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ElementLöschenToolStripMenuItem.Click
|
|
Globals.Treehandle = Me.TreeStruktur.Handle
|
|
Dim sn As Integer = Me.TreeStruktur.SelectedNode.Parent.Tag
|
|
Dim cn As New Collection
|
|
For i = 1 To Globals.ncol.Count
|
|
cn.Add(ncol.Item(i))
|
|
Next
|
|
If cn.Count > 1 Then
|
|
If mymsg.Show_MessageYesNo(4) <> MsgBoxResult.Yes Then
|
|
cn = Nothing
|
|
Exit Sub
|
|
End If
|
|
End If
|
|
For i = 1 To cn.Count
|
|
Me.TreeStruktur.SelectedNode = Uebersicht.FindNode(Me.TreeStruktur.Nodes, cn.Item(i), "")
|
|
Try
|
|
If cn.Count > 1 Then
|
|
Me.OnDelete = True
|
|
Me.AllgMainObjekte1.Delete_Entry(Me.TreeStruktur.SelectedNode.Tag, Me.TreeStruktur.SelectedNode.Parent.Tag, False)
|
|
Me.OnDelete = False
|
|
Else
|
|
Me.AllgMainObjekte1.Delete_Entry(Me.TreeStruktur.SelectedNode.Tag, Me.TreeStruktur.SelectedNode.Parent.Tag, True)
|
|
End If
|
|
Catch ex As Exception
|
|
Finally
|
|
|
|
End Try
|
|
Next
|
|
cn = Nothing
|
|
Me.Uebersicht.treedata_for_search.Rows.Clear()
|
|
Me.Uebersicht.treedata_for_search.Columns.Clear()
|
|
|
|
|
|
For Each dr As DataRow In Globals.Objekt.Rows
|
|
Uebersicht.Load_Treedata(dr.Item("Bezeichnung"))
|
|
|
|
Next
|
|
Globals.Treehandle = 0
|
|
'Me.Refresh_Tree(sn, Nothing)
|
|
' Dim tn As New TreeNode
|
|
' tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, sn, "")
|
|
' Me.TreeStruktur.SelectedNode = tn
|
|
|
|
|
|
|
|
'Me.AllgMainObjekte1.Delete_Entry(Me.TreeStruktur.SelectedNode.Tag, Me.TreeStruktur.SelectedNode.Parent.Tag)
|
|
'Me.Uebersicht.treedata_for_search.Rows.Clear()
|
|
'Me.Uebersicht.treedata_for_search.Columns.Clear()
|
|
|
|
'Me.Refresh_Tree(sn, Nothing)
|
|
|
|
'Try
|
|
' Me.TreeStruktur.SelectedNode.ExpandAll()
|
|
' Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
'Catch ex As Exception
|
|
|
|
'End Try
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub ctxMenuTree_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ctxMenuTree.Opening
|
|
If Me.TreeStruktur.SelectedNode.Tag < 0 Then
|
|
Me.NeuesElementToolStripMenuItem.Enabled = True
|
|
Me.ElementLöschenToolStripMenuItem.Enabled = False
|
|
Else
|
|
Me.NeuesElementToolStripMenuItem.Enabled = True
|
|
Me.ElementLöschenToolStripMenuItem.Enabled = True
|
|
|
|
End If
|
|
Globals.ncol.Clear()
|
|
If Get_Checked_Nodes_Count(Me.TreeStruktur.Nodes) > 1 Then
|
|
Me.ElementLöschenToolStripMenuItem.Enabled = False
|
|
End If
|
|
Dim s As String
|
|
s = Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode))
|
|
If s = "Berechtigung" Or s = "Plattform" Or s = "Server" Then Me.Sync.Enabled = True Else Me.Sync.Enabled = False
|
|
If s = "Personal" Or s = "Funktionstelle" Then Me.NeueBeziehungErstellenToolStripMenuItem.Visible = True Else Me.NeueBeziehungErstellenToolStripMenuItem.Visible = False
|
|
Try
|
|
If sec.Check_DataObjectReadonly(Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode))) Then
|
|
Me.NeuesElementToolStripMenuItem.Enabled = False
|
|
Me.ElementLöschenToolStripMenuItem.Enabled = False
|
|
Else
|
|
Me.NeuesElementToolStripMenuItem.Enabled = True
|
|
Me.ElementLöschenToolStripMenuItem.Enabled = True
|
|
End If
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_DragLeave(sender As Object, e As EventArgs) Handles TreeStruktur.DragLeave
|
|
ncol.Clear()
|
|
Get_Checked_Nodes_root(Me.TreeStruktur.Nodes)
|
|
If ncol.Count > 0 Then evh.Datacolleation = ncol
|
|
End Sub
|
|
|
|
Private Sub ExportExcelToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportExcelToolStripMenuItem.Click
|
|
Dim f As New frmFortschritt
|
|
f.Show()
|
|
Dim ds As New DataSet
|
|
ds.Tables.Clear()
|
|
ncol.Clear()
|
|
Get_Checked_Nodes(Me.TreeStruktur.Nodes)
|
|
f.ProgressBar1.Value = 0
|
|
f.ProgressBar1.Maximum = ncol.Count
|
|
|
|
For i = 1 To ncol.Count
|
|
Dim dt As New DataTable
|
|
f.ProgressBar1.Value = f.ProgressBar1.Value + 1
|
|
Application.DoEvents()
|
|
dt = Datenklasse.Get_Data_for_ExcelExport(Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode)), ncol.Item(i))
|
|
If i = 1 Then
|
|
ds.Tables.Add(dt.Copy)
|
|
Else
|
|
For Each r As DataRow In dt.Rows
|
|
|
|
ds.Tables(0).ImportRow(r)
|
|
|
|
Next
|
|
End If
|
|
Next
|
|
|
|
f.Close()
|
|
f.Dispose()
|
|
|
|
Dim rpt As New _FRReporting.frmAuswertung("ExcelExport", ds, Globals.clsapplication.sTmp_filepath.Value)
|
|
rpt.MdiParent = Me.MdiParent
|
|
|
|
rpt.Show()
|
|
End Sub
|
|
|
|
Private Sub ExportVorbereitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportVorbereitenToolStripMenuItem.Click
|
|
If Globals.ExcelExport_Form_exists = False Then
|
|
Dim f As New frmExportContainer
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
Globals.ExcelExport_Form_exists = True
|
|
End If
|
|
Dim f1 As New frmFortschritt
|
|
f1.Show()
|
|
|
|
ncol.Clear()
|
|
Get_Checked_Nodes(Me.TreeStruktur.Nodes)
|
|
f1.ProgressBar1.Value = 0
|
|
f1.ProgressBar1.Maximum = ncol.Count
|
|
|
|
For i = 1 To ncol.Count
|
|
Dim arr(3) As String
|
|
Dim tn As New TreeNode
|
|
f1.ProgressBar1.Value = f1.ProgressBar1.Value + 1
|
|
Application.DoEvents()
|
|
|
|
tn = Uebersicht.FindNode(Me.TreeStruktur.Nodes, ncol.Item(i), "")
|
|
evh.Fire_Export_Vorbereiten_Clicked(Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode)), tn.Text, tn.Tag)
|
|
Next
|
|
f1.Close()
|
|
f1.Dispose()
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub FensterGrösseSpeichernToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles FensterGrösseSpeichernToolStripMenuItem.Click
|
|
WHandler.set_Windowsize(1, Me.Width, Me.Height)
|
|
WHandler.set_Windowsize(11, Me.SplitContainer1.SplitterDistance, 0)
|
|
End Sub
|
|
|
|
Private Sub InEinemNeuenFensterÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InEinemNeuenFensterÖffnenToolStripMenuItem.Click
|
|
Dim f As New frmUebersicht(Me.TreeStruktur.SelectedNode.Tag)
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End Sub
|
|
|
|
'Private Sub SyncVerwaltungDurchMitDateneigentuemerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles Sync.Click
|
|
' If MsgBox("Wollen Sie die Beziehungen 'Verwaltung durch', 'Verwaltung mit','Dateneigentümer' in alle untergeordneten Elemente synchronisieren?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
|
' Me.AllgMainObjekte1.Sync_Beziehungen(Me.TreeStruktur.SelectedNode.Tag, Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode)), Me.TreeStruktur)
|
|
' End If
|
|
'End Sub
|
|
|
|
Private Sub NeueBeziehungErstellenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueBeziehungErstellenToolStripMenuItem.Click
|
|
Dim s As String
|
|
s = Datenklasse.Get_SelectionTypeText(Uebersicht.TreeView_GetRootNode(Me.TreeStruktur, Me.TreeStruktur.SelectedNode))
|
|
Select Case s
|
|
Case "Personal"
|
|
fneuebeziehung = New _AllgMainObjekte.frmSetNeueBeziehung
|
|
fneuebeziehung.SourceBezeichnung = Me.TreeStruktur.SelectedNode.Text
|
|
fneuebeziehung.Sourceid = Me.TreeStruktur.SelectedNode.Tag
|
|
fneuebeziehung.Type = 0
|
|
fneuebeziehung.MdiParent = Me.MdiParent
|
|
fneuebeziehung.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
fneuebeziehung.Show()
|
|
Case "Funktionstelle"
|
|
fneuebeziehung = New _AllgMainObjekte.frmSetNeueBeziehung
|
|
fneuebeziehung.SourceBezeichnung = Me.TreeStruktur.SelectedNode.Text
|
|
fneuebeziehung.Sourceid = Me.TreeStruktur.SelectedNode.Tag
|
|
fneuebeziehung.Type = 1
|
|
fneuebeziehung.MdiParent = Me.MdiParent
|
|
fneuebeziehung.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
fneuebeziehung.Show()
|
|
|
|
End Select
|
|
|
|
End Sub
|
|
|
|
Private Sub fneuebeziehung_C1Beziehungen_DoubleClicked(keyvalue As Integer, Typ As String, NewWindows As Boolean) Handles fneuebeziehung.C1Beziehungen_DoubleClicked
|
|
|
|
If NewWindows = False Then
|
|
Me.TreeStruktur.SelectedNode = Me.Uebersicht.FindNode(Me.TreeStruktur.Nodes, keyvalue, keyvalue)
|
|
Else
|
|
Dim f As New frmUebersicht(keyvalue)
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub SortTreeNodeCollection(ByVal collection As TreeNodeCollection)
|
|
' Copy the Nodes to an array
|
|
Dim nodes(collection.Count - 1) As TreeNode
|
|
collection.CopyTo(nodes, 0)
|
|
|
|
' Sort the nodes based on Text
|
|
Array.Sort(nodes, New TreeNodeComparer)
|
|
|
|
' Copy the nodes back into the collection
|
|
collection.Clear()
|
|
For Each node As TreeNode In nodes
|
|
' optionally, this would be the time to sort the child collections
|
|
' SortTreeNodeCollection(node.ChildNodes)
|
|
collection.Add(node)
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub ToolStriptxtSuche_Click(sender As Object, e As EventArgs) Handles ToolStriptxtSuche.Click
|
|
|
|
End Sub
|
|
End Class
|
|
|
|
Public Class TreeNodeComparer : Implements IComparer
|
|
|
|
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
|
|
' Assumes objects are TreeNodes, otherwise will throw an InvalidCastException
|
|
Return String.Compare(CType(x, TreeNode).Text, CType(y, TreeNode).Text)
|
|
|
|
End Function
|
|
End Class |