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.
337 lines
13 KiB
337 lines
13 KiB
Imports C1.Win.C1TrueDBGrid
|
|
Imports System
|
|
Imports System.Data
|
|
Imports System.Data.SqlTypes
|
|
Imports System.Data.SqlClient
|
|
|
|
Public Class frmVertragselementApplikationZuweisen
|
|
|
|
#Region "Deklarationen"
|
|
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 ApplikationNr As Integer
|
|
Dim ApplikationBezeichnung As String
|
|
Dim VertragselementNr As Integer
|
|
Dim VertragselementApplikationnr As Integer
|
|
Dim Version As String
|
|
Dim dt As New DataTable
|
|
Dim NewElement As Boolean = False
|
|
Dim LizenzenVorhanden As Boolean
|
|
|
|
Dim Lizenzumteilen As Boolean = False
|
|
|
|
Dim VertrasgelementApplikation As New TKB.VV.Vertrag.clsVertragselementApplikation
|
|
|
|
#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 CheckBox Then
|
|
Dim ctl As CheckBox = c
|
|
AddHandler ctl.CheckedChanged, evh
|
|
End If
|
|
If TypeOf c Is ListBox Then
|
|
Dim ctl As ListBox = c
|
|
AddHandler ctl.SelectedValueChanged, evh
|
|
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
|
|
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 "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
|
|
Globals.MyEventHanlder.Vertragsapplikation_Closed()
|
|
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 Exit Function
|
|
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
|
|
Return True
|
|
End Select
|
|
Else
|
|
Return True
|
|
End If
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
|
|
Sub New()
|
|
|
|
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
|
|
InitializeComponent()
|
|
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
|
|
End Sub
|
|
Sub New(ByVal applikationnr As Integer, ByVal applikationbezeichnung As String, ByVal Vertragselementnr As Integer, ByVal vertragselementapplikationnr As Integer, ByVal version As String, ByVal formreadonly As Boolean, ByVal LizenzenVorhanden As Boolean)
|
|
InitializeComponent()
|
|
Me.FormReadonly = formreadonly
|
|
Me.ApplikationNr = applikationnr
|
|
Me.ApplikationBezeichnung = applikationbezeichnung
|
|
Me.VertragselementNr = Vertragselementnr
|
|
Me.VertragselementApplikationnr = vertragselementapplikationnr
|
|
Me.Version = version
|
|
Me.LizenzenVorhanden = LizenzenVorhanden
|
|
If Me.ApplikationNr = -1 Then Me.NewElement = True
|
|
End Sub
|
|
Private Sub frmVertragselementApplikationZuweisen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
|
|
sec.Set_Form_Security(Me)
|
|
|
|
Me.txtApplikation.Text = Me.ApplikationBezeichnung
|
|
Me.refresh_applikationen()
|
|
If Me.NewElement = True Then
|
|
Me.cbAktiv.Checked = True
|
|
Else
|
|
Me.VertrasgelementApplikation.Get_VertragselementApplikation(Me.VertragselementApplikationnr)
|
|
Me.cbaktiv.Checked = Me.VertrasgelementApplikation.bAktiv.Value = True
|
|
Me.txtErstelltam.Text = VertrasgelementApplikation.daErstellt_am.ToString
|
|
Me.txtMutiertam.Text = VertrasgelementApplikation.daMutiert_am.ToString
|
|
Me.txtMutierer.Text = VertrasgelementApplikation.iMutierer.ToString
|
|
|
|
End If
|
|
|
|
Me.AddChanges(Me)
|
|
If Me.FormReadonly = True Then sec.Set_Form_Readonly(Me)
|
|
If Me.LizenzenVorhanden = True Then
|
|
sec.Set_Form_Readonly(Me)
|
|
End If
|
|
If Me.ApplikationNr = -1 Then Me.btnNeueVersion.Enabled = False
|
|
If Me.FormReadonly Then
|
|
sec.Set_Form_Readonly(Me)
|
|
Me.TSBtnSave.Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnNeueVersion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNeueVersion.Click
|
|
Dim f As New frmVersion(0, Me.applikationnr, True, False)
|
|
f.ShowDialog()
|
|
Me.refresh_applikationen()
|
|
End Sub
|
|
|
|
|
|
Public Function Get_Versionen(ByVal applikationnr As Integer) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_get_versionen"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@applikationnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, applikationnr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value))
|
|
Try
|
|
conn.OpenConnection()
|
|
Catch
|
|
End Try
|
|
sdaAdapter.Fill(dtToReturn)
|
|
|
|
conn.CloseConnection(True)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("clsApplikation::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
Private Sub refresh_applikationen()
|
|
dt = Get_Versionen(Me.applikationnr)
|
|
Me.lbVersionen.Items.Clear()
|
|
Me.lbVersionen.Items.Add("-")
|
|
Dim i As Integer = 0
|
|
i = 0
|
|
For Each r As DataRow In dt.Rows
|
|
Me.lbVersionen.Items.Add(r.Item("Version"))
|
|
If r.Item("Version") = Version Then Me.lbVersionen.SelectedIndex = i + 1
|
|
i = i + 1
|
|
Next
|
|
If Version = "" Then Me.lbVersionen.SelectedIndex = 0
|
|
|
|
End Sub
|
|
|
|
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.Close()
|
|
End Sub
|
|
|
|
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Save_Data()
|
|
|
|
Me.Close()
|
|
End Sub
|
|
Private Sub Save_Data()
|
|
If Me.ApplikationNr = -1 Then
|
|
msg.show_standardmessage(858, MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End If
|
|
If Me.NewElement = True Then
|
|
Me.VertrasgelementApplikation.Add_New(Me.VertragselementNr)
|
|
Else
|
|
Me.VertrasgelementApplikation.Get_VertragselementApplikation(Me.VertragselementApplikationnr)
|
|
End If
|
|
Me.VertrasgelementApplikation.iApplikationnr = New SqlInt32(CType(Me.ApplikationNr, Int32))
|
|
Dim versionnr As Integer = 0
|
|
For Each r As DataRow In dt.Rows
|
|
If r.Item("Version") = Me.lbVersionen.Text Then
|
|
versionnr = r.Item("ApplikationVersionnr")
|
|
End If
|
|
Next
|
|
Me.VertrasgelementApplikation.bAktiv = New SqlBoolean(CType(Me.cbAktiv.Checked, Boolean))
|
|
Me.VertrasgelementApplikation.iApplikationVersionNr = New SqlInt32(CType(versionnr, Int32))
|
|
'Me.VertrasgelementApplikation.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
|
|
Me.VertrasgelementApplikation.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
|
|
Me.VertrasgelementApplikation.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32))
|
|
Me.VertrasgelementApplikation.sBezeichnungLizenverwaltung = New SqlString(CType(Me.txtBezeichnungLizenzverwaltung.Text, String))
|
|
Me.VertrasgelementApplikation.Save_Data()
|
|
If Me.Lizenzumteilen = True Then
|
|
|
|
End If
|
|
Me.FormDataChanged = False
|
|
End Sub
|
|
|
|
Private Sub btnApplikationSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApplikationSelect.Click
|
|
Dim f As New frmVertragselementApplikation(Me.VertragselementNr, True)
|
|
f.ShowDialog()
|
|
If f.SelectedApplication <> Me.ApplikationNr And f.SelectedApplication > 0 Then
|
|
Me.ApplikationNr = f.SelectedApplication
|
|
Me.txtApplikation.Text = f.SelectedApplicationnName
|
|
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
|
|
|
|
Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click
|
|
Me.Save_Data()
|
|
Me.Close()
|
|
End Sub
|
|
|
|
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
|
|
Me.Close()
|
|
End Sub
|
|
|
|
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
|
|
TSBtnQuit_Click(sender, e)
|
|
End Sub
|
|
|
|
|
|
End Class |