Imports System.Data.SqlTypes Imports System.Data.SqlClient Imports C1.Win.C1TrueDBGrid '''Vertragsaprtner '''TKB.VV.Utils.Tabellenspalte '''TKB.VV.Utils.MySecurity '''TKB.VV.Utils.MyMessage '''TKB.VV.Sysadmin.DomainTable '''TKB.VV.SLA.clsServiceKatalogTree '''TKB.VV.SLA '''TKB.VV.Sysadmin '''TKB.VV.Utils ''' Public Class frmVertragspartner #Region "Deklarationen" Dim Vertragspartnerdata As New TKB.VV.Vertrag.clsVertragspartner Dim Kontaktperson As New TKB.VV.Vertrag.clsPersonen Dim sec As New TKB.VV.Utils.MySecurity Dim msg As New TKB.VV.Utils.MyMessage Dim FormReadonly As Boolean = False Dim FormDataChanged As Boolean = False Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte Private vpnr As Integer Private Anzeige As Boolean Dim Neuer_Datensatz As Boolean = False Friend selectPoint As New System.Drawing.Point() Dim IsOnLoad As Boolean = True #End Region #Region "Closing / Check_Changes" ''' ''' Schliessen des Formulars ''' ''' ''' ''' Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If Me.FormReadonly = True Then Exit Sub If check_changes() = False Then e.Cancel = True Else If Me.Vertragspartnerdata.Neuer_Datensatz = True Then Me.Vertragspartnerdata.Delete(Me.Vertragspartnerdata.iVertragspartnerNr.Value) Globals.MyEventHanlder.Vertragspartner_Closed(Me.Vertragspartnerdata.iVertragspartnerNr.Value) Me.dispose() End If End Sub ''' ''' Prüfung, ob Datenänderungen vorgenommen wurden. ''' ''' Private Function Check_Changes() As Boolean If Me.FormReadonly Then Return True If Me.IsOnLoad = True Then Return True Dim msgres As MsgBoxResult If Me.FormDataChanged Then msgres = msg.Show_MessageYesNoCancel(3) Select Case msgres Case MsgBoxResult.Yes Save_data() Return True Case MsgBoxResult.Cancel Return False Case MsgBoxResult.No Return True End Select Else Return True End If End Function #End Region #Region "Eventhandler ChangeEreignisse" ''' ''' Allg Eventhandler für Chanage-Ereignise festlegen ''' ''' ''' 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 CheckBox Then Dim ctl As CheckBox = c AddHandler ctl.CheckedChanged, evh End If Next End Sub ''' ''' Envent-Handler für Change-Ereignisse ''' ''' ''' ''' Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) Me.FormDataChanged = True End Sub ''' ''' 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 ''' ''' Base-Contrlo (z.B. aktuelles Formular ''' Schlüssel welcher gesucht werden soll ''' Liste der gefundenen Objekte ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. ''' ''' 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 "Formular" ''' ''' Constructor New ''' ''' Sub New() MyBase.New() Me.InitializeComponent() Me.vpnr = -1 End Sub ''' ''' Formualr mit Vertragspartnernr und Anzeigestatus öffnen ''' ''' Nr des Vertragspartners ''' True=Readonly, False=normal ''' Sub New(ByVal vertragspartnernr As Integer, ByVal Anzeige As Boolean, Optional ByVal CreateNew As Boolean = False) MyBase.New() Me.InitializeComponent() Me.Anzeige = Anzeige If CreateNew Then Me.vpnr = Me.Vertragspartnerdata.Add_New Me.txtName_Firma1.Text = "*** Neuer Vertragspartner ***" Me.txtName_Firma1.SelectAll() Else Me.vpnr = vertragspartnernr End If End Sub ''' ''' destruction Dispose ''' ''' Overloads Sub dispose() Vertragspartnerdata.dispose() Kontaktperson.Dispose() sec = Nothing msg = Nothing SpaltenTitel = Nothing MyBase.Dispose() End Sub ''' ''' Formular laden ''' ''' ''' ''' Private Sub frmVertragspartner_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Anzeige = True Then Me.TSBtnSuche.Enabled = False Me.TSBtnSave.Enabled = False Else Me.TSBtnSuche.Enabled = True End If 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.TS2BtnNew.Enabled = False Me.TS2BtnCopy.Enabled = False Me.TS2BtnDelete.Enabled = False Me.KontaktAnzeigenToolStripMenuItem.Enabled = False Me.KontaktKopierenToolStripMenuItem.Enabled = False Me.KontaktNeuToolStripMenuItem.Enabled = False Me.KontaktInaktivierenToolStripMenuItem.Enabled = False Else Me.FormReadonly = False End If Me.Refresh_Vertragspartnerliste() If Me.vpnr <> -1 Then Me.TreeVertragspartner.SelectedNode = Me.FindNode(Me.TreeVertragspartner.Nodes, Me.vpnr, "") Else Me.TreeVertragspartner.SelectedNode = Me.TreeVertragspartner.Nodes(0) End If Load_Securitylevel() Get_Data(Me.vpnr) If Me.Neuer_Datensatz = True Then Me.Vertragspartnerdata.Neuer_Datensatz = True Me.Neuer_Datensatz = False End If Me.AddChanges(Me) If Me.FormReadonly Then sec.Set_Form_Readonly(Me) End Sub ''' ''' Anzeige des Suchformulars, wenn keine Vertragspartnernummer vorhanden ist ''' ''' ''' ''' Private Sub frmVertragspartner_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown 'If Me.vpnr = -1 Then Me.TSBtnSuche_Click(sender, e) Me.IsOnLoad = False End Sub #End Region #Region "Buttons/Menu" ''' ''' Formular schliessen ''' ''' ''' ''' Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click Me.Close() End Sub ''' ''' Sicherungs-Button betätigt ''' ''' ''' ''' Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click Me.Save_Data() Me.txtMutiert_am.Text = Me.Vertragspartnerdata.daMutiert_am.ToString End Sub ''' ''' Datensatz kopieren ''' ''' ''' ''' Private Sub TSBtnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnCopy.Click If Me.Check_Changes = False Then Exit Sub Me.Get_Data(Vertragspartnerdata.Create_Copy(Me.Vertragspartnerdata.iVertragspartnerNr.Value)) Me.Vertragspartnerdata.Neuer_Datensatz = True End Sub ''' ''' Neuer Datensatz erstellen ''' ''' ''' ''' Private Sub TSBtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnNew.Click If Me.Check_Changes = False Then Exit Sub Me.Get_Data(Me.Vertragspartnerdata.Add_New) Me.Vertragspartnerdata.Neuer_Datensatz = True End Sub ''' ''' Aktueller Datensatz inaktivieren ''' ''' ''' ''' Private Sub TSBtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click If msg.Show_MessageYesNo(250) = MsgBoxResult.Yes Then Dim v As New TKB.VV.Vertrag.clsVertragselement If v.Generate_Pendenz(0, Me.Vertragspartnerdata.sNameZ1.Value.ToString + "," + Me.Vertragspartnerdata.sOrt.Value.ToString, False, Me.Vertragspartnerdata.iVertragspartnerNr) = MsgBoxResult.Cancel Then Exit Sub End If Me.Vertragspartnerdata.Delete_Partner(Me.Vertragspartnerdata.iVertragspartnerNr.Value) Me.Close() End If End Sub ''' ''' Menu Beenden ''' ''' ''' ''' Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click Me.TSBtnQuit_Click(sender, e) End Sub ''' ''' Vertragspartner suchen ''' ''' ''' ''' Private Sub TSBtnSuche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSuche.Click Me.Refresh_Vertragspartnerliste() 'If Not Me.FormReadonly Then Check_Changes() 'Dim i As Integer 'If Me.Vertragspartnerdata.Vertragspartner_Suchen(i) = True Then ' Me.Get_Data(i) 'End If End Sub #End Region #Region "Daten" ''' ''' Vertragspartner laden ''' ''' ''' Private Sub Get_Data(ByVal Nr As Integer) Try Me.Vertragspartnerdata.Get_Partner(Nr) Me.txtName_Firma1.Text = Me.Vertragspartnerdata.sNameZ1.Value Me.txtVorname_Firma2.Text = Me.Vertragspartnerdata.sNameZ2.Value Me.txtStrasse.Text = Me.Vertragspartnerdata.sStrasse.Value Me.txtPostfach.Text = Me.Vertragspartnerdata.sPostfach.Value Me.txtPlz.Text = Me.Vertragspartnerdata.sPLZ.Value Me.txtOrt.Text = Me.Vertragspartnerdata.sOrt.Value Me.txtTelefon.Text = Me.Vertragspartnerdata.sTelefon.Value Me.txtTelefax.Text = Me.Vertragspartnerdata.sTelefax.Value Me.txtEmail.Text = Me.Vertragspartnerdata.sEMail.Value Me.txtInternet.Text = Me.Vertragspartnerdata.sInternet.Value Me.txtBemerkung.Text = Me.Vertragspartnerdata.sBemerkung.Value Me.txtErstellt_am.Text = Me.Vertragspartnerdata.daErstellt_am.ToString Me.txtMutiert_am.Text = Me.Vertragspartnerdata.daMutiert_am.ToString Me.txtMutierer.Text = Me.Vertragspartnerdata.iMutierer.Value Me.cbAktiv.Checked = Me.Vertragspartnerdata.bAktiv.Value = True Me.cboxSecurityLevel.SelectedValue = Me.Vertragspartnerdata.iSecurityLevelNr.Value Me.txtSuchbegriffe.Text = Me.Vertragspartnerdata.sSuchbegriffe.ToString Set_Titel() Me.FormDataChanged = False Refresh_Personen() 'If Not Anzeige Then ' Me.PnlDetails.Enabled = True ' Me.GrpKontakte.Enabled = True ' Me.TSBtnSave.Enabled = True ' Me.TSBtnCopy.Enabled = True ' Me.TSBtnNew.Enabled = True ' Me.TSBtnDelete.Enabled = True 'End If sec.Set_Form_Security(Me) Catch ex As Exception FormDataChanged = False Me.PnlDetails.Enabled = False Me.GrpKontakte.Enabled = False Me.TSBtnSave.Enabled = False Me.TSBtnCopy.Enabled = False Me.TSBtnNew.Enabled = True Me.TSBtnDelete.Enabled = False sec.Set_Form_Security(Me) End Try End Sub ''' ''' Vertragspartner sichern, sofern Änderungen vorgenommen wurden, anschliessend erneut laden ''' ''' Private Sub Save_Data() If Me.FormDataChanged Then Me.Vertragspartnerdata.sNameZ1 = New SqlString(CType(Me.txtName_Firma1.Text, String)) Me.Vertragspartnerdata.sNameZ2 = New SqlString(CType(Me.txtVorname_Firma2.Text, String)) Me.Vertragspartnerdata.sStrasse = New SqlString(CType(Me.txtStrasse.Text, String)) Me.Vertragspartnerdata.sPostfach = New SqlString(CType(Me.txtPostfach.Text, String)) Me.Vertragspartnerdata.sPLZ = New SqlString(CType(Me.txtPlz.Text, String)) Me.Vertragspartnerdata.sOrt = New SqlString(CType(Me.txtOrt.Text, String)) Me.Vertragspartnerdata.sTelefon = New SqlString(CType(Me.txtTelefon.Text, String)) Me.Vertragspartnerdata.sTelefax = New SqlString(CType(Me.txtTelefax.Text, String)) Me.Vertragspartnerdata.sEMail = New SqlString(CType(Me.txtEmail.Text, String)) Me.Vertragspartnerdata.sInternet = New SqlString(CType(Me.txtInternet.Text, String)) Me.Vertragspartnerdata.sBemerkung = New SqlString(CType(Me.txtBemerkung.Text, String)) Me.Vertragspartnerdata.sSuchbegriffe = New SqlString(CType(Me.txtSuchbegriffe.Text, String)) Dim save_aktiv As Boolean = Vertragspartnerdata.bAktiv.Value Me.Vertragspartnerdata.bAktiv = New SqlBoolean(CType(Me.cbAktiv.Checked, Boolean)) Me.Vertragspartnerdata.iSecurityLevelNr = New SqlInt32(CType(Me.cboxSecurityLevel.SelectedValue, Int32)) If save_aktiv <> Vertragspartnerdata.bAktiv.Value And Vertragspartnerdata.bAktiv.Value = False Then If msg.Show_MessageYesNo(250) = MsgBoxResult.Yes Then Dim v As New TKB.VV.Vertrag.clsVertragselement If v.Generate_Pendenz(0, Me.Vertragspartnerdata.sNameZ1.Value.ToString + "," + Me.Vertragspartnerdata.sOrt.Value.ToString, False, Me.Vertragspartnerdata.iVertragspartnerNr) = MsgBoxResult.Cancel Then Me.cbAktiv.Checked = save_aktiv Exit Sub End If Else Exit Sub End If End If Get_Data(Me.Vertragspartnerdata.Save_Data) If save_aktiv <> Vertragspartnerdata.bAktiv.Value And Vertragspartnerdata.bAktiv.Value = False Then Me.Vertragspartnerdata.Delete_Partner(Me.Vertragspartnerdata.iVertragspartnerNr.Value) End If Me.FormDataChanged = False End If End Sub ''' ''' Personenliste aktualisieren ''' ''' Private Sub Refresh_Personen() Try If check_changes = False Then Exit Sub Catch ex As Exception End Try Me.C1Kontakte.Enabled = True Me.Vertragspartnerdata.Get_Kontaktpersonen(Me.C1Kontakte) Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Kontakte, "Person", Me.Vertragspartnerdata.Kontaktpersonen.Tabledata) sec.Set_Form_Security(Me) Me.C1Kontakte.Enabled = True Me.Set_KontaktButtons() End Sub ''' ''' Änderungsvermerk sofern Änderungen vorgenommen wurden ''' ''' ''' ''' Private Sub txtBemerkung_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBemerkung.TextChanged, cboxSecurityLevel.SelectedIndexChanged, txtTelefon.TextChanged, _ txtTelefax.TextChanged, txtEmail.TextChanged, txtInternet.TextChanged, cbAktiv.CheckedChanged, txtOrt.TextChanged, txtPlz.TextChanged, txtPostfach.TextChanged, _ txtStrasse.TextChanged, txtVorname_Firma2.TextChanged, txtName_Firma1.TextChanged Me.FormDataChanged = True Set_Titel() 'If sender.name = "cbAktiv" Then ' If Not Me.IsOnLoad Then ' If Me.cbAktiv.Checked = False Then ' msg.show_standardmessage(851, MsgBoxStyle.Critical) ' End If ' End If 'End If End Sub #End Region #Region "Security" ''' ''' Laden der Securitylevel-Daten in die Combobox ''' ''' Private Sub Load_Securitylevel() Dim seclevel As New TKB.VV.DB.clsSecurityLevel Dim secleveldata As New DataTable seclevel.cpMainConnectionProvider = Globals.conn Globals.conn.OpenConnection() secleveldata = seclevel.SelectAll Globals.conn.CloseConnection(True) Me.cboxSecurityLevel.DataSource = secleveldata Me.cboxSecurityLevel.DisplayMember = "Bezeichnung" Me.cboxSecurityLevel.ValueMember = "SecurityLevelNr" seclevel.Dispose() End Sub #End Region #Region "Kontakte" Private Sub C1Kontakte_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1Kontakte.Click Me.Set_KontaktButtons() End Sub ''' ''' Doubleclick in der Kontaktliste ''' ''' ''' ''' Private Sub C1Kontakte_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles C1Kontakte.DoubleClick Try Dim f As New frmPerson(Me.C1Kontakte.Columns("Personnr").Value, Me.Vertragspartnerdata.iVertragspartnerNr.Value, Me.FormReadonly) f.ShowDialog() Me.Refresh_Personen() Catch End Try End Sub ''' ''' Mousedown Kontakte ''' ''' ''' ''' Private Sub C1Kontakte_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles C1Kontakte.MouseDown Me.C1Kontakte.Bookmark = Me.C1Kontakte.RowContaining(e.Y) End Sub #Region "Kontextmenu Kontakte" Private Sub KontaktMenuStrip_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles KontaktMenuStrip.Opening Disable_Enable_Menu(Me.KontaktMenuStrip, Me.C1Kontakte) End Sub ''' ''' Enabling bzw. Disabling der Menu-Einträge aufgrund der angezeigten Rows im Truedbgrind ''' ''' Zu bearbeitendes Menu ''' Betroffenes Grid ''' ''' Nach dem Setzen der Submenus wird sec.form_Security durchlaufen, damit allfällig standardmössig aktivierte Menueinträge ''' aufgrund der Security-Einstellung wieder deaktiviert werden ''' ''' Enabling bzw. Disabling der Menu-Einträge aufgrund der angezeigten Rows im Truedbgrind ''' ''' Zu bearbeitendes Menu ''' Betroffenes Grid ''' ''' Nach dem Setzen der Submenus wird sec.form_Security durchlaufen, damit allfällig standardmössig aktivierte Menueinträge ''' aufgrund der Security-Einstellung wieder deaktiviert werden Private Function Disable_Enable_Menu(ByRef menu As ContextMenuStrip, ByRef c1data As C1TrueDBGrid) If Me.FormReadonly Then For Each obj As Object In menu.Items Dim objtype As System.Type = obj.GetType If LCase(objtype.Name) = "toolstripmenuitem" Then Dim mnu As ToolStripMenuItem = obj If (mnu.Text.IndexOf("Anzeigen") > 0 Or mnu.Text.IndexOf("anzeigen") > 0) And c1data.Splits(0).Rows.Count > 0 Then mnu.Enabled = True Else mnu.Enabled = False End If End If Next sec.Set_Form_Security(Me) Exit Function End If If c1data.Splits(0).Rows.Count = 0 Then For Each obj As Object In menu.Items Dim objtype As System.Type = obj.GetType If LCase(objtype.Name) = "toolstripmenuitem" Then Dim mnu As ToolStripMenuItem = obj If mnu.Text.IndexOf("Neu") > 0 Then mnu.Enabled = True Else mnu.Enabled = False End If End If Next Else For Each obj As Object In menu.Items Dim objtype As System.Type = obj.GetType If LCase(objtype.Name) = "toolstripmenuitem" Then Dim mnu As ToolStripMenuItem = obj mnu.Enabled = True End If Next End If sec.Set_Form_Security(Me) End Function 'Private Function Disable_Enable_Menu(ByRef menu As ContextMenuStrip, ByRef c1data As C1TrueDBGrid) ' If c1data.Splits(0).Rows.Count = 0 Then ' For Each obj As Object In menu.Items ' Dim objtype As System.Type = obj.GetType ' If LCase(objtype.Name) = "toolstripmenuitem" Then ' Dim mnu As ToolStripMenuItem = obj ' If mnu.Text.IndexOf("Neu") > 0 Then ' mnu.Enabled = True ' Else ' mnu.Enabled = False ' End If ' End If ' Next ' Else ' For Each obj As Object In menu.Items ' Dim objtype As System.Type = obj.GetType ' If LCase(objtype.Name) = "toolstripmenuitem" Then ' Dim mnu As ToolStripMenuItem = obj ' mnu.Enabled = True ' End If ' Next ' End If ' sec.Set_Form_Security(Me) 'End Function ''' ''' Buttons für das Kontakt-Grid abhängig der angezeigten Datensätze enablen bzw. disablen ''' ''' ''' Private Function Set_KontaktButtons() If Me.C1Kontakte.Splits(0).Rows.Count = 0 Then Me.TS2BtnNew.Enabled = True Me.TS2BtnView.Enabled = False Me.TS2BtnCopy.Enabled = False Me.TS2BtnDelete.Enabled = False Else Me.TS2BtnNew.Enabled = True Me.TS2BtnView.Enabled = True Me.TS2BtnCopy.Enabled = True Me.TS2BtnDelete.Enabled = True End If sec.Set_Form_Security(Me) End Function ''' ''' KontextMenu anzeigen ''' ''' ''' ''' Private Sub AnzeigenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KontaktAnzeigenToolStripMenuItem.Click Try Me.TS2BtnView_Click(sender, e) Catch End Try End Sub ''' ''' Kontextmenu Kopieren ''' ''' ''' ''' Private Sub KontaktKopierenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KontaktKopierenToolStripMenuItem.Click Try Me.TS2BtnCopy_Click(sender, e) Catch End Try End Sub ''' ''' Kontextmenu Neu ''' ''' ''' ''' Private Sub KontaktNeuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KontaktNeuToolStripMenuItem.Click Try Me.TS2BtnNew_Click(sender, e) Catch End Try End Sub ''' ''' Kontextmenu Delete ''' ''' ''' ''' Private Sub KontaktInaktivierenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KontaktInaktivierenToolStripMenuItem.Click Try Me.TS2BtnDelete_Click(sender, e) Catch End Try End Sub ''' ''' Rowstyle von inaktiven Personen ''' ''' ''' ''' Private Sub C1Kuendigungsfristen_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles C1Kontakte.FetchRowStyle Try If Me.C1Kontakte.Columns("aktiv").CellValue(e.Row) = False Then Dim FNT As Font = e.CellStyle.Font e.CellStyle.Font = New Font(FNT, FontStyle.Strikeout) e.CellStyle.ForeColor = Color.Gray End If Catch End Try End Sub #End Region #Region "Toolbar2 Kontaktpersonen" ''' ''' Personendetails anzeigen bzw. bearbeiten ''' ''' ''' ''' Private Sub TS2BtnView_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TS2BtnView.Click Try Dim f As New frmPerson(Me.C1Kontakte.Columns("Personnr").Value, Me.Vertragspartnerdata.iVertragspartnerNr.Value, Me.FormReadonly) f.ShowDialog() Me.Refresh_Personen() Catch ex As Exception End Try End Sub ''' ''' Kopie eines Datensatzen erstellen ''' ''' ''' ''' Private Sub TS2BtnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TS2BtnCopy.Click Try Me.Vertragspartnerdata.Kontaktperson.Create_Copy(Me.C1Kontakte.Columns("Personnr").Value) Me.Refresh_Personen() Catch End Try End Sub ''' ''' Neuer Kontakt hinzufügen ''' ''' ''' ''' Private Sub TS2BtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TS2BtnNew.Click Dim f As New frmPerson(0, Me.Vertragspartnerdata.iVertragspartnerNr.Value, Me.FormReadonly, True) f.ShowDialog() Me.Refresh_Personen() End Sub ''' ''' Kontakt löschen (inaktivieren) ''' ''' ''' ''' Private Sub TS2BtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TS2BtnDelete.Click If msg.Show_MessageYesNo(200) = MsgBoxResult.Yes Then Me.Vertragspartnerdata.Kontaktperson.Delete_Kontakt(Me.C1Kontakte.Columns("Personnr").Value) Me.Refresh_Personen() End If End Sub #End Region #End Region Private Sub TStxtFilter_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TStxtFilter.KeyDown If e.KeyCode = Keys.Enter Then refresh_vertragspartnerliste() End If If Me.TreeVertragspartner.Nodes.Count = 1 Then Me.TreeVertragspartner.SelectedNode = Me.TreeVertragspartner.Nodes(0) End If End Sub Private Sub Refresh_Vertragspartnerliste() Me.Vertragspartnerdata.Get_Vertragspartnerliste(Me.TStxtFilter.Text, Me.TreeVertragspartner) If Me.vpnr = -1 Then Me.TreeVertragspartner.SelectedNode = Me.TreeVertragspartner.Nodes(0) Me.vpnr = Me.TreeVertragspartner.SelectedNode.Tag Else Me.TreeVertragspartner.SelectedNode = FindNode(Me.TreeVertragspartner.Nodes, Me.vpnr, "") End If End Sub ''' ''' Suchen eines Knoten Treeview ''' ''' Nodes des TreeView ''' Tag.Keyvalue ''' Node.Text als Suchbegriff ''' ''' Public Function FindNode(ByVal _nodeCollection As TreeNodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As TreeNode Dim tmpNode As TreeNode For Each _child As TreeNode In _nodeCollection If _child.Tag = SearchVal Then Return _child End If Next Return Nothing End Function Private Sub TSBtnFilterAufheben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnFilterAufheben.Click Me.TStxtFilter.Text = "" Refresh_Vertragspartnerliste() End Sub Private Sub TreeVertragspartner_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeVertragspartner.AfterSelect If Me.Check_Changes = False Then Exit Sub Me.vpnr = Me.TreeVertragspartner.SelectedNode.Tag Me.IsOnLoad = True Me.Get_Data(Me.vpnr) Me.IsOnLoad = False End Sub Private Sub TreeVertragspartner_BackColorChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeVertragspartner.BackColorChanged End Sub ''' ''' Mousedown-Ereignis auf dem Tree ''' ''' ''' ''' Private Sub TreeStruktur_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeVertragspartner.MouseDown Try Dim mouseEvents As MouseEventArgs mouseEvents = e selectPoint.Y = mouseEvents.Y selectPoint.X = mouseEvents.X Me.TreeVertragspartner.SelectedNode = Me.TreeVertragspartner.GetNodeAt(selectPoint) Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub Set_Titel() Me.Text = "Vertragspartner - " + Me.txtName_Firma1.Text End Sub End Class