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.
ITSM/.svn/pristine/ff/ff37fd35adee4894e0e73044421...

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