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.
1329 lines
52 KiB
1329 lines
52 KiB
Imports System
|
|
Imports System.Data
|
|
Imports System.Data.SqlTypes
|
|
Imports System.Data.SqlClient
|
|
Imports System.IO
|
|
Public Class frmLifeCycle
|
|
Dim clslc As New TKB.VV.Lifecycle.clslifeCycle
|
|
Dim Produkt As New TKB.VV.Lifecycle.clsProdukt
|
|
Dim msg As New TKB.VV.Utils.MyMessage
|
|
Dim FormReadonly As Boolean = False
|
|
Dim FormDataChanged As Boolean = False
|
|
Dim IsNewProdukt As Boolean = False
|
|
Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte
|
|
Dim sec As New TKB.VV.Utils.MySecurity
|
|
Dim WithEvents evh As Generic_Event_Handler = Globals.Generic_Event_Handler
|
|
Dim selnode As Integer = 0
|
|
Dim CopyMode As Boolean = False
|
|
Dim SaveBackcolor As Object
|
|
Dim ProduktCopy As New TKB.VV.Lifecycle.clsProduktCopy
|
|
Dim Seltype As Integer = TKB.VV.Lifecycle.clslifeCycle.SelectionType.alle
|
|
Dim alleprodukte As Boolean = False
|
|
Dim isgetdata As Boolean = False
|
|
Dim ChangeChecker_Enabled As Boolean = True
|
|
Dim Abgeloestmit_Value As Integer = -1
|
|
|
|
#Region "Closing / Check_Changes"
|
|
''' <summary>
|
|
''' Schliessen des Formulars
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
|
|
If Me.FormReadonly = True Then Exit Sub
|
|
If Check_Changes() = False Then
|
|
e.Cancel = True
|
|
Else
|
|
Produkt.Dispose()
|
|
Me.Dispose()
|
|
End If
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Prüfung, ob Datenänderungen vorgenommen wurden.
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Function Check_Changes() As Boolean
|
|
If Me.FormReadonly Then
|
|
Return True
|
|
Exit Function
|
|
End If
|
|
Dim msgres As MsgBoxResult
|
|
If Me.FormDataChanged Or CtlPhasen1.HasChanges Then
|
|
msgres = msg.Show_MessageYesNoCancel(3)
|
|
Select Case msgres
|
|
Case MsgBoxResult.Yes
|
|
Save_data()
|
|
Return True
|
|
Case MsgBoxResult.Cancel
|
|
Return False
|
|
Case MsgBoxResult.No
|
|
Me.FormDataChanged = False
|
|
Return True
|
|
End Select
|
|
Else
|
|
Return True
|
|
End If
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "Formular"
|
|
|
|
Sub New()
|
|
InitializeComponent()
|
|
Me.CtlPhasen1.ConnectionString = Globals.sConnectionString
|
|
End Sub
|
|
|
|
Sub New(ByVal tag As Integer, Optional alleProdukte As Boolean = False)
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
Me.selnode = tag
|
|
Me.alleprodukte = alleProdukte
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
|
|
End Sub
|
|
Private Sub dtPicker_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles dtAbgeloestAm.Leave, dtEntscheidungsterminNachfolgeprodukt.Leave, dtNaechsteUeberpruefung.Leave
|
|
Dim s As String
|
|
Dim obj As DateTimePicker = sender
|
|
s = obj.Name
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
#Region "Buttons/Menu"
|
|
|
|
''' <summary>
|
|
''' Formular schliessen
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
|
|
Me.Close()
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Sicherungs-Button betätigt
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click
|
|
Me.Save_data()
|
|
|
|
|
|
End Sub
|
|
''' <summary>
|
|
''' Neuer Datensatz erstellen
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnNew.Click
|
|
|
|
If Me.TreeStruktur.SelectedNode.Tag < 1 Then
|
|
msg.show_standardmessage(896, MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End If
|
|
If Me.Check_Changes = False Then Exit Sub
|
|
Me.Get_Data(Me.Produkt.Add_New)
|
|
Me.IsNewProdukt = True
|
|
End Sub
|
|
''' <summary>
|
|
''' Aktueller Datensatz inaktivieren
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click
|
|
If Me.TreeStruktur.SelectedNode.Tag < 1 Then
|
|
msg.show_standardmessage(896, MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End If
|
|
If msg.Show_MessageYesNo(295) = MsgBoxResult.Yes Then
|
|
Me.Produkt.Delete_Produkt(Me.TreeStruktur.SelectedNode.Tag)
|
|
'TSBtnSuche_Click(sender, e)
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
'Me.Close()
|
|
End If
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
#Region "Eventhandler ChangeEreignisse"
|
|
''' <summary>
|
|
''' Allg Eventhandler für Chanage-Ereignise festlegen
|
|
''' </summary>
|
|
''' <param name="Container"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub AddChanges(ByVal Container As Control)
|
|
Dim l As New List(Of Control)
|
|
Me.GetControl(Me, "*", l)
|
|
Dim evh As EventHandler = AddressOf ChangesMade
|
|
For Each c As Control In l
|
|
If TypeOf c Is TextBox Then
|
|
Dim ctl As TextBox = c
|
|
AddHandler ctl.TextChanged, evh
|
|
End If
|
|
If TypeOf c Is MaskedTextBox Then
|
|
Dim ctl As MaskedTextBox = c
|
|
AddHandler ctl.TextChanged, evh
|
|
End If
|
|
If TypeOf c Is ComboBox Then
|
|
Dim ctl As ComboBox = c
|
|
AddHandler ctl.SelectedValueChanged, evh
|
|
End If
|
|
If TypeOf c Is RichTextBox Then
|
|
Dim ctl As RichTextBox = c
|
|
AddHandler ctl.TextChanged, evh
|
|
End If
|
|
If TypeOf c Is CheckBox Then
|
|
If c.Name <> "cboxNurAktive" Then
|
|
Dim ctl As CheckBox = c
|
|
AddHandler ctl.CheckedChanged, evh
|
|
End If
|
|
End If
|
|
If TypeOf c Is DateTimePicker Then
|
|
Dim ctl As DateTimePicker = c
|
|
AddHandler ctl.ValueChanged, evh
|
|
End If
|
|
If TypeOf c Is CheckedListBox Then
|
|
Dim ctl As CheckedListBox = c
|
|
AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange
|
|
End If
|
|
Next
|
|
End Sub
|
|
''' <summary>
|
|
''' Envent-Handler für Change-Ereignisse
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
If ChangeChecker_Enabled = False Then Exit Sub
|
|
Me.FormDataChanged = True
|
|
Dim objtype As System.Type = sender.GetType
|
|
If objtype.Name = "MaskedTextBox" Then
|
|
Dim o As MaskedTextBox = sender
|
|
If o.Text = "01.01.1900" Then o.Text = " . . "
|
|
End If
|
|
End Sub
|
|
Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs)
|
|
Me.FormDataChanged = True
|
|
End Sub
|
|
|
|
|
|
''' <summary>
|
|
''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet
|
|
''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung
|
|
''' </summary>
|
|
''' <param name="BaseControl">Base-Contrlo (z.B. aktuelles Formular</param>
|
|
''' <param name="Key">Schlüssel welcher gesucht werden soll</param>
|
|
''' <param name="L">Liste der gefundenen Objekte</param>
|
|
''' <returns>True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde.
|
|
''' </returns>
|
|
''' <remarks></remarks>
|
|
Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean
|
|
If L Is Nothing Then L = New List(Of Control)
|
|
Dim Gut As Boolean
|
|
Dim ReturnFlag As Boolean = False
|
|
If Key IsNot Nothing Then Key = Key.ToLower
|
|
|
|
If BaseControl.HasChildren = True Then
|
|
For Each ctl As Control In BaseControl.Controls
|
|
Gut = False
|
|
If Key Is Nothing Then
|
|
Gut = True
|
|
Else
|
|
If ctl.Name.Length >= Key.Length Then
|
|
Key = Key.ToLower
|
|
If Key.StartsWith("*") Then
|
|
If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True
|
|
ElseIf Key.EndsWith("*") Then
|
|
If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True
|
|
Else
|
|
If Key = ctl.Name.ToLower Then Gut = True
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
If Gut = True Then
|
|
L.Add(ctl)
|
|
If ReturnAtFirstElement = True Then ReturnFlag = True
|
|
End If
|
|
If ReturnFlag = False Then
|
|
Call GetControl(ctl, Key, L)
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
If L.Count - 1 > -1 Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
#End Region
|
|
|
|
|
|
#Region "Daten"
|
|
''' <summary>
|
|
''' Daten ab DB laden uns ins Form befüllen
|
|
''' </summary>
|
|
''' <param name="Vertragselementnr"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub Get_Data(ByVal Produktnr As Integer)
|
|
Me.IsGetdata = True
|
|
Try
|
|
Me.GrpStammdaten.Enabled = False
|
|
Me.GrpLifeCycle.Enabled = False
|
|
Me.GrpBilder.Enabled = False
|
|
Me.GrpDokumente.Enabled = False
|
|
Produkt.Get_Produkt(Produktnr)
|
|
|
|
If Produkt.bIstStruktur = True Then
|
|
Me.GrpStammdaten.Visible = False
|
|
Me.GrpLifeCycle.Visible = False
|
|
Me.GrpDokumente.Visible = False
|
|
Me.GrpBilder.Visible = False
|
|
Me.GrpAenderungsnachweis.Visible = False
|
|
Me.GrpAblösung.Visible = False
|
|
Me.GrpTermine.Visible = False
|
|
Exit Sub
|
|
Else
|
|
Me.GrpStammdaten.Visible = True
|
|
Me.GrpLifeCycle.Visible = True
|
|
Me.GrpDokumente.Visible = True
|
|
Me.GrpBilder.Visible = True
|
|
Me.GrpAenderungsnachweis.Visible = True
|
|
Me.GrpAblösung.Visible = True
|
|
Me.GrpTermine.Visible = True
|
|
End If
|
|
Try
|
|
If Produkt.iVerweisnr.Value > 0 Then Me.txtProduktname.Enabled = False Else Me.txtProduktname.Enabled = True
|
|
Catch ex As Exception
|
|
Me.txtProduktname.Enabled = True
|
|
End Try
|
|
|
|
Me.txtProduktname.Text = Produkt.sBezeichnung.Value
|
|
Me.txtBemerkung.Text = Produkt.sBeschreibung.Value
|
|
Me.txtVersion.Text = Produkt.sVersion.Value
|
|
Me.txtStatusBemerkung.Text = ""
|
|
Try
|
|
Me.txtStatusBemerkung.Text = Produkt.sStatusbemerkung.Value
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
Try
|
|
Me.cbboxAbgeloest_mit.SelectedValue = Produkt.iAbgeloest_durch_produktnr.Value
|
|
Me.Abgeloestmit_Value = Produkt.iAbgeloest_durch_produktnr.Value
|
|
Catch
|
|
Me.cbboxAbgeloest_mit.SelectedValue = -1
|
|
Me.Abgeloestmit_Value = -1
|
|
End Try
|
|
|
|
Me.txtAbgeloestdurchwen.Text = Produkt.sAbgeloest_durch.ToString
|
|
|
|
Me.txtTerminBemerkung.Text = Produkt.sTerminBemerkung.Value.ToString
|
|
|
|
If Produkt.daAbgeloest_am.IsNull Then
|
|
Me.txtAbgeloestam.Text = "01.01.1900"
|
|
Else
|
|
Me.txtAbgeloestam.Text = Produkt.daAbgeloest_am.ToString
|
|
If Me.txtAbgeloestam.Text <> " . ." Then Me.GrpAblösung.BackColor = Color.LightPink Else Me.GrpAblösung.BackColor = Me.GrpAenderungsnachweis.BackColor
|
|
End If
|
|
If Produkt.daEntscheidungstermin.IsNull Then
|
|
Me.txtEntscheidungsterminNachfolgeprodukt.Text = "01.01.1900"
|
|
Else
|
|
Me.txtEntscheidungsterminNachfolgeprodukt.Text = Produkt.daEntscheidungstermin.ToString
|
|
End If
|
|
If Produkt.daNächste_Ueberprüfung.IsNull Then
|
|
Me.txtNaechsteUeberpruefung.Text = "01.01.1900"
|
|
Else
|
|
Me.txtNaechsteUeberpruefung.Text = Produkt.daNächste_Ueberprüfung.ToString
|
|
End If
|
|
Me.cbboxProdukttyp.SelectedValue = Produkt.iProdukttypNr.Value
|
|
If Produkt.iStatusNr = 0 Then Me.cbEingesetzt.Checked = False Else Me.cbEingesetzt.Checked = True
|
|
|
|
Me.txterstellt_am.Text = Produkt.daErstellt_am.ToString
|
|
Me.txtmutiert_am.Text = Produkt.daMutiert_am.ToString
|
|
Me.txtmutierer.Text = Produkt.MutiererText
|
|
Me.CtlPhasen1.FormReadonly = Me.FormReadonly
|
|
Me.CtlPhasen1.Produktnr = Me.Produkt.iLC_ProduktNr.Value
|
|
Me.CtlPhasen1.HasChanges = False
|
|
Me.CtlPictures1.FormReadOnly = Me.FormReadonly
|
|
|
|
Try
|
|
Me.LCDOkumente.Show_Editfunctions = Me.FormReadonly <> True
|
|
Me.LCDOkumente.ProduktNr = Me.Produkt.iLC_ProduktNr.Value
|
|
Catch
|
|
End Try
|
|
sec.Set_Form_Security(Me)
|
|
Me.FormDataChanged = False
|
|
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
Try
|
|
For Each ctl As ToolStripButton In Me.ToolStrip1.Items
|
|
ctl.Enabled = False
|
|
Next
|
|
Catch
|
|
End Try
|
|
Me.TSBtnQuit.Enabled = True
|
|
Finally
|
|
Me.GrpStammdaten.Enabled = True
|
|
Me.GrpLifeCycle.Enabled = True
|
|
Me.GrpBilder.Enabled = True
|
|
Me.GrpDokumente.Enabled = True
|
|
|
|
End Try
|
|
Me.FormDataChanged = False
|
|
Me.isgetdata = False
|
|
End Sub
|
|
|
|
Private Sub Set_Checkedlistbox(ByRef clb As CheckedListBox, ByRef data As DataTable)
|
|
Dim i As Integer
|
|
For i = 0 To clb.Items.Count - 1
|
|
clb.SetItemCheckState(i, CheckState.Unchecked)
|
|
Next
|
|
|
|
Dim chk As Integer = 0
|
|
Dim ii As Integer
|
|
Dim oc As CheckedListBox.ObjectCollection = clb.Items
|
|
For i = 0 To data.Rows.Count - 1
|
|
For ii = 0 To oc.Count - 1
|
|
If oc.Item(ii).item(0) = data.Rows(i).Item(2) Then
|
|
clb.SetItemCheckState(ii, CheckState.Checked)
|
|
End If
|
|
Next
|
|
Next
|
|
|
|
|
|
End Sub
|
|
''' <summary>
|
|
''' Daten ab Form speichern
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub Save_data()
|
|
Produkt.sBeschreibung = New SqlTypes.SqlString(CType(Me.txtBemerkung.Text, String))
|
|
Produkt.sBezeichnung = New SqlTypes.SqlString(CType(Me.txtProduktname.Text, String))
|
|
Produkt.sVersion = New SqlTypes.SqlString(CType(Me.txtVersion.Text, String))
|
|
If cbboxAbgeloest_mit.Text <> "" Then
|
|
Produkt.iAbgeloest_durch_produktnr = New SqlInt32(CType(Me.cbboxAbgeloest_mit.SelectedValue, Int32))
|
|
Else
|
|
Produkt.iAbgeloest_durch_produktnr = New SqlInt32(CType(0, Int32))
|
|
|
|
End If
|
|
Produkt.sAbgeloest_durch = New SqlString(CType(Me.txtAbgeloestdurchwen.Text, String))
|
|
|
|
If IsDate(Me.txtAbgeloestam.Text) Then
|
|
Produkt.daAbgeloest_am = New SqlTypes.SqlDateTime(CType(Me.txtAbgeloestam.Text, DateTime))
|
|
Else
|
|
Produkt.daAbgeloest_am = New SqlTypes.SqlDateTime(CType(SqlDateTime.Null, DateTime))
|
|
End If
|
|
|
|
If IsDate(Me.txtEntscheidungsterminNachfolgeprodukt.Text) Then
|
|
Produkt.daEntscheidungstermin = New SqlTypes.SqlDateTime(CType(Me.txtEntscheidungsterminNachfolgeprodukt.Text, DateTime))
|
|
Else
|
|
Produkt.daEntscheidungstermin = New SqlTypes.SqlDateTime(CType(SqlDateTime.Null, DateTime))
|
|
End If
|
|
|
|
If IsDate(Me.txtNaechsteUeberpruefung.Text) Then
|
|
Produkt.daNächste_Ueberprüfung = New SqlTypes.SqlDateTime(CType(Me.txtNaechsteUeberpruefung.Text, DateTime))
|
|
Else
|
|
Produkt.daNächste_Ueberprüfung = New SqlTypes.SqlDateTime(CType(SqlDateTime.Null, DateTime))
|
|
End If
|
|
|
|
Produkt.sTerminBemerkung = New SqlString(CType(Me.txtTerminBemerkung.Text, String))
|
|
|
|
|
|
If Me.cbEingesetzt.Checked Then
|
|
Produkt.iStatusNr = New SqlTypes.SqlInt32(CType(1, Int32))
|
|
Else
|
|
Produkt.iStatusNr = New SqlTypes.SqlInt32(CType(0, Int32))
|
|
End If
|
|
Produkt.iProdukttypNr = New SqlTypes.SqlInt32(CType(Me.cbboxProdukttyp.SelectedValue, Int32))
|
|
Produkt.Save_Data()
|
|
CtlPhasen1.Save_Phasen()
|
|
Me.FormDataChanged = False
|
|
' TreeStruktur.Nodes.Sort()
|
|
Me.TreeStruktur.SelectedNode.Text = Produkt.sBezeichnung.Value
|
|
'clslc.Update_Treesearch(Produkt.iLC_ProduktNr.Value, Produkt.iLC_ProduktNr_Parent.Value, Produkt.sBezeichnung.Value, Produkt.sBeschreibung.Value)
|
|
Try
|
|
Me.TreeStruktur.SelectedNode.Parent.Nodes.Sort()
|
|
Catch
|
|
End Try
|
|
|
|
Me.FormDataChanged = False
|
|
End Sub
|
|
|
|
Private Function Get_CheckedItems(ByRef clb As CheckedListBox) As String
|
|
Dim i As Integer = 0
|
|
Dim s As String = ""
|
|
For i = 1 To clb.CheckedItems.Count
|
|
s = s + clb.CheckedItems(i).ToString
|
|
Next
|
|
Return s
|
|
End Function
|
|
#End Region
|
|
|
|
Private Sub frmLifeCycle_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
|
|
If e.KeyCode = Keys.F5 Then
|
|
Try
|
|
Dim tn As New DevComponents.AdvTree.Node
|
|
tn = Me.TreeStruktur.SelectedNode
|
|
Me.TreeStruktur.Nodes.Clear()
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, Me.Seltype)
|
|
clslc.Init_Search(Me.TreeStruktur)
|
|
clslc.Search_First(Me.TreeStruktur, 0, tn.Text)
|
|
Exit Sub
|
|
'201507023
|
|
Me.TreeStruktur.ExpandAll()
|
|
'Me.TreeStruktur.SelectedNode.Parent.ExpandAll()
|
|
Try
|
|
Me.TreeStruktur.SelectedNode = clslc.TreeView_GetRootNode(Me.TreeStruktur, tn)
|
|
Application.DoEvents()
|
|
Me.TreeStruktur.SelectedNode.Collapse()
|
|
Application.DoEvents()
|
|
|
|
Me.TreeStruktur.SelectedNode.ExpandAll()
|
|
Application.DoEvents()
|
|
Me.TreeStruktur.SelectedNode = tn
|
|
Application.DoEvents()
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
Catch
|
|
End Try
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub frmLifeCycle_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
Me.TreeStruktur.NodeStyleSelected = Me.TreeStruktur.Styles(1)
|
|
clslc.IMGLIST = Me.ImageList2
|
|
load_images()
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_eingesetzt)
|
|
Me.TsBtnFilter.Text = "Filter: Eingesetzte Produkte"
|
|
If Me.alleprodukte Then
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, TKB.VV.Lifecycle.clslifeCycle.SelectionType.alle)
|
|
Me.TsBtnFilter.Text = "Filter: Alle Produkte"
|
|
End If
|
|
Me.cbboxProdukttyp.DataSource = clslc.Produkttypen
|
|
Me.cbboxProdukttyp.DisplayMember = "Bezeichnung"
|
|
Me.cbboxProdukttyp.ValueMember = "LC_Produkttypnr"
|
|
'TreeStruktur.Nodes.Sort()
|
|
Me.CtlPhasen1.ConnectionString = Globals.sConnectionString
|
|
Me.CtlPhasen1.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
Me.LCDOkumente.ConnectionString = Globals.sConnectionString
|
|
Me.LCDOkumente.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr
|
|
Me.LCDOkumente.Doktype = 1
|
|
Me.LCDOkumente.TempFilePath = Globals.clsapplication.sTmp_filepath.ToString
|
|
Try
|
|
Me.LCDOkumente.ProduktNr = Me.TreeStruktur.SelectedNode.Tag
|
|
Catch
|
|
End Try
|
|
'2015-07-23
|
|
'Me.TreeStruktur.ExpandAll()
|
|
Me.TreeStruktur.CollapseAll()
|
|
clslc.Get_Produktliste()
|
|
Me.cbboxAbgeloest_mit.DataSource = clslc.Produkte
|
|
Me.cbboxAbgeloest_mit.DisplayMember = "Bezeichnung"
|
|
Me.cbboxAbgeloest_mit.ValueMember = "id"
|
|
|
|
|
|
|
|
|
|
AddChanges(Me)
|
|
|
|
|
|
sec.Set_Form_Security(Me)
|
|
If Me.TSBtnSave.Enabled = False Or Me.TSBtnSave.Visible = False Then
|
|
Me.FormReadonly = True
|
|
Me.TSBtnCopy.Enabled = False
|
|
Me.TSBtnNew.Enabled = False
|
|
Me.TSBtnDelete.Enabled = False
|
|
Me.TSBtnTools.Enabled = False
|
|
Me.TreeStruktur.AllowDrop = False
|
|
'Me.ctxMenuStruktur.Enabled = False
|
|
'Me.TreeStruktur.DragDropEnabled = False
|
|
Me.cbboxAbgeloest_mit.Enabled = False
|
|
Me.cbboxProdukttyp.Enabled = False
|
|
Else
|
|
Me.FormReadonly = False
|
|
'Me.ctxMenuStruktur.Enabled = True
|
|
'Me.TreeStruktur.DragDropEnabled = True
|
|
End If
|
|
|
|
If selnode <> 0 Then
|
|
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, selnode, selnode)
|
|
Else
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
End If
|
|
|
|
If Me.FormReadonly Then
|
|
sec.Set_Form_Readonly(Me)
|
|
End If
|
|
clslc.Clear_Search()
|
|
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 TreeStruktur_AfterNodeDrop(sender As Object, e As DevComponents.AdvTree.TreeDragDropEventArgs) Handles TreeStruktur.AfterNodeDrop
|
|
If CopyMode Then
|
|
Dim tn As New DevComponents.AdvTree.Node
|
|
Dim tn1 As New DevComponents.AdvTree.Node
|
|
tn1 = e.Node.Copy
|
|
tn = e.Node.Copy
|
|
Dim newkey As Integer
|
|
newkey = ProduktCopy.Add_New(Produkt.iLC_ProduktNr.Value, e.NewParentNode.Tag)
|
|
tn.Tag = newkey
|
|
tn.Style = Me.TreeStruktur.Styles(2)
|
|
e.NewParentNode.Nodes.Add(tn)
|
|
e.NewParentNode.Nodes.Sort()
|
|
e.OldParentNode.Nodes.Add(tn1)
|
|
e.OldParentNode.Nodes.Sort()
|
|
e.Node.Remove()
|
|
Me.CopyMode = False
|
|
Me.ToolStripLabelCopyMode.Visible = False
|
|
Me.TreeStruktur.BackColor = SaveBackcolor
|
|
clslc.Get_Produkte(False, Me.Seltype)
|
|
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, newkey, newkey)
|
|
|
|
TreeStruktur_Click(sender, e)
|
|
Exit Sub
|
|
End If
|
|
For Each n As DevComponents.AdvTree.Node In e.Nodes
|
|
If clslc.IstCopy(n.Tag) Then
|
|
Dim pc As New TKB.VV.Lifecycle.clsProduktCopy
|
|
pc.iLc_produkt_copynr = New SqlInt32(CType(n.Tag, Int32))
|
|
|
|
pc.cpMainConnectionProvider = Globals.conn
|
|
pc.SelectOne()
|
|
pc.iLc_produkt_parentnr = New SqlInt32(CType(e.NewParentNode.Tag, Int32))
|
|
pc.Save_Data()
|
|
Else
|
|
Produkt.Get_Produkt(n.Tag)
|
|
Produkt.iLC_ProduktNr_Parent = New SqlInt32(CType(e.NewParentNode.Tag, Int32))
|
|
Produkt.Save_Data()
|
|
End If
|
|
|
|
e.NewParentNode.Nodes.Sort()
|
|
Next
|
|
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, e.Node.Tag, e.Node.Tag)
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_AfterNodeSelect(sender As Object, e As DevComponents.AdvTree.AdvTreeNodeEventArgs) Handles TreeStruktur.AfterNodeSelect
|
|
If clslc.IstStruktur(Me.TreeStruktur.SelectedNode.Tag) Then
|
|
Me.TreeStruktur.DragDropEnabled = False
|
|
Else
|
|
Me.TreeStruktur.DragDropEnabled = True
|
|
End If
|
|
TreeStruktur_Click(sender, e)
|
|
refresh_cbbox_abloesung()
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_BeforeNodeSelect(sender As Object, e As DevComponents.AdvTree.AdvTreeNodeCancelEventArgs) Handles TreeStruktur.BeforeNodeSelect
|
|
If Check_Changes() = False Then
|
|
e.Cancel = True
|
|
Else
|
|
' Me.Save_data()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_Click(sender As Object, e As EventArgs) Handles TreeStruktur.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Try
|
|
Me.GrpBilder.Enabled = False
|
|
If clslc.IstCopy(Me.TreeStruktur.SelectedNode.Tag) Then
|
|
Get_Data(clslc.get_originalid(Me.TreeStruktur.SelectedNode.Tag))
|
|
Me.GrpStammdaten.Enabled = False
|
|
Me.GrpAblösung.Enabled = False
|
|
Me.GrpTermine.Enabled = False
|
|
Else
|
|
Get_Data(Me.TreeStruktur.SelectedNode.Tag)
|
|
Me.GrpStammdaten.Enabled = True
|
|
Me.GrpAblösung.Enabled = True
|
|
Me.GrpTermine.Enabled = True
|
|
End If
|
|
Me.LCDOkumente.ProduktNr = Me.TreeStruktur.SelectedNode.Tag
|
|
Application.DoEvents()
|
|
|
|
If Me.GrpBilder.Visible = True Then
|
|
Me.GrpBilder.Enabled = True
|
|
Me.CtlPictures1.Connectionstring = Globals.sConnectionString
|
|
Me.CtlPictures1.Produktnr = Me.Produkt.iLC_ProduktNr.Value
|
|
Me.CtlPictures1.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
Me.CtlPictures1.TempfilePath = Globals.clsapplication.sTmp_filepath
|
|
Me.CtlPictures1.Refresh()
|
|
End If
|
|
Catch
|
|
End Try
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Private Sub DateTimePicker_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtAbgeloestAm.ValueChanged, dtEntscheidungsterminNachfolgeprodukt.ValueChanged, dtNaechsteUeberpruefung.ValueChanged
|
|
|
|
Dim s As String
|
|
Dim obj As DateTimePicker = sender
|
|
s = obj.Name
|
|
s = "txt" + s.Substring(2, s.Length - 2)
|
|
Dim l As New List(Of Control)
|
|
Dim txtb As MaskedTextBox
|
|
GetControl(Me, s, l)
|
|
For Each ctl As Control In l
|
|
txtb = CType(ctl, MaskedTextBox)
|
|
txtb.Text = obj.Value
|
|
Next
|
|
End Sub
|
|
|
|
|
|
Private Sub frmLifeCycle_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize
|
|
Me.GrpBilder.Width = Me.pnlLifecycle.Width / 2
|
|
End Sub
|
|
|
|
|
|
Private Sub NeuesElementToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuesElementToolStripMenuItem.Click
|
|
Produkt.Add_New(Me.TreeStruktur.SelectedNode.Tag)
|
|
Produkt.bIstStruktur = New SqlBoolean(CType(False, Boolean))
|
|
Produkt.sBezeichnung = New SqlString(CType("Neues Element", String))
|
|
If Produkt.Get_Image_for_Element Then
|
|
Produkt.iImageindex = New SqlInt32(CType(Me.TreeStruktur.SelectedNode.ImageIndex, Int32))
|
|
Else
|
|
Produkt.iImageindex = New SqlInt32(CType(-1, Int32))
|
|
End If
|
|
Produkt.Save_Data()
|
|
Dim NewNode As New DevComponents.AdvTree.Node
|
|
NewNode.Text = "Neues Element"
|
|
NewNode.ImageIndex = Produkt.iImageindex.Value
|
|
NewNode.Tag = Produkt.iLC_ProduktNr.Value
|
|
Me.TreeStruktur.SelectedNode.Nodes.Add(NewNode)
|
|
If NewNode.Parent.Expanded = False Then NewNode.Parent.Expand()
|
|
TreeStruktur.SelectedNode = clslc.FindNode(TreeStruktur.Nodes, NewNode.Tag, NewNode.Tag)
|
|
Get_Data(NewNode.Tag)
|
|
End Sub
|
|
|
|
|
|
|
|
#Region "EVH"
|
|
Private Sub evh_Icon_Changed(keyvalue As Integer, Iconid As Integer) Handles evh.Icon_Changed
|
|
Try
|
|
Dim foundnode As DevComponents.AdvTree.Node
|
|
foundnode = Me.clslc.FindNode(Me.TreeStruktur.Nodes, keyvalue, keyvalue)
|
|
foundnode.ImageIndex = Iconid
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
Private Function get_Icon(ByVal node As DevComponents.AdvTree.Node, Optional newNode As Boolean = False) As Integer
|
|
If node.ImageIndex > 20 Then Return node.ImageIndex
|
|
If node.Nodes.Count > 0 And node.ImageIndex < 10 Then
|
|
Return node.ImageIndex + 10
|
|
End If
|
|
Return node.ImageIndex
|
|
End Function
|
|
#End Region
|
|
|
|
|
|
Private Sub EintragLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragLöschenToolStripMenuItem.Click
|
|
Try
|
|
|
|
If Me.TreeStruktur.SelectedNode.Tag < 1 Then
|
|
msg.show_standardmessage(896, MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim pn = Me.TreeStruktur.SelectedNode.Parent
|
|
|
|
If clslc.IstCopy(Me.TreeStruktur.SelectedNode.Tag) Then
|
|
If msg.Show_MessageYesNo(101) = MsgBoxResult.No Then Exit Sub
|
|
ProduktCopy.Get_Produkt(Me.TreeStruktur.SelectedNode.Tag)
|
|
ProduktCopy.Delete_Produkt()
|
|
Me.TreeStruktur.SelectedNode.Remove()
|
|
clslc.Get_Produkte(False, Me.Seltype)
|
|
Me.TreeStruktur.Nodes.Clear()
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, Me.Seltype)
|
|
'2015-07.23
|
|
'Me.TreeStruktur.ExpandAll()
|
|
Try
|
|
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, pn.tag, pn.tag)
|
|
Me.TreeStruktur.SelectedNode.ExpandAll()
|
|
Catch
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
End Try
|
|
Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
Me.Cursor = Cursors.Default
|
|
|
|
Exit Sub
|
|
End If
|
|
|
|
If Me.TreeStruktur.SelectedNodes.Count = 1 Then
|
|
If Me.TreeStruktur.SelectedNode.Nodes.Count < 1 Then If msg.Show_MessageYesNo(101) = MsgBoxResult.No Then Exit Sub
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Delete_Entries()
|
|
Me.TreeStruktur.Nodes.Clear()
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, Me.Seltype)
|
|
'23.07.2015
|
|
'Me.TreeStruktur.ExpandAll()
|
|
Try
|
|
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, pn.tag, pn.tag)
|
|
Me.TreeStruktur.SelectedNode.ExpandAll()
|
|
Catch
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
End Try
|
|
Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
Me.Cursor = Cursors.Default
|
|
|
|
|
|
Exit Sub
|
|
End If
|
|
If Me.TreeStruktur.SelectedNodes.Count > 1 Then
|
|
'If msg.Show_MessageYesNo(101) = MsgBoxResult.No Then Exit Sub
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Delete_Entries()
|
|
Me.TreeStruktur.Nodes.Clear()
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, Me.Seltype)
|
|
'23-07.2015
|
|
'Me.TreeStruktur.ExpandAll()
|
|
Try
|
|
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, pn.tag, pn.tag)
|
|
Me.TreeStruktur.SelectedNode.ExpandAll()
|
|
Catch
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
End Try
|
|
Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
Me.Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
|
|
Catch
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
|
|
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
|
|
Function Check_Delete() As Boolean
|
|
Dim i As Integer
|
|
Allnodes.Clear()
|
|
subnodes.Clear()
|
|
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), 1)
|
|
If s <> "" Then
|
|
MsgBox("Das Produkt oder ein untergeornetes Produkt wird noch verwendet und kann nicht gelöscht werden." + vbCrLf + vbCrLf + s, MsgBoxStyle.Exclamation, "Produkt löschen")
|
|
Return False
|
|
End If
|
|
Next
|
|
Return True
|
|
End Function
|
|
|
|
Function Check_Subnodes() As Boolean
|
|
Dim pl As New DataTable
|
|
Allnodes.Clear()
|
|
subnodes.Clear()
|
|
clslc.Get_Produktliste()
|
|
pl = clslc.Produkte.Copy
|
|
Dim showmessage As Boolean = False
|
|
Dim s As String
|
|
Dim i As Integer
|
|
For Each n As DevComponents.AdvTree.Node In Me.TreeStruktur.SelectedNodes
|
|
s = s + n.Text + vbCrLf
|
|
subnodes = GetChildren(n)
|
|
For i = 0 To subnodes.Count - 1
|
|
For Each r As DataRow In pl.Rows
|
|
If r.Item(0) = subnodes(i) Then
|
|
s = s + "- " + r.Item("Bezeichnung") + vbCrLf
|
|
showmessage = True
|
|
End If
|
|
Next
|
|
Next
|
|
Next
|
|
If showmessage = True Then
|
|
Dim f As New frmDeleteBestaetigung
|
|
f.TextBox1.Text = s
|
|
f.ShowDialog()
|
|
If f.DialogResult = Windows.Forms.DialogResult.OK Then Return True Else Return False
|
|
Else
|
|
Return True
|
|
End If
|
|
End Function
|
|
|
|
Sub Delete_Entries()
|
|
Dim i As Integer
|
|
If Check_Delete() = False Then Exit Sub
|
|
If check_subnodes = False Then Exit Sub
|
|
|
|
|
|
Allnodes.Clear()
|
|
subnodes.Clear()
|
|
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
|
|
Produkt.Delete(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 TSBtnSuche_Click(sender As Object, e As EventArgs) Handles TSBtnSuche.Click
|
|
If Check_Changes() = False Then Exit Sub
|
|
'clslc.Init_Search()
|
|
clslc.Init_Search(Me.TreeStruktur)
|
|
clslc.Search_first(Me.TreeStruktur, 0, Me.ToolStriptxtSuche.Text)
|
|
'Me.TreeStruktur.SelectedNode = clslc.SearchNode(Me.TreeStruktur, Trim(Me.ToolStriptxtSuche.Text))
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub TSBtnNext_Click(sender As Object, e As EventArgs) Handles TSBtnNext.Click
|
|
If Check_Changes() = False Then Exit Sub
|
|
'Me.TreeStruktur.SelectedNode = clslc.FindNextNode(Me.TreeStruktur)
|
|
clslc.Search_next(Me.TreeStruktur, Me.TreeStruktur.SelectedNode.Tag, Me.ToolStriptxtSuche.Text)
|
|
End Sub
|
|
|
|
|
|
Private Sub ToolStriptxtSuche_KeyDown(sender As Object, e As KeyEventArgs) Handles ToolStriptxtSuche.KeyDown
|
|
If e.KeyCode = Keys.Enter Then
|
|
If Check_Changes() = False Then Exit Sub
|
|
TSBtnSuche_Click(sender, e)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub TSBtnPrevious_Click(sender As Object, e As EventArgs) Handles TSBtnPrevious.Click
|
|
If Check_Changes() = False Then Exit Sub
|
|
'Me.TreeStruktur.SelectedNode = clslc.FindPrevNode(Me.TreeStruktur)
|
|
clslc.Search_prev(Me.TreeStruktur, Me.TreeStruktur.SelectedNode.Tag, Me.ToolStriptxtSuche.Text)
|
|
End Sub
|
|
|
|
Private Sub TSBtnFirst_Click(sender As Object, e As EventArgs) Handles TSBtnFirst.Click
|
|
If Check_Changes() = False Then Exit Sub
|
|
'Me.TreeStruktur.SelectedNode = clslc.FindFirst(Me.TreeStruktur)
|
|
clslc.Search_first(Me.TreeStruktur, 0, Me.ToolStriptxtSuche.Text)
|
|
End Sub
|
|
|
|
Private Sub TSBtnLast_Click(sender As Object, e As EventArgs) Handles TSBtnLast.Click
|
|
clslc.Search_LAST(Me.TreeStruktur, 0, Me.ToolStriptxtSuche.Text)
|
|
|
|
End Sub
|
|
|
|
Private Sub TSBtnFilterAufheben_Click(sender As Object, e As EventArgs) Handles TSBtnFilterAufheben.Click
|
|
If Check_Changes() = False Then Exit Sub
|
|
Me.ToolStriptxtSuche.Text = ""
|
|
clslc.clear_search()
|
|
End Sub
|
|
|
|
Private Sub ToolStripDropDownButton1_Click(sender As Object, e As EventArgs) Handles TSBtnTools.Click
|
|
|
|
End Sub
|
|
|
|
Private Sub PhasenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PhasenToolStripMenuItem.Click
|
|
Dim f As New frmDomainEditorPhase '("lc_phase")
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End Sub
|
|
|
|
Private Sub StrukturToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StrukturToolStripMenuItem.Click
|
|
Dim f As New LCStrukturEditor
|
|
f.ShowDialog()
|
|
Dim tn As New DevComponents.AdvTree.Node
|
|
tn = Me.TreeStruktur.SelectedNode
|
|
Me.TreeStruktur.Nodes.Clear()
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, Me.Seltype)
|
|
'2015-07-23
|
|
'Me.TreeStruktur.ExpandAll()
|
|
Me.TreeStruktur.CollapseAll()
|
|
|
|
Try
|
|
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, tn.Tag, tn.Tag)
|
|
Catch
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
End Try
|
|
Me.TreeStruktur.SelectedNode.EnsureVisible()
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Private Sub KnotenÖffenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KnotenÖffenToolStripMenuItem.Click
|
|
Me.TreeStruktur.SelectedNode.ExpandAll()
|
|
End Sub
|
|
|
|
Private Sub KnotenSchliessenToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles KnotenSchliessenToolStripMenuItem.Click
|
|
Me.TreeStruktur.SelectedNode.CollapseAll()
|
|
End Sub
|
|
|
|
Private Sub InNeuemFensterÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InNeuemFensterÖffnenToolStripMenuItem.Click
|
|
Dim f As New frmLifeCycle(Me.TreeStruktur.SelectedNode.Tag)
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End Sub
|
|
|
|
Private Sub ctxMenuStruktur_Opening(sender As Object, e As ComponentModel.CancelEventArgs) Handles ctxMenuStruktur.Opening
|
|
Me.NeuesElementToolStripMenuItem.Visible = True
|
|
Me.SymbolÄndernToolStripMenuItem.Visible = True
|
|
Me.UrsprungAnzeigenToolStripMenuItem.Visible = False
|
|
Me.UrsprungInNeuemFensterAnzeigenToolStripMenuItem.Visible = False
|
|
Me.KopienAnzeigenToolStripMenuItem.Visible = False
|
|
|
|
If clslc.IstStruktur(Me.TreeStruktur.SelectedNode.Tag) Then
|
|
Me.EintragLöschenToolStripMenuItem.Visible = False
|
|
Me.SymbolÄndernToolStripMenuItem.Visible = False
|
|
Me.SymbolEntfernenToolStripMenuItem.Visible = False
|
|
|
|
Else
|
|
Me.EintragLöschenToolStripMenuItem.Visible = True
|
|
Me.SymbolÄndernToolStripMenuItem.Visible = True
|
|
Me.SymbolEntfernenToolStripMenuItem.Visible = True
|
|
Me.KopienAnzeigenToolStripMenuItem.Visible = True
|
|
Dim clspc As New TKB.VV.Lifecycle.clsProduktCopy
|
|
If clspc.Count_Copies(Me.TreeStruktur.SelectedNode.Tag) = 0 Then
|
|
Me.KopienAnzeigenToolStripMenuItem.Enabled = False
|
|
Else
|
|
Me.KopienAnzeigenToolStripMenuItem.Enabled = True
|
|
End If
|
|
End If
|
|
If clslc.IstCopy(Me.TreeStruktur.SelectedNode.Tag) Then
|
|
Me.NeuesElementToolStripMenuItem.Visible = False
|
|
Me.SymbolÄndernToolStripMenuItem.Visible = False
|
|
Me.UrsprungAnzeigenToolStripMenuItem.Visible = True
|
|
Me.UrsprungInNeuemFensterAnzeigenToolStripMenuItem.Visible = True
|
|
Me.KopienAnzeigenToolStripMenuItem.Visible = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_DragDrop(sender As Object, e As DragEventArgs) Handles TreeStruktur.DragDrop
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
|
|
Dim SourceNode As TreeNode
|
|
SourceNode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"), TreeNode)
|
|
|
|
Dim clientpoint As Point = TreeStruktur.PointToClient(New Point(e.X, e.Y))
|
|
Dim destnode As DevComponents.AdvTree.Node = TreeStruktur.GetNodeAt(clientpoint.Y)
|
|
|
|
Produkt.Add_New(destnode.Tag)
|
|
Produkt.iVerweisnr = New SqlInt32(CType(SourceNode.Tag, Int32))
|
|
Produkt.iImageindex = New SqlInt32(CType(destnode.ImageIndex, Int32))
|
|
Produkt.sBezeichnung = New SqlString(CType(SourceNode.Text, String))
|
|
Produkt.Save_Data()
|
|
Dim newnode As New DevComponents.AdvTree.Node
|
|
newnode.ImageIndex = Produkt.iImageindex.Value
|
|
newnode.Tag = Produkt.iLC_ProduktNr.Value
|
|
newnode.Text = Produkt.sBezeichnung.ToString
|
|
destnode.Nodes.Add(newnode)
|
|
TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, newnode.Tag, newnode.Tag)
|
|
TreeStruktur.DragDropEnabled = True
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_DragEnter(sender As Object, e As DragEventArgs) Handles TreeStruktur.DragEnter
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
|
|
|
|
'TreeNode found allow move effect
|
|
e.Effect = DragDropEffects.Move
|
|
Me.TreeStruktur.DragDropEnabled = False
|
|
Else
|
|
'No TreeNode found, prevent move
|
|
e.Effect = DragDropEffects.None
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_DragLeave(sender As Object, e As EventArgs) Handles TreeStruktur.DragLeave
|
|
Me.TreeStruktur.DragDropEnabled = True
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_DragOver(sender As Object, e As DragEventArgs) Handles TreeStruktur.DragOver
|
|
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) = False Then Exit Sub
|
|
e.Effect = DragDropEffects.Move
|
|
End Sub
|
|
|
|
Private Sub TreeStruktur_KeyDown(sender As Object, e As KeyEventArgs) Handles TreeStruktur.KeyDown
|
|
If e.KeyCode = Keys.F5 Then
|
|
frmLifeCycle_KeyDown(sender, e)
|
|
Exit Sub
|
|
|
|
End If
|
|
If e.KeyCode = Keys.C Then
|
|
If CopyMode = False Then
|
|
CopyMode = True
|
|
Me.ToolStripLabelCopyMode.Visible = True
|
|
SaveBackcolor = Me.TreeStruktur.BackColor
|
|
Me.TreeStruktur.BackColor = Color.PapayaWhip
|
|
Else
|
|
CopyMode = False
|
|
Me.TreeStruktur.BackColor = SaveBackcolor
|
|
Me.ToolStripLabelCopyMode.Visible = False
|
|
End If
|
|
End If
|
|
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.iImageindex = New SqlInt32(CType(f.SelectedImage, Int32))
|
|
Produkt.Save_Data()
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub NurEingesetzteToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NurEingesetzteToolStripMenuItem.Click
|
|
Me.TsBtnFilter.Text = "Filter: Eingesetzte Produkte"
|
|
Me.Seltype = TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_eingesetzt
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_eingesetzt)
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
'Me.TreeStruktur.ExpandAll()
|
|
End Sub
|
|
|
|
Private Sub NurNichtEingesetzteToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NurNichtEingesetzteToolStripMenuItem.Click
|
|
Me.TsBtnFilter.Text = "Filter: Nicht eingesetzte Produkte"
|
|
Me.Seltype = TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_nicht_eingesetzt
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_nicht_eingesetzt)
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
'Me.TreeStruktur.ExpandAll()
|
|
End Sub
|
|
|
|
Private Sub AlleToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AlleToolStripMenuItem.Click
|
|
Me.TsBtnFilter.Text = "Filter: Alle Produkte"
|
|
|
|
Me.Seltype = TKB.VV.Lifecycle.clslifeCycle.SelectionType.alle
|
|
clslc.Load_Treestrukutr(Me.TreeStruktur, TKB.VV.Lifecycle.clslifeCycle.SelectionType.alle)
|
|
Me.TreeStruktur.SelectedNode = Me.TreeStruktur.Nodes(0)
|
|
' Me.TreeStruktur.ExpandAll()
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Private Sub cbboxAbgeloest_mit_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxAbgeloest_mit.SelectedIndexChanged
|
|
If Me.cbboxAbgeloest_mit.Text <> "" Then Me.btnAbgeloestesProdukt.Enabled = True Else Me.btnAbgeloestesProdukt.Enabled = False
|
|
End Sub
|
|
|
|
Private Sub btnAbgeloestesProdukt_Click(sender As Object, e As EventArgs) Handles btnAbgeloestesProdukt.Click
|
|
Try
|
|
Dim f As New frmLifeCycle(Me.cbboxAbgeloest_mit.SelectedValue, True)
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles tsbtnReporing.Click
|
|
Dim f As New frmLifeCiclyReporting
|
|
f.imglist = Me.ImgList
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End Sub
|
|
|
|
Private Sub ProdukttypToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProdukttypToolStripMenuItem.Click
|
|
Dim f As New frmDomainEditor("lc_produkttyp")
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End Sub
|
|
|
|
|
|
Private Sub txtAbgeloestam_TextChanged(sender As Object, e As EventArgs) Handles txtAbgeloestam.TextChanged
|
|
If Me.txtAbgeloestam.Text <> " . ." Then Me.GrpAblösung.BackColor = Color.LightPink Else Me.GrpAblösung.BackColor = Me.GrpAenderungsnachweis.BackColor
|
|
|
|
If Me.isgetdata = True Then Exit Sub
|
|
If Me.txtAbgeloestam.Text = " . ." Then
|
|
Me.txtAbgeloestdurchwen.Text = ""
|
|
Else
|
|
Me.txtAbgeloestdurchwen.Text = Produkt.Get_Mutierer(Globals.clsmitarbeiter.iMitarbeiternr.Value)
|
|
If Me.cbEingesetzt.Checked Then
|
|
If MsgBox("Produkt ist als 'eingesetzt' markiert. Hacken entfernen? ", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then
|
|
Me.cbEingesetzt.Checked = False
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnSelect.Click
|
|
Dim f As New frmStrukturSelect(TKB.VV.Lifecycle.clslifeCycle.SelectionType.nur_eingesetzt, TKB.VV.Lifecycle.clslifeCycle.SingleMultiSelectionType.SingleSelection, Me.TreeStruktur.SelectedNode.Tag)
|
|
f.ImgList = Me.ImgList
|
|
f.TreeStruktur.ImageList = Me.ImgList
|
|
f.ShowDialog()
|
|
If f.DialogResult = Windows.Forms.DialogResult.OK Then
|
|
Me.cbboxAbgeloest_mit.SelectedValue = f.SingleNode
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub SQLAbfragenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SQLAbfragenToolStripMenuItem.Click
|
|
Dim f As New frmDomainEditor("lc_sql")
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End Sub
|
|
|
|
|
|
Private Sub cbboxAbgeloest_mit_DropDown(sender As Object, e As EventArgs) Handles cbboxAbgeloest_mit.DropDown
|
|
|
|
End Sub
|
|
|
|
Private Sub GrpAblösung_MouseEnter(sender As Object, e As EventArgs) Handles GrpAblösung.MouseEnter
|
|
End Sub
|
|
|
|
Sub refresh_cbbox_abloesung()
|
|
|
|
|
|
Me.GrpAblösung.Enabled = False
|
|
Me.ChangeChecker_Enabled = False
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Me.cbboxAbgeloest_mit.BeginUpdate()
|
|
'Me.cbboxAbgeloest_mit.Enabled = False
|
|
Dim SaveValue As Integer
|
|
Try
|
|
SaveValue = Me.cbboxAbgeloest_mit.SelectedValue
|
|
SaveValue = Me.Abgeloestmit_Value
|
|
|
|
Catch ex As Exception
|
|
SaveValue = -1
|
|
End Try
|
|
clslc.Produkte.Rows.Clear()
|
|
clslc.Get_Produktliste()
|
|
|
|
For Each r As DataRow In clslc.Produkte.Rows
|
|
If r("eingesetzt") = 0 And r("id") <> SaveValue Then
|
|
r.Delete()
|
|
End If
|
|
Next
|
|
clslc.Produkte.AcceptChanges()
|
|
Dim i As Integer
|
|
subnodes.Clear()
|
|
For Each n As DevComponents.AdvTree.Node In Me.TreeStruktur.SelectedNodes
|
|
subnodes = GetChildren(n)
|
|
Next
|
|
|
|
For i = 0 To subnodes.Count - 1
|
|
For Each r As DataRow In clslc.Produkte.Rows
|
|
If r(0) = subnodes(i) Then
|
|
r.Delete()
|
|
clslc.Produkte.AcceptChanges()
|
|
Exit For
|
|
End If
|
|
Next
|
|
Next
|
|
|
|
For Each r As DataRow In clslc.Produkte.Rows
|
|
If r.Item(0) = Me.TreeStruktur.SelectedNode.Tag Then
|
|
r.Delete()
|
|
clslc.Produkte.AcceptChanges()
|
|
Exit For
|
|
End If
|
|
Next
|
|
clslc.Produkte.AcceptChanges()
|
|
Me.cbboxAbgeloest_mit.DataSource = Nothing
|
|
Me.cbboxAbgeloest_mit.Items.Clear()
|
|
Me.cbboxAbgeloest_mit.DataSource = clslc.Produkte
|
|
Me.cbboxAbgeloest_mit.DisplayMember = "Bezeichnung"
|
|
Me.cbboxAbgeloest_mit.ValueMember = "id"
|
|
If SaveValue <> -1 Then Me.cbboxAbgeloest_mit.SelectedValue = SaveValue
|
|
Me.cbboxAbgeloest_mit.EndUpdate()
|
|
'Me.cbboxAbgeloest_mit.Enabled = True
|
|
Me.Cursor = Cursors.Default
|
|
Me.ChangeChecker_Enabled = True
|
|
Me.GrpAblösung.Enabled = True
|
|
End Sub
|
|
|
|
Private Sub SymbolEntfernenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SymbolEntfernenToolStripMenuItem.Click
|
|
Me.TreeStruktur.SelectedNode.ImageIndex = -1
|
|
Produkt.iImageindex = New SqlInt32(CType(-1, Int32))
|
|
Produkt.Save_Data()
|
|
End Sub
|
|
|
|
Private Sub UrsprungAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UrsprungAnzeigenToolStripMenuItem.Click
|
|
Show_Ursprung(Me.TreeStruktur.SelectedNode.Tag, False)
|
|
End Sub
|
|
|
|
Sub Show_Ursprung(ByVal tag As Integer, ByVal newwindow As Boolean)
|
|
Dim pc As New TKB.VV.Lifecycle.clsProduktCopy
|
|
pc.cpMainConnectionProvider = Globals.conn
|
|
pc.iLc_produkt_copynr = New SqlInt32(CType(tag, Int32))
|
|
pc.SelectOne()
|
|
|
|
Dim newtag As Integer = pc.iLc_produktnr
|
|
pc.Dispose()
|
|
|
|
If newwindow = True Then
|
|
Dim f As New frmLifeCycle(newtag)
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
Else
|
|
Me.TreeStruktur.SelectedNode = clslc.FindNode(Me.TreeStruktur.Nodes, newtag, newtag)
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub UrsprungInNeuemFensterAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UrsprungInNeuemFensterAnzeigenToolStripMenuItem.Click
|
|
Show_Ursprung(Me.TreeStruktur.SelectedNode.Tag, True)
|
|
End Sub
|
|
|
|
Private Sub KopienAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KopienAnzeigenToolStripMenuItem.Click
|
|
Dim f As New frmKopien(Me.TreeStruktur.SelectedNode.Tag, Me.TreeStruktur.SelectedNode.Text, Me.ParentForm)
|
|
f.MdiParent = Me.MdiParent
|
|
f.Show()
|
|
End Sub
|
|
|
|
Private Sub ToolStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked
|
|
|
|
End Sub
|
|
|
|
Private Sub AlleKnotenÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AlleKnotenÖffnenToolStripMenuItem.Click
|
|
TreeStruktur.ExpandAll()
|
|
End Sub
|
|
|
|
Private Sub AlleKnotenSchliessenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AlleKnotenSchliessenToolStripMenuItem.Click
|
|
Me.TreeStruktur.CollapseAll()
|
|
End Sub
|
|
End Class |