Imports System.Data Imports System.Data.SqlClient Imports System.Data.SqlTypes Public Class frmLizenzverwaltung #Region "Deklarationen" Dim Lizenz As New TKB.VV.Lizenz.clsLizenz Dim Lizenzinformationen As New TKB.VV.Lizenz.clsLizenzinformationen Dim Lizenztyp As New DataTable Dim clsLizenztyp As New TKB.VV.DB.clsLizenztyp Dim ve As New TKB.VV.vertrag.clsVertragselement Dim Applikationnr As Integer = 0 Dim Treeviewdata As New TKB.VV.Lizenz.clsLizenzTree Dim treeviewdata_Suche As New TKB.VV.Lizenz.clsLizenzTree ' Dim TreeSuche As New TreeView Dim Suchresultate As New DataTable Dim MaxSuchTreffer As Integer = 0 Dim TreeParent As New TKB.VV.Lizenz.clsLizenzTree 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 Anzeige As Boolean = False Dim Aktuelle_Lizenz As Integer = 0 Dim IsSturkturElement As Boolean = False Dim Multiline As New TabControlMultiLine Dim Aktueller_Vertragspartner As Integer = 0 ''' ''' Generic Event-Handler ''' ''' Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder Dim OnLoad 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 And Not Me.IsSturkturElement Then Exit Sub If Check_Changes() = False Then e.Cancel = True Else Lizenz.Dispose() Me.Dispose() End If End Sub ''' ''' Prüfung, ob Datenänderungen vorgenommen wurden. ''' ''' Private Function Check_Changes() As Boolean If Me.FormReadonly And Not Me.IsSturkturElement Then Return True Exit Function End If 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 Me.FormDataChanged = False 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 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 CheckedListBox Then Dim ctl As CheckedListBox = c AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange 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 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 ''' ''' 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" Sub New() InitializeComponent() End Sub Sub New(ByVal LizenzNr As Integer, Optional ByVal Anzeige As Boolean = False) InitializeComponent() Me.Aktuelle_Lizenz = LizenzNr Me.FormReadonly = Anzeige If Me.Aktuelle_Lizenz <> 0 Then Dim Lic As New TKB.VV.DB.clsLizenz Lic.cpMainConnectionProvider = Globals.conn Lic.iLizenzNr = New SqlInt32(CType(Me.Aktuelle_Lizenz, Int32)) Lic.SelectOne() Lic.Dispose() End If End Sub Sub New(ByVal CreateNew As Boolean) InitializeComponent() If CreateNew Then Me.Aktuelle_Lizenz = Me.Lizenz.Add_New End If End Sub Private Sub frmLizenzverwaltung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Catch End Try Treeviewdata.Load_Tree(Me.TreeLizenzen, False, "", Me.cboxNurAktive.Checked) 'Treeviewdata.Load_Tree(Me.TreeApplikationen, False, "", Me.cboxNurAktive.Checked) If Anzeige = True Then Me.FormReadonly = True 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.TSBtnNew.Enabled = False Me.TSBtnDelete.Enabled = False Else Me.FormReadonly = False End If Load_Securitylevel() TreeParent.Load_Tree(Me.cbboxParentTree.TreeView, True) AddChanges(Me) If Me.Aktuelle_Lizenz <> 0 Then Me.TreeLizenzen.SelectedNode = Me.Treeviewdata.FindNode(Me.TreeLizenzen.Nodes, Me.Aktuelle_Lizenz, "") End If ' Get_Data(Me.Aktuelle_Applikation) If Me.FormReadonly Then sec.Set_Form_Readonly(Me) If Me.Aktuelle_Lizenz <> 0 Then Me.TreeLizenzen.SelectedNode = Me.Treeviewdata.FindNode(Me.TreeLizenzen.Nodes, Me.Aktuelle_Lizenz, Me.Aktuelle_Lizenz) Else Me.TreeLizenzen.SelectedNode = Me.TreeLizenzen.Nodes(0) End If Me.OnLoad = False End Sub Private Sub TreeApplikationen_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeLizenzen.AfterSelect If Me.Check_Changes = False Then Exit Sub Get_Data(Me.TreeLizenzen.SelectedNode.Tag) LizenzInformationen_aktualisieren() End Sub #End Region #Region "Lizenzkauf" Private Sub LizenzInformationen_aktualisieren() Me.Lizenzinformationen.Get_Lizenzkauf(Me.Lizenz.iLizenzNr.Value, Me.C1Lizenzkäufe) Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Lizenzkäufe, "Lizenzkauf", Me.Lizenzinformationen.Lizenzkauf.Tabledata) Set_Lizenzkauf_Filter() Try Me.C1Lizenzkäufe.Columns("Lizenznr").FilterText = Me.Lizenz.iLizenzNr.Value Catch ex As Exception MsgBox(ex.Message) End Try Me.Lizenzschluessel_Aktualisieren() Me.Lizenztyp.Rows.Clear() Me.clsLizenztyp.cpMainConnectionProvider = Globals.conn Me.Lizenztyp = Me.clsLizenztyp.SelectAll Me.C1LizenztypDropDwon.DataSource = Me.Lizenztyp Dim i As Integer For i = 0 To Me.C1LizenztypDropDwon.DisplayColumns.Count - 1 Me.C1LizenztypDropDwon.DisplayColumns(i).Visible = False Next Me.C1LizenztypDropDwon.DisplayColumns("Bezeichnung").Visible = True Me.C1LizenztypDropDwon.ValueMember = "Lizenztypnr" Me.C1LizenztypDropDwon.DisplayMember = "Bezeichnung" Me.C1LizenztypDropDwon.ValueTranslate = True Me.C1Lizenzkäufe.Columns("Lizenztypnr").DropDown = Me.C1LizenztypDropDwon Me.C1Lizenzkäufe.Columns("Lizenztypnr").ValueItems.Translate = True Me.C1Lizenzkäufe.AllowAddNew = False Me.C1Lizenzschluessel.AllowAddNew = False End Sub ''' ''' Filter in der Spalte Aktiv des Grids C1Lizenzkauf ändern ''' ''' Private Sub Set_Lizenzkauf_Filter() Try Me.C1Lizenzkäufe.Columns("Aktiv").FilterText = "" Catch ex As Exception End Try 'Try End Sub #End Region #Region "Lizenzschluessel" ''' ''' Aktualiserung des Grids Lizenzschlüssel ''' ''' Private Sub Lizenzschluessel_Aktualisieren() Try Me.Lizenzinformationen.Get_Lizenzschluessel(Me.C1Lizenzkäufe.Columns(0).Value, Me.C1Lizenzschluessel) Dim dt As New DataTable dt = Me.C1Lizenzschluessel.DataSource Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Lizenzschluessel, "Lizenzschluessel", Me.Lizenzinformationen.Lizenzschluessel.Tabledata) Set_Lizenzschluessel_Filter() Me.C1Lizenzschluessel.AllowAddNew = False Catch ex As Exception Exit Sub End Try End Sub ''' ''' Aktualisierung der Spalten mutiert_am und mutierern. Sofern noch kein Schlüsselwert gesetzt ist (bei neuem Datensatz) ''' wird dieser aus der Keytabelle ausgelesen und zugewiesen. ''' ''' ''' ''' Je Domaintable ist ein Eintrag in der Key-Tabelle notwendig Private Sub C1Lizenzschluessel_AfterColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1Lizenzschluessel.AfterColUpdate Update_Lizenzschluessel_data() End Sub Sub Update_Lizenzschluessel_Data() 'Aktualisieren von Mutierer und Mutiert_am Dim i As Integer Try Me.FormDataChanged = True For i = 0 To Me.C1Lizenzschluessel.Columns.Count - 1 If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "mutiert_am" Then Me.C1Lizenzschluessel.Columns(i).Value = Now If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "mutierer" Then Me.C1Lizenzschluessel.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value Next 'neuer DB-Key auslösen, sofern kein Key vorhanden ist If Me.C1Lizenzschluessel.Columns(0).Value Is DBNull.Value Then Dim dbkey As New TKB.VV.DB.clsMyKey_Tabelle() Dim key As Long dbkey.cpMainConnectionProvider = conn key = dbkey.get_dbkey("Lizenzschluessel") Me.C1Lizenzschluessel.Columns(0).Value = key For i = 0 To Me.C1Lizenzschluessel.Columns.Count - 1 If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "mandantnr" Then Me.C1Lizenzschluessel.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "erstellt_am" Then Me.C1Lizenzschluessel.Columns(i).Value = Now End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "securitylevel" Then Me.C1Lizenzschluessel.Columns(i).Value = 0 End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "aktiv" Then Me.C1Lizenzschluessel.Columns(i).Value = 1 End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "extern" Then Me.C1Lizenzschluessel.Columns(i).Value = 0 End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "lizenzkaufnr" Then Me.C1Lizenzschluessel.Columns(i).Value = Me.C1Lizenzkäufe.Columns(0).Value End If Next dbkey.Dispose() End If Catch End Try End Sub ''' ''' Aktualisierung der Default-Werte ''' ''' ''' ''' Private Sub C1Lizenzschluessel_AfterInsert(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1Lizenzschluessel.AfterInsert insert_Lizenzschluessel_Data() End Sub Sub Insert_Lizenzschluessel_Data() Dim i As Integer 'Defaulwerte erstellt_am, mutiert_am, mutierer und aktiv setzen Try For i = 0 To C1Lizenzschluessel.Columns.Count - 1 If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "aktiv" Then Me.C1Lizenzschluessel.Columns(i).Value = 1 End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "lizenzkaufnr" Then Me.C1Lizenzschluessel.Columns(i).Value = Me.C1Lizenzkäufe.Columns(0).Value End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "mutiert_am" Then Me.C1Lizenzschluessel.Columns(i).Value = Now End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "mutierer" Then Me.C1Lizenzschluessel.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "mandantnr" Then Me.C1Lizenzschluessel.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value End If If LCase(Me.C1Lizenzschluessel.Columns(i).DataField) = "mandant" Then Me.C1Lizenzschluessel.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value End If Next Catch End Try End Sub ''' ''' Anzeige allfälliger Cellen-Tips ''' ''' ''' ''' Private Sub C1Lizenzschluessel_FetchCellTips(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchCellTipsEventArgs) Handles C1Lizenzschluessel.FetchCellTips Dim ts As New TKB.VV.Utils.Tabellenspalte ts.Tabelle = "DokumentAblageOrt" Try ts.Feld = Me.C1Lizenzschluessel.Columns(e.ColIndex).DataField ts.getspalte() e.CellTip = ts.TipText Catch End Try ts = Nothing End Sub ''' ''' Rowstyle von inaktiven Lizenzschlüssel ''' ''' ''' ''' Private Sub C1Lizenzschluessel_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles C1Lizenzschluessel.FetchRowStyle Try If Me.C1Lizenzschluessel.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 ''' ''' Prüfung auf Änderungen, sofern das Grid "C1Lizenzschlüssel" verlassen wird ''' ''' ''' ''' Private Sub C1Lizenzschluessel_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1Lizenzschluessel.Leave Try If Me.Lizenzinformationen.Lizenzschluessel.Tabledata.HasChanges Then UpdateGrids() 'If msg.Show_MessageYesNoCancel(801) = MsgBoxResult.Yes Then Me.Lizenzinformationen.Lizenzschluessel.Save_Data() 'End If End If Catch End Try End Sub ''' ''' Anzeige gem. Aktivstatus ändern ''' ''' ''' ''' Private Sub cbLizenzschluesselAktiv_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Set_Lizenzschluessel_Filter() End Sub ''' ''' Filter in der Spalte Aktiv des Grids C1Lizenzschluessel ändern ''' ''' Private Sub Set_Lizenzschluessel_Filter() Try Me.C1Lizenzschluessel.Columns("Aktiv").FilterText = "" Catch ex As Exception End Try 'Try ' Select Case Me.cbLizenzschluesselAktiv.CheckState ' Case CheckState.Checked ' Me.C1Lizenzschluessel.Columns("Aktiv").FilterText = True ' Case CheckState.Indeterminate ' Me.C1Lizenzschluessel.Columns("Aktiv").FilterText = "" ' Case CheckState.Unchecked ' Me.C1Lizenzschluessel.Columns("Aktiv").FilterText = False ' End Select 'Catch ex As Exception 'End Try End Sub Sub UpdateGrids() Dim bm1 As Integer Dim bm2 As Integer Try bm1 = Me.C1Lizenzkäufe.Bookmark bm2 = Me.C1Lizenzschluessel.Bookmark Catch ex As Exception End Try Me.C1Lizenzkäufe.UpdateData() Me.C1Lizenzschluessel.UpdateData() Try Me.C1Lizenzkäufe.Bookmark = bm1 Me.C1Lizenzschluessel.Bookmark = bm2 Catch ex As Exception End Try 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.txtMutiertam.Text = Me.Lizenz.daMutiert_am.ToString Me.FormDataChanged = False Dim savenr As Integer = Me.Lizenz.iLizenzNr.Value Me.Suchen() Me.TreeLizenzen.SelectedNode = Treeviewdata.FindNode(Me.TreeLizenzen.Nodes, savenr, "") Try Me.TreeLizenzen.SelectedNode.Text = Me.Lizenz.sBezeichnung.Value.ToString Catch ex As Exception End Try 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.Lizenz.Add_New) 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(295) = MsgBoxResult.Yes Then Me.Lizenz.Delete_Lizenz(Me.Lizenz.iLizenzNr.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 If Not Me.FormReadonly Then Check_Changes() Dim i As Integer Me.TSBtnFirst.Enabled = False Me.TSBtnPrevious.Enabled = False Me.TSBtnNext.Enabled = False Me.TSBtnLast.Enabled = False Suchen() Exit Sub Select Case Me.TsBtnSuchArt.Text Case "Lizenz-Filter" Treeviewdata.Load_Tree(Me.TreeLizenzen, False, Me.tstxtSuche.Text, Me.cboxNurAktive.CheckState, , Me.rbsortalpha.Checked) Try Me.TreeLizenzen.SelectedNode = Me.TreeLizenzen.Nodes(0) Catch ex As Exception End Try Case "Lizenz-Suche" If Me.tstxtSuche.Text = "" Then treeviewdata_Suche.Load_Tree(Me.TreeLizenzen, False, Me.tstxtSuche.Text, Me.cboxNurAktive.CheckState, Me.rbsortalpha.Checked, False) Try Me.TreeLizenzen.SelectedNode = Me.TreeLizenzen.Nodes(0) Catch ex As Exception End Try Else treeviewdata_Suche.Load_Tree(Me.TreeSuche, False, Me.tstxtSuche.Text, Me.cboxNurAktive.CheckState, Me.rbsortalpha.Checked, True) Me.MaxSuchTreffer = treeviewdata_Suche.MaxSuchTreffer If Me.MaxSuchTreffer > -1 Then Me.TSBtnFirst.Enabled = True Me.TSBtnPrevious.Enabled = True Me.TSBtnNext.Enabled = True Me.TSBtnLast.Enabled = True Search_Node(0) Else msg.show_standardmessage(873, MsgBoxStyle.Information) End If End If End Select End Sub Sub Suchen() Select Case Me.TsBtnSuchArt.Text Case "Lizenz-Filter" Treeviewdata.Load_Tree(Me.TreeLizenzen, False, Me.tstxtSuche.Text, Me.cboxNurAktive.CheckState, , Me.rbsortalpha.Checked) Try Me.TreeLizenzen.SelectedNode = Me.TreeLizenzen.Nodes(0) Catch ex As Exception End Try Case "Lizenz-Suche" If Me.tstxtSuche.Text = "" Then treeviewdata_Suche.Load_Tree(Me.TreeLizenzen, False, Me.tstxtSuche.Text, Me.cboxNurAktive.CheckState, Me.rbsortalpha.Checked, False) Try Me.TreeLizenzen.SelectedNode = Me.TreeLizenzen.Nodes(0) Catch ex As Exception End Try Else treeviewdata_Suche.Load_Tree(Me.TreeSuche, False, Me.tstxtSuche.Text, Me.cboxNurAktive.CheckState, Me.rbsortalpha.Checked, True) Me.MaxSuchTreffer = treeviewdata_Suche.MaxSuchTreffer If Me.MaxSuchTreffer > -1 Then Me.TSBtnFirst.Enabled = True Me.TSBtnPrevious.Enabled = True Me.TSBtnNext.Enabled = True Me.TSBtnLast.Enabled = True Search_Node(0) Else msg.show_standardmessage(873, MsgBoxStyle.Information) End If End If End Select End Sub #End Region #Region "Daten" ''' ''' Daten ab DB laden uns ins Form befüllen ''' ''' ''' Private Sub Get_Data(ByVal Lizenznr As Integer) Try Lizenz.Get_Lizenz(Lizenznr) Refresh_Vertragselemente(Me.Lizenz.vp.iVertragspartnerNr) Me.txtBezeichnung.Text = Lizenz.sBezeichnung.Value Me.txtbemerkung.Text = Lizenz.sBeschreibung.Value Dim i As Integer = Me.cbboxParentTree.TreeView.Height Me.cbboxParentTree.TreeView.Height = 0 Me.cbboxParentTree.TreeView.Visible = True Me.cbboxParentTree.SelectedNode = Me.TreeParent.FindNode(Me.cbboxParentTree.TreeView.Nodes, Lizenz.iParentID.Value, "") Application.DoEvents() Me.cbboxParentTree.TreeView.Visible = False Me.cbboxParentTree.TreeView.Height = i Me.txtErstelltam.Text = Lizenz.daErstellt_am.ToString Me.txtMutiertam.Text = Lizenz.daMutiert_am.ToString Me.txtMutierer.Text = Lizenz.iMutierer.ToString Try Me.cbaktiv.Checked = Lizenz.bAktiv.Value = True Catch ex As Exception Me.cbaktiv.Checked = True End Try Me.cboxSecurityLevel.SelectedValue = Me.Lizenz.iSecurityLevelNr.Value Me.cbboxVertragselement.SelectedValue = Me.Lizenz.ve.iVertragselementnr.Value Me.txtVertragselement.Text = Me.Lizenz.ve.sBezeichnung.Value.ToString Me.txtPartner.Text = Me.Lizenz.vp.sNameZ1.Value.ToString Me.txtApplikation.Text = Me.Lizenz.ap.sBezeichnung.Value Me.Applikationnr = Me.Lizenz.ap.iApplikationNr.Value Me.txtvaerstelltam.Text = Me.Lizenz.va.daErstellt_am.ToString Me.txtvamutiertam.Text = Me.Lizenz.va.daMutiert_am.ToString Me.txtvamutierer.Text = Me.Lizenz.va.iMutierer.ToString Me.cbvaaktiv.Checked = Me.Lizenz.va.bAktiv.Value = True If Not Anzeige And Not Me.FormReadonly Then For Each o As Object In Me.ToolStrip1.Items If o.GetType.Name = "ToolStripButton" Then o.Enabled = True End If Next End If 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 Me.TSBtnSuche.Enabled = True End Try Me.FormDataChanged = 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 ''' ''' Daten ab Form speichern ''' ''' Private Sub Save_data() Me.FormDataChanged = False Me.Lizenz.sBezeichnung = New SqlString(CType(Me.txtBezeichnung.Text, String)) Me.Lizenz.sBeschreibung = New SqlString(CType(Me.txtbemerkung.Text, String)) Me.Lizenz.iParentID = New SqlInt32(CType(Me.cbboxParentTree.SelectedNode.Tag, Int32)) Me.Lizenz.iSecurityLevelNr = New SqlInt32(CType(Me.cboxSecurityLevel.SelectedValue, Int32)) Me.Lizenz.bAktiv = New SqlBoolean(CType(Me.cbaktiv.Checked, Boolean)) Me.Lizenz.Save_Data() End Sub Private Function Get_CheckedItems(ByRef clb As CheckedListBox) As String End Function #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 "Suche" Dim SearchRecID As Integer = 0 Dim Found As Boolean = False Dim Foundnode As TreeNode Private Function Search_Node(ByVal recid As Integer) As Boolean Dim suchtext As String = "*** " + Trim(Str(recid)) Found = False Dim nodeX As TreeNode For Each nodeX In Me.TreeSuche.Nodes If Tranverse_Nodes1(Me.TreeSuche, nodeX, Suchtext) Then Exit For End If Next If Found = True Then Found = False SearchNode(Foundnode.Text) If Found Then Me.TreeLizenzen.SelectedNode = Foundnode Me.TreeLizenzen.Focus() End If End If End Function Private Function SearchNode(ByVal Suchtext As String) As Boolean Found = False Dim nodeX As TreeNode For Each nodeX In Me.TreeLizenzen.Nodes If TranverseNodes1(Me.TreeLizenzen, nodeX, Suchtext) Then Exit For End If Next If Found = True Then Me.TreeLizenzen.SelectedNode = Me.Foundnode Me.TreeLizenzen.Focus() End If End Function Private Function Tranverse_Nodes1(ByVal tv As TreeView, ByVal selectedNode As TreeNode, ByVal SearchObject As String) As Boolean Dim nodeX As TreeNode If selectedNode.Tag = SearchObject Then Me.Foundnode = selectedNode Found = True Tranverse_Nodes1 = True Exit Function End If For Each nodeX In selectedNode.Nodes Try If nodeX.Tag = SearchObject Then nodeX.Expand() Me.Foundnode = nodeX Found = True Tranverse_Nodes1 = True Exit Function Else Tranverse_Nodes1(tv, nodeX, SearchObject) End If Catch If nodeX.Text = Trim(Str(SearchObject)) Then nodeX.Expand() Me.Foundnode = nodeX Found = True Tranverse_Nodes1 = True Exit Function Else Tranverse_Nodes1(tv, nodeX, SearchObject) End If End Try Next End Function Private Function TranverseNodes1(ByVal tv As TreeView, ByVal selectedNode As TreeNode, ByVal SearchObject As String) As Boolean If selectedNode.Text = SearchObject Then Me.Foundnode = selectedNode Found = True TranverseNodes1 = True Exit Function End If Dim nodeX As TreeNode For Each nodeX In selectedNode.Nodes Try If nodeX.Text = SearchObject Then nodeX.Expand() Me.Foundnode = nodeX Found = True TranverseNodes1 = True Exit Function Else TranverseNodes1(tv, nodeX, SearchObject) End If Catch If nodeX.Text = Trim(Str(SearchObject)) Then nodeX.Expand() Me.Foundnode = nodeX Found = True TranverseNodes1 = True Exit Function Else TranverseNodes1(tv, nodeX, SearchObject) End If End Try Next End Function #End Region #Region "Vertragselement-Applikation" Private Sub btnVertragspartnersuche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVertragspartnersuche.Click If ve.Vertragspartner_suchen(Me.Aktueller_Vertragspartner, Me.txtPartner) Then Me.Refresh_Vertragselemente(Me.Aktueller_Vertragspartner) End If End Sub Private Sub Refresh_Vertragselemente(ByVal Vertragspartnernr As Integer) Dim dt As New DataTable dt = ve.Get_Lizenzvertragselemente(Vertragspartnernr) Me.cbboxVertragselement.DataSource = Nothing Me.cbboxVertragselement.DataSource = dt Me.cbboxVertragselement.ValueMember = "Vertragselementnr" Me.cbboxVertragselement.DisplayMember = "Bezeichnung" End Sub #End Region Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f As New frmVertragselementApplikation(Me.Lizenz.ve.iVertragselementnr.Value, True) f.ShowDialog() If f.SelectedApplication <> Me.Applikationnr And f.SelectedApplication > 0 Then Me.Applikationnr = f.SelectedApplication Dim ap As New TKB.VV.DB.clsApplikation ap.iApplikationNr = New SqlInt32(CType(Me.Applikationnr, Int32)) ap.cpMainConnectionProvider = Globals.conn ap.SelectOne() Me.txtApplikation.Text = ap.sBezeichnung.Value End If 'If Me.ApplikationNr = -1 Then ' Me.btnApplikationSelect.Enabled = False 'Else ' Me.btnApplikationSelect.Enabled = True 'End If 'If Me.txtApplikation.Text <> "" Then Me.btnNeueVersion.Enabled = True 'Me.refresh_applikationen() End Sub End Class