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