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

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.Panel1.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 ToolStripButton1.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 Button1.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