Imports System.Data.SqlTypes
Public Class frmServerInventar
Dim Server As New TKB.VV.Server.clsServerinventar
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
Dim isnewServer As Boolean = False
#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
Server.dispose()
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
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"
Private Sub frmServerInventar_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.cbboxUmgebung.DataSource = Server.Umgebung
Me.cbboxUmgebung.DisplayMember = "Bezeichnung"
Me.cbboxUmgebung.ValueMember = "Server_UmgebungNr"
Me.cbboxOS.DataSource = Server.OS
Me.cbboxOS.DisplayMember = "Bezeichnung"
Me.cbboxOS.ValueMember = "Server_OSNr"
Me.cbboxOSLevel.DataSource = Server.OSLevel
Me.cbboxOSLevel.DisplayMember = "Bezeichnung"
Me.cbboxOSLevel.ValueMember = "Server_OSLevelNr"
Me.cbboxBackupLoesung.DataSource = Server.Backup
Me.cbboxBackupLoesung.DisplayMember = "Bezeichnung"
Me.cbboxBackupLoesung.ValueMember = "Server_Backup_Loesungnr"
Me.cbboxBackupRetention.DataSource = Server.Retention
Me.cbboxBackupRetention.DisplayMember = "Bezeichnung"
Me.cbboxBackupRetention.ValueMember = "Server_Backup_RetentionNr"
Me.cbboxDB.DataSource = Server.db
Me.cbboxDB.DisplayMember = "Bezeichnung"
Me.cbboxDB.ValueMember = "Server_DBNr"
Me.cbboxDBBackupLoesung.DataSource = Server.dbBackup
Me.cbboxDBBackupLoesung.DisplayMember = "Bezeichnung"
Me.cbboxDBBackupLoesung.ValueMember = "Server_DB_Backup_LoesungNr"
Me.cbboxDBBackupRetention.DataSource = Server.dbRetention
Me.cbboxDBBackupRetention.DisplayMember = "Bezeichnung"
Me.cbboxDBBackupRetention.ValueMember = "Server_DB_Backup_RetentionNr"
Me.cbboxStandort.DataSource = Server.Standort
Me.cbboxStandort.DisplayMember = "Bezeichnung"
Me.cbboxStandort.ValueMember = "Server_StandortNr"
Me.cbboxStandort.DataSource = Server.Kategorie
Me.cbboxStandort.DisplayMember = "Bezeichnung"
Me.cbboxStandort.ValueMember = "Server_KategorieNr"
Server.Load_tree(Me.TVServer, 0)
Me.TVServer.ExpandAll()
Me.TVServer.SelectedNode = Me.TVServer.Nodes(0).Nodes(0)
End Sub
Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click
Me.Close()
End Sub
#End Region
#Region "Daten"
'''
''' Daten ab DB laden uns ins Form befüllen
'''
'''
'''
Private Sub Get_Data(ByVal Servernr As Integer)
Try
Server.Get_Server(Servernr)
Me.txtBezeichnung.Text = Server.sBezeichnung.Value
Me.txtBeschreibung.Text = Server.sBeschreibung.Value
Me.cbboxUmgebung.SelectedValue = Server.iServer_UmgebungNr.Value
Me.cbboxOS.SelectedValue = Server.iServer_OSNr.Value
Me.cbboxOSLevel.SelectedValue = Server.iServer_OSLevelNr.Value
Me.cbboxBackupLoesung.SelectedValue = Server.iServer_Backup_LoesungNr.Value
Me.cbboxBackupRetention.SelectedValue = Server.iServer_Backup_RetentionNr.Value
Me.txtBakup.Text = Server.sServer_Backup_Bemerkung.Value
Me.cbboxDB.SelectedValue = Server.iServer_DBNr.Value
Me.txtDB.Text = Server.sServer_DB_Bemerkung.Value
Me.cbboxDBBackupLoesung.SelectedValue = Server.iServer_DB_Backup_LoesungNr.Value
Me.cbboxDBBackupRetention.SelectedValue = Server.iServer_DB_Backup_RetentionNr.Value
Me.txtdbbackup.Text = Server.sServer_DB_Backup_Bemerkung
Me.cbboxStandort.SelectedValue = Server.iServer_StandortNr.Value
Me.txtStandort.Text = Server.sServer_Stanmdort_Bemerkung.Value
Me.cbboxKategorie.SelectedValue = Server.iServer_KategorieNr.Value
Me.txtmutierer.Text = Server.MutiererText
Me.cbaktiv.Checked = Server.bAktiv.Value = True
Me.txterstellt_am.Text = Server.daErstellt_am.Value
Me.txtmutiert_am.Text = Server.daMutiert_am.Value
sec.Set_Form_Security(Me)
refresh_applikation(Servernr)
If Me.cbboxDB.SelectedValue = 1 Then Me.GrpDB.Height = 42 Else Me.GrpDB.Height = 185
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
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()
Server.sBezeichnung = New SqlString(CType(Me.txtBezeichnung.Text, String))
Server.iServer_UmgebungNr = New SqlInt32(CType(Me.cbboxUmgebung.SelectedValue, Int32))
Server.iServer_OSNr = New SqlInt32(CType(Me.cbboxOS.SelectedValue, Int32))
Server.iServer_OSLevelNr = New SqlInt32(CType(Me.cbboxOSLevel.SelectedValue, Int32))
Server.sBeschreibung = New SqlString(CType(Me.txtBeschreibung.Text, String))
Server.iServer_Backup_LoesungNr = New SqlInt32(CType(Me.cbboxBackupLoesung.SelectedValue, Int32))
Server.iServer_Backup_RetentionNr = New SqlInt32(CType(Me.cbboxBackupRetention.SelectedValue, Int32))
Server.sServer_Backup_Bemerkung = New SqlString(CType(Me.txtBakup.Text, String))
Server.iServer_DBNr = New SqlInt32(CType(Me.cbboxDB.SelectedValue, Int32))
Server.sServer_DB_Bemerkung = New SqlString(CType(Me.txtDB.Text, String))
Server.iServer_DB_Backup_LoesungNr = New SqlInt32(CType(Me.cbboxDBBackupLoesung.SelectedValue, Int32))
Server.iServer_DB_Backup_RetentionNr = New SqlInt32(CType(Me.cbboxDBBackupRetention.SelectedValue, Int32))
Server.sServer_DB_Backup_Bemerkung = New SqlString(CType(Me.txtdbbackup.Text, String))
Server.iServer_StandortNr = New SqlInt32(CType(Me.cbboxStandort.SelectedValue, Int32))
Server.sServer_Stanmdort_Bemerkung = New SqlString(CType(Me.txtStandort.Text, String))
Server.iServer_KategorieNr = New SqlInt32(CType(Me.cbboxKategorie.SelectedValue, Int32))
Me.txtmutierer.Text = Server.MutiererText
Me.cbaktiv.Checked = Server.bAktiv.Value = True
Me.txterstellt_am.Text = Server.daErstellt_am.Value
Me.txtmutiert_am.Text = Server.daMutiert_am.Value
Server.Save_Data()
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
#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
Private Sub TSBtnNew_Click(sender As Object, e As EventArgs) Handles TSBtnNew.Click
If Me.Check_Changes = False Then Exit Sub
Me.Get_Data(Me.Server.Add_New)
Me.isnewServer = True
End Sub
Private Sub TSBtnSave_Click(sender As Object, e As EventArgs) Handles TSBtnSave.Click
Me.Save_data()
Server.Load_tree(Me.TVServer, 0)
Me.TVServer.ExpandAll()
Me.TVServer.SelectedNode = Me.TVServer.Nodes(0).Nodes(0)
End Sub
Private Sub TVServer_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TVServer.AfterSelect
Try
If Me.TVServer.SelectedNode.Tag > 0 And Me.TVServer.SelectedNode.Tag < 10000 Then Me.RefreshData(Me.TVServer.SelectedNode.Tag)
Catch ex As Exception
End Try
End Sub
Private Sub RefreshData(id As Integer)
Me.Get_Data(id)
End Sub
Private Sub TVApplikation_DragDrop(sender As Object, e As DragEventArgs) Handles TVApplikation.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)
Server.insert_server_applikation(Me.TVServer.SelectedNode.Tag, SourceNode.Tag)
refresh_applikation(Me.TVServer.SelectedNode.Tag)
End If
End Sub
Private Sub TVApplikation_DragEnter1(sender As Object, e As DragEventArgs) Handles TVApplikation.DragEnter
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) Then
'TreeNode found allow move effect
e.Effect = DragDropEffects.Move
Else
'No TreeNode found, prevent move
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub TVApplikation_DragOver(sender As Object, e As DragEventArgs) Handles TVApplikation.DragOver
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", True) = False Then Exit Sub
e.Effect = DragDropEffects.Move
End Sub
Sub refresh_applikation(ByVal servernr As Integer)
Try
Server.refresh_applikation(servernr, TVApplikation)
Catch
End Try
End Sub
Private Sub ApplikationAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ApplikationAnzeigenToolStripMenuItem.Click
Try
Dim f As New frmApplikation(TVApplikation.SelectedNode.Tag, False)
f.MdiParent = Me.MdiParent
f.Show()
Catch ex As Exception
End Try
End Sub
Private Sub EintragLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragLöschenToolStripMenuItem.Click
If MsgBox("Eintrag wirklich löschen?", vbYesNo + MsgBoxStyle.Question) = MsgBoxResult.Yes Then
Server.Delete_Server_Applikation(Me.TVServer.SelectedNode.Tag, Me.TVApplikation.SelectedNode.Tag)
refresh_applikation(Me.TVServer.SelectedNode.Tag)
End If
End Sub
Private Sub btnDBOpen_Click(sender As Object, e As EventArgs) Handles btnDBOpen.Click
Me.GrpDB.Height = 185
End Sub
Private Sub btnDBClose_Click(sender As Object, e As EventArgs) Handles btnDBClose.Click
Me.GrpDB.Height = 42
End Sub
Private Sub btnWeitersClose_Click(sender As Object, e As EventArgs) Handles btnWeitersClose.Click
Me.grpWeiteres.Height = 42
End Sub
Private Sub btnWeiteresOpen_Click(sender As Object, e As EventArgs) Handles btnWeiteresOpen.Click
Me.grpWeiteres.Height = 200
End Sub
Private Sub SuchenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SuchenToolStripMenuItem.Click
Me.tsSucheFilter.Text = "Suchen"
End Sub
Private Sub FilterToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FilterToolStripMenuItem.Click
Me.tsSucheFilter.Text = "Filter"
End Sub
Private Sub TSBtnNext_Click(sender As Object, e As EventArgs) Handles TSBtnNext.Click
End Sub
End Class