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.
487 lines
18 KiB
487 lines
18 KiB
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"
|
|
''' <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 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
|
|
|
|
''' <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 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"
|
|
''' <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 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)
|
|
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 "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"
|
|
''' <summary>
|
|
''' Daten ab DB laden uns ins Form befüllen
|
|
''' </summary>
|
|
''' <param name="Vertragselementnr"></param>
|
|
''' <remarks></remarks>
|
|
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
|
|
''' <summary>
|
|
''' Daten ab Form speichern
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
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"
|
|
''' <summary>
|
|
''' Laden der Securitylevel-Daten in die Combobox
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
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 |