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.

213 lines
8.6 KiB

Imports DevComponents
Imports System.Data.SqlClient
Imports System.Data.SqlDbType
Imports System.IO
Imports System.Data
Public Class LCStrukturEditor
Dim clslc As New TKB.VV.Lifecycle.clslifeCycle
Dim produkt As New TKB.VV.Lifecycle.clsProdukt
Private Sub LCStrukturEditor_Load(sender As Object, e As EventArgs) Handles MyBase.Load
clslc.Load_Treestrukutr(Me.TreeStruktur, True, 1)
Me.TreeStruktur.ExpandAll()
load_images()
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
End Sub
Sub load_images()
Me.ImgList.Images.Clear()
Dim filesList As String() = Directory.GetFiles(Application.StartupPath + "\LCIcons")
Dim files As String
For Each files In filesList
'files = files.Replace(files.Substring(0, files.LastIndexOf("\") + 1), "")
ImgList.Images.Add(Bitmap.FromFile(files))
Next
End Sub
Private Sub NeuesElementToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuesElementToolStripMenuItem.Click
Dim s As String
s = InputBox("Name des Strukturelementes", "Neues Strukturelement")
If s <> "" Then
Produkt.Add_New(Me.TreeStruktur.SelectedNode.Tag)
produkt.bIstStruktur = New SqlTypes.SqlBoolean(CType(True, Boolean))
produkt.sBezeichnung = New SqlTypes.SqlString(CType(s, String))
If produkt.Get_Image_for_Structure(Me.TreeStruktur.SelectedNode.Level) = True Then
produkt.iImageindex = New SqlTypes.SqlInt32(CType(Me.TreeStruktur.SelectedNode.ImageIndex, Int32))
Else
produkt.iImageindex = New SqlTypes.SqlInt32(CType(-1, Int32))
End If
produkt.Save_Data()
Dim tn As New DevComponents.AdvTree.Node
tn.Text = produkt.sBezeichnung.Value
tn.Tag = produkt.iLC_ProduktNr.Value
tn.ImageIndex = produkt.iImageindex.Value
Me.TreeStruktur.SelectedNode.Nodes.Add(tn)
'Me.TreeStruktur.SelectedNode.Nodes.Sort()
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, produkt.iLC_ProduktNr.Value, produkt.iLC_ProduktNr.Value)
End If
End Sub
Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click
Me.Close()
End Sub
Private Sub UmbenennenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UmbenennenToolStripMenuItem.Click
Dim s As String
s = Me.TreeStruktur.SelectedNode.Text
s = InputBox("Name", "Element umbenennen", s)
If s <> "" Then
produkt.Get_Produkt(Me.TreeStruktur.SelectedNode.Tag)
produkt.sBezeichnung = New SqlTypes.SqlString(CType(s, String))
produkt.daMutiert_am = New SqlTypes.SqlDateTime(CType(Now, DateTime))
produkt.iMutierer = New SqlTypes.SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32))
produkt.Save_Data()
Me.TreeStruktur.SelectedNode.Text = s
If Me.TreeStruktur.SelectedNode.Parent Is Nothing Then
'Me.TreeStruktur.Nodes.Sort()
Else
'Me.TreeStruktur.SelectedNode.Parent.Nodes.Sort()
End If
End If
End Sub
Private Sub EintragLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragLöschenToolStripMenuItem.Click
Delete_Entries()
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
End Sub
Sub Delete_Entries()
Dim i As Integer
Dim Allnodes As List(Of String) = New List(Of String)
Dim subnodes As List(Of String) = New List(Of String)
Dim dn As DevComponents.AdvTree.Node
For Each n As DevComponents.AdvTree.Node In Me.TreeStruktur.SelectedNodes
subnodes = GetChildren(n)
For i = 0 To subnodes.Count - 1
Allnodes.Add(subnodes(i))
Next
Allnodes.Add(n.Tag)
Next
For i = Allnodes.Count - 1 To 0 Step -1
Dim s As String
s = produkt.Check_Delete(Allnodes(i), 2)
If s <> "" Then
MsgBox("Das Element oder ein untergeornetes Element wird noch verwendet und kann nicht gelöscht werden." + vbCrLf + vbCrLf + s, MsgBoxStyle.Exclamation, "Produkt löschen")
Exit Sub
End If
Next
For i = Allnodes.Count - 1 To 0 Step -1
produkt.Delete_Produkt(Allnodes(i))
Try
Dim tn As New DevComponents.AdvTree.Node
tn = clslc.FindNode(Me.TreeStruktur.Nodes, Allnodes(i), Allnodes(i))
tn.Remove()
Catch ex As Exception
End Try
Next
End Sub
Function GetChildren(parentNode As DevComponents.AdvTree.Node) As List(Of String)
Dim nodes As List(Of String) = New List(Of String)
GetAllChildren(parentNode, nodes)
Return nodes
End Function
Sub GetAllChildren(parentNode As DevComponents.AdvTree.Node, nodes As List(Of String))
For Each childNode As DevComponents.AdvTree.Node In parentNode.Nodes
nodes.Add(childNode.Tag)
GetAllChildren(childNode, nodes)
Next
End Sub
Private Sub SymbolÄndernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SymbolÄndernToolStripMenuItem.Click
Dim f As New frmIconSelector
f.Images = Me.ImgList
f.ShowDialog()
If f.DialogResult = Windows.Forms.DialogResult.OK Then
Me.TreeStruktur.SelectedNode.ImageIndex = f.SelectedImage
produkt.Get_Produkt(Me.TreeStruktur.SelectedNode.Tag)
produkt.iImageindex = New SqlTypes.SqlInt32(CType(f.SelectedImage, Int32))
produkt.Save_Data()
End If
End Sub
Private Sub NeuesRootElementToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuesRootElementToolStripMenuItem.Click
Dim s As String
s = InputBox("Name des Strukturelementes", "Neues Strukturelement")
If s <> "" Then
produkt.Add_New(0)
produkt.bIstStruktur = New SqlTypes.SqlBoolean(CType(True, Boolean))
produkt.sBezeichnung = New SqlTypes.SqlString(CType(s, String))
produkt.iImageindex = New SqlTypes.SqlInt32(CType(-1, Int32))
produkt.Save_Data()
Dim tn As New DevComponents.AdvTree.Node
tn.Text = produkt.sBezeichnung.Value
tn.Tag = produkt.iLC_ProduktNr.Value
tn.ImageIndex = produkt.iImageindex.Value
Me.TreeStruktur.Nodes.Add(tn)
'Me.TreeStruktur.Nodes.Sort()
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, produkt.iLC_ProduktNr.Value, produkt.iLC_ProduktNr.Value)
End If
End Sub
Private Sub TreeStruktur_AfterNodeDrop(sender As Object, e As DevComponents.AdvTree.TreeDragDropEventArgs) Handles TreeStruktur.AfterNodeDrop
For Each n As DevComponents.AdvTree.Node In e.Nodes
produkt.Get_Produkt(n.Tag)
Try
produkt.iLC_ProduktNr_Parent = New SqlTypes.SqlInt32(CType(e.NewParentNode.Tag, Int32))
Catch
produkt.iLC_ProduktNr_Parent = New SqlTypes.SqlInt32(CType(0, Int32))
End Try
produkt.Save_Data()
Save_Order(n)
Next
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, e.Node.Tag, e.Node.Tag)
End Sub
Public Sub Save_Order(ByRef n As DevComponents.AdvTree.Node)
Dim parentno As Integer
Dim sortkey As Integer
Try
parentno = n.Parent.Tag
sortkey = parentno * 10
For Each n1 As DevComponents.AdvTree.Node In n.Parent.Nodes
produkt.Get_Produkt(n1.Tag)
sortkey = sortkey + 1
produkt.iSort = New SqlTypes.SqlInt32(CType(sortkey, Int32))
produkt.Save_Data()
Next
Catch
parentno = 0
For Each n1 As DevComponents.AdvTree.Node In Me.TreeStruktur.Nodes
produkt.Get_Produkt(n1.Tag)
sortkey = sortkey + 1
produkt.iSort = New SqlTypes.SqlInt32(CType(sortkey, Int32))
produkt.Save_Data()
Next
End Try
End Sub
Private Sub SymbolEntfernenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SymbolEntfernenToolStripMenuItem.Click
produkt.Get_Produkt(Me.TreeStruktur.SelectedNode.Tag)
produkt.iImageindex = New SqlTypes.SqlInt32(CType(-1, Int32))
produkt.Save_Data()
Me.TreeStruktur.SelectedNode.ImageIndex = -1
End Sub
End Class