Imports System.Data.SqlClient Imports System.Data.SqlTypes Public Class frm_Lizenz_VEAppl #Region "Deklarationen" Dim CreateNew As Boolean Dim dt As New DataTable Dim FormReadonly As Boolean Dim vpartner As New TKB.VV.DB.clsVertragspartner Private Aktueller_Vertragspartner As Integer = 0 Private Aktuelle_Applikation As Integer = 0 Private Aktuelle_Applikation1 As Integer = 0 Public Aktuelle_Lizenznr As Integer = 0 Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte Dim vae As New TKB.VV.vertrag.clsVertragselementApplikation Public SelectedApplikation As Integer = 0 Dim veappl As Boolean Dim treeparent As New TKB.VV.Lizenz.clsLizenzTree Dim lizenz As New TKB.VV.Lizenz.clsLizenz Dim msg As New TKB.VV.Utils.MyMessage Dim SaveParent As Integer #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 Lizenznr As Integer, ByVal CreateNew As Boolean) InitializeComponent() Me.Aktuelle_Lizenznr = Lizenznr Me.CreateNew = CreateNew End Sub Sub New(ByVal Lizenznr As Integer, ByVal CreateNew As Boolean, ByVal addVEAppl As Boolean) InitializeComponent() Me.Aktuelle_Lizenznr = Lizenznr Me.CreateNew = CreateNew Me.veappl = addVEAppl End Sub #Region "Version" Private Sub btnAddversion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNeueVersion.Click Dim f As New frmVersion(0, Aktuelle_Applikation, True, False) f.ShowDialog() Me.refresh_applikationen() End Sub Private Sub refresh_applikationen() dt = Get_Versionen(Aktuelle_Applikation) Me.cbversion.DataSource = Nothing Me.cbversion.DataSource = dt Me.cbversion.DisplayMember = "Version" Me.cbversion.ValueMember = "ApplikationVersionNr" Try If Version <> "" Then For Each r As DataRow In dt.Rows If r.Item("Version") = Version Then Me.cbversion.SelectedValue = r.Item("ApplikationVersionNr") Next Else Me.cbversion.SelectedIndex = 0 End If Catch ex As Exception End Try 'Me.cbapplikation.SelectedValue = Me.Aktuelle_Applikation 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)) conn.OpenConnection() 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 #End Region Private Sub frm_Lizenz_VEAppl_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try 'treeparent.Load_Tree(Me.cbboxParentTree.TreeView, True) treeparent.Load_Tree(Me.TreeviewParent, True) TreeviewParent.SelectedNode = TreeviewParent.Nodes(0) Catch ex As Exception End Try Load_Securitylevel() Dim VP As New TKB.VV.Vertrag.clsVertragspartner Dim DT As New DataTable DT = VP.Get_Vertragspartnerliste("") Me.cbVertragspartner.DataSource = DT Me.cbVertragspartner.ValueMember = "VertragspartnerNr" Me.cbVertragspartner.DisplayMember = "Description" Dim appl As New TKB.VV.Applikation.clsApplikation Dim dt1 As New DataTable dt1 = appl.SelectAll() Me.cbapplikation.DataSource = dt1 Me.cbapplikation.ValueMember = "Applikationnr" Me.cbapplikation.DisplayMember = "bezeichnung" Me.cbapplikation1.DataSource = dt1 Me.cbapplikation1.ValueMember = "Applikationnr" Me.cbapplikation1.DisplayMember = "bezeichnung" If Me.CreateNew = False Then If Me.Aktuelle_Lizenznr <> 0 And Not veappl Then Me.Text = "Lizenzelement bearbeiten" Me.get_data(Me.Aktuelle_Lizenznr) Me.SaveParent = Me.lizenz.iParentID.Value Me.GroupBox4.Visible = False Me.Height = Me.Height - Me.GroupBox4.Height + 15 Me.cbStrukturelement.Enabled = False Me.btnSave.Visible = True Me.btnSave.Text = "Speichern" End If If Me.veappl = True Then Me.Text = "Applikationszuweisung" Me.Height = Me.Height - Me.GroupBox3.Height + 15 Me.GroupBox3.Visible = False End If Else Me.Text = "Lizenzelement erstellen" Me.txtBezeichnung.Text = "" Me.cbaktiv.Checked = True Me.cbStrukturelement.Checked = False Me.txtBezeichnung.Focus() Me.btnBestehendesLizenzelement_Zuweisen.Text = "Erstellen und zuweisen" End If End Sub Sub get_data(ByVal Lizenznr As Integer) Try lizenz.Get_Lizenz(Lizenznr) Me.txtBezeichnung.Text = lizenz.sBezeichnung.Value Me.txtbemerkung.Text = lizenz.sBeschreibung.Value Me.TreeviewParent.SelectedNode = treeparent.FindNode(Me.TreeviewParent.Nodes, lizenz.iParentID.Value, "") Try Me.cbaktiv.Checked = lizenz.bAktiv.Value = True Catch ex As Exception Me.cbaktiv.Checked = True End Try Me.cbStrukturelement.Checked = lizenz.bStrukturelement.Value = True Me.cboxSecurityLevel.SelectedValue = Me.lizenz.iSecurityLevelNr.Value Catch ex As Exception End Try End Sub #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 btnVertragspartnersuche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVertragspartnersuche.Click If Not Me.FormReadonly Then Dim vp As New TKB.VV.vertrag.clsVertragspartner If vp.Vertragspartner_Suchen(Me.Aktueller_Vertragspartner) = True Then Me.cbVertragspartner.SelectedValue = Me.Aktueller_Vertragspartner vpartner.cpMainConnectionProvider = Globals.conn vpartner.iVertragspartnerNr = New SqlInt32(CType(Me.Aktueller_Vertragspartner, Int32)) vpartner.SelectOne() Me.txtVertragspartner.Text = vpartner.sNameZ1 + " " + vpartner.sNameZ2 + ", " + vpartner.sOrt End If End If End Sub Private Sub txtVertragspartner_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtVertragspartner.TextChanged Dim ve As New TKB.VV.vertrag.clsVertragselement ve.iVertragspartnerNr = New SqlInt32(CType(Me.Aktueller_Vertragspartner, Int32)) ve.cpMainConnectionProvider = Globals.conn Dim ves As New DataTable Dim ves1 As New DataTable ves = ve.SelectAllWVertragspartnerNrLogic ves1 = ves.Copy ves1.Rows.Clear() For Each r As DataRow In ves.Rows If ve.Lizenzinformationen.Check_Vertragstyp_Fuer_Lizenz(r.Item("VertragstypNr")) = False Then r.Delete() End If Next ves.AcceptChanges() Me.cbLizenzelement.DataSource = Nothing Me.cbLizenzelement.DataSource = ves Me.cbLizenzelement.DisplayMember = "Bezeichnung" Me.cbLizenzelement.ValueMember = "Vertragselementnr" If cbLizenzelement.Items.Count < 1 Then Me.bznErstellenundzuweisen.Enabled = False Else Me.bznErstellenundzuweisen.Enabled = True Dim dt As New DataTable dt = vae.Get_Vertragselemente(Me.Aktueller_Vertragspartner) Me.C1VertragselementApplikation.DataSource = dt Me.C1VertragselementApplikation.DataMember = dt.TableName Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1VertragselementApplikation, "VertragselementApplikation", dt) If dt.Rows.Count < 1 Then Me.btnBestehendesLizenzelement_Zuweisen.Enabled = False Else Me.btnBestehendesLizenzelement_Zuweisen.Enabled = True End Sub Private Sub btnApplikationSuche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApplikationSuche.Click Dim f As New frmVertragselementApplikation(0, True) f.ShowDialog() If f.SelectedApplication <> Me.Aktuelle_Applikation And f.SelectedApplication > 0 Then Me.Aktuelle_Applikation = f.SelectedApplication Me.txtApplikation.Text = f.SelectedApplicationnName Me.cbapplikation.SelectedValue = Me.Aktuelle_Applikation End If If Me.txtApplikation.Text <> "" Then Me.btnNeueVersion.Enabled = True 'Me.refresh_applikationen() 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 btnBestehendesLizenzelement_Zuweisen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBestehendesLizenzelement_Zuweisen.Click If Me.CreateNew = True Then If Create_Lizenz() = True Then Dim cliveapp As New TKB.VV.Lizenz.clsLizenzVertragselementApplikation cliveapp.Add_New(Aktuelle_Lizenznr, Me.C1VertragselementApplikation.Columns("Vertragselementapplikationnr").Value) Me.DialogResult = Windows.Forms.DialogResult.OK Me.SelectedApplikation = Me.C1VertragselementApplikation.Columns("Applikationnr").Value Me.Close() End If Else Dim cliveapp As New TKB.VV.Lizenz.clsLizenzVertragselementApplikation cliveapp.Add_New(Aktuelle_Lizenznr, Me.C1VertragselementApplikation.Columns("Vertragselementapplikationnr").Value) Me.DialogResult = Windows.Forms.DialogResult.OK Me.SelectedApplikation = Me.C1VertragselementApplikation.Columns("Applikationnr").Value Me.Close() End If End Sub Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click Me.Close() End Sub Private Sub bznErstellenundzuweisen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bznErstellenundzuweisen.Click If Me.CreateNew = True Then If Me.Create_Lizenz = True Then Dim cveap As New TKB.VV.vertrag.clsVertragselementApplikation Dim i As Integer Try i = Me.cbversion.SelectedValue Catch ex As Exception i = 0 End Try If cveap.Check_Bereits_Vorhanden(Me.cbLizenzelement.SelectedValue, Me.Aktuelle_Applikation, i) = False Then Dim mmsg As New TKB.VV.Utils.MyMessage If mmsg.Show_MessageYesNo(890) <> MsgBoxResult.Yes Then Exit Sub mmsg.dispose() End If Dim x As Integer = cveap.Add_New(Me.cbLizenzelement.SelectedValue) cveap.Get_VertragselementApplikation(x) cveap.iApplikationnr = New SqlInt32(CType(Me.Aktuelle_Applikation, Int32)) Try cveap.iApplikationVersionNr = New SqlInt32(CType(cbversion.SelectedValue, Int32)) Catch ex As Exception cveap.iApplikationVersionNr = New SqlInt32(CType(0, Int32)) End Try cveap.Save_Data() Dim cliveapp As New TKB.VV.Lizenz.clsLizenzVertragselementApplikation cliveapp.Add_New(Aktuelle_Lizenznr, x) Me.SelectedApplikation = Me.Aktuelle_Applikation Me.DialogResult = Windows.Forms.DialogResult.OK Me.Close() End If Else Dim cveap As New TKB.VV.vertrag.clsVertragselementApplikation Dim i As Integer Try i = Me.cbversion.SelectedValue Catch ex As Exception i = 0 End Try If cveap.Check_Bereits_Vorhanden(Me.cbLizenzelement.SelectedValue, Me.Aktuelle_Applikation, i) = False Then Dim mmsg As New TKB.VV.Utils.MyMessage If mmsg.Show_MessageYesNo(890) <> MsgBoxResult.Yes Then Exit Sub mmsg.dispose() End If Dim x As Integer = cveap.Add_New(Me.cbLizenzelement.SelectedValue) cveap.Get_VertragselementApplikation(x) cveap.iApplikationnr = New SqlInt32(CType(Me.Aktuelle_Applikation, Int32)) Try cveap.iApplikationVersionNr = New SqlInt32(CType(cbversion.SelectedValue, Int32)) Catch ex As Exception cveap.iApplikationVersionNr = New SqlInt32(CType(0, Int32)) End Try cveap.Save_Data() Dim cliveapp As New TKB.VV.Lizenz.clsLizenzVertragselementApplikation cliveapp.Add_New(Aktuelle_Lizenznr, x) Me.SelectedApplikation = Me.Aktuelle_Applikation Me.DialogResult = Windows.Forms.DialogResult.OK Me.Close() End If End Sub Private Sub cbVertragspartner_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbVertragspartner.SelectedValueChanged Try Me.Aktueller_Vertragspartner = Me.cbVertragspartner.SelectedValue Me.txtVertragspartner.Text = Me.cbVertragspartner.Text 'Me.txtVertragspartner_TextChanged(sender, e) Catch End Try End Sub Private Sub cbapplikation_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbapplikation.SelectedIndexChanged Try Me.Aktuelle_Applikation = Me.cbapplikation.SelectedValue Me.txtApplikation.Text = Me.cbapplikation.Text Me.refresh_applikationen() Catch End Try End Sub Private Sub cbapplikation1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbapplikation1.SelectedIndexChanged Try Me.Aktuelle_Applikation1 = Me.cbapplikation1.SelectedValue Me.txtApplikation1.Text = Me.cbapplikation1.Text Me.refresh_applikationen1() Catch End Try End Sub Private Sub btnApplikationSuche1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApplikationSuche1.Click Dim f As New frmVertragselementApplikation(0, True) f.ShowDialog() If f.SelectedApplication <> Me.Aktuelle_Applikation1 And f.SelectedApplication > 0 Then Me.Aktuelle_Applikation1 = f.SelectedApplication Me.txtApplikation1.Text = f.SelectedApplicationnName End If If Me.txtApplikation1.Text <> "" Then Me.btnNeueVersion.Enabled = True Me.refresh_applikationen1() End Sub Private Sub refresh_applikationen1() Me.cbapplikation1.SelectedValue = Me.Aktuelle_Applikation1 dt = Get_Versionen(Aktuelle_Applikation1) Me.cbversion1.DataSource = Nothing Me.cbversion1.DataSource = dt Me.cbversion1.DisplayMember = "Version" Me.cbversion1.ValueMember = "ApplikationVersionNr" Try If Version <> "" Then For Each r As DataRow In dt.Rows If r.Item("Version") = Version Then Me.cbversion1.SelectedValue = r.Item("ApplikationVersionNr") Next Else Me.cbversion1.SelectedIndex = 0 End If Catch ex As Exception End Try End Sub Private Sub btnAddversion1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNeueVersion1.Click Dim f As New frmVersion(0, Aktuelle_Applikation, True, False) f.ShowDialog() Me.refresh_applikationen1() End Sub Private Sub bznErstellenundzuweisen1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bznErstellenundzuweisen1.Click If Me.CreateNew = True Then If Me.Create_Lizenz = True Then Dim cveap As New TKB.VV.vertrag.clsVertragselementApplikation Dim x As Integer = cveap.Add_New(-99) cveap.Get_VertragselementApplikation(x) cveap.iApplikationnr = New SqlInt32(CType(Me.Aktuelle_Applikation1, Int32)) Try cveap.iApplikationVersionNr = New SqlInt32(CType(cbversion1.SelectedValue, Int32)) Catch ex As Exception cveap.iApplikationVersionNr = New SqlInt32(CType(0, Int32)) End Try cveap.Save_Data() Dim cliveapp As New TKB.VV.Lizenz.clsLizenzVertragselementApplikation cliveapp.Add_New(Aktuelle_Lizenznr, x) Me.SelectedApplikation = Me.Aktuelle_Applikation1 Me.DialogResult = Windows.Forms.DialogResult.OK Me.Close() End If Else Dim cveap As New TKB.VV.vertrag.clsVertragselementApplikation Dim x As Integer = cveap.Add_New(-99) cveap.Get_VertragselementApplikation(x) cveap.iApplikationnr = New SqlInt32(CType(Me.Aktuelle_Applikation1, Int32)) Try cveap.iApplikationVersionNr = New SqlInt32(CType(cbversion1.SelectedValue, Int32)) Catch ex As Exception cveap.iApplikationVersionNr = New SqlInt32(CType(0, Int32)) End Try cveap.Save_Data() Dim cliveapp As New TKB.VV.Lizenz.clsLizenzVertragselementApplikation cliveapp.Add_New(Aktuelle_Lizenznr, x) Me.SelectedApplikation = Me.Aktuelle_Applikation1 Me.DialogResult = Windows.Forms.DialogResult.OK Me.Close() End If End Sub Private Sub cbStrukturelement_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbStrukturelement.CheckedChanged If Me.cbStrukturelement.Checked = True Then Me.GroupBox4.Enabled = False Me.btnsave.visible = True Else Me.btnsave.visible = False Me.GroupBox4.Enabled = True End If End Sub Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click If Me.btnSave.Text = "Speichern" Then Me.Save_Lizenzdata() If Check_Parent() = False Then Me.lizenz.iParentID = New SqlInt32(CType(SaveParent, Int32)) Me.TreeviewParent.SelectedNode = Me.treeparent.FindNode(Me.TreeviewParent.Nodes, SaveParent, "") Me.lizenz.Save_Data() msg.show_standardmessage(893, MsgBoxStyle.Critical) Exit Sub End If Me.Save_Lizenzdata() Me.Close() Me.DialogResult = Windows.Forms.DialogResult.OK Exit Sub End If If Me.Create_Lizenz = True Then Me.DialogResult = Windows.Forms.DialogResult.OK Me.Close() End If End Sub Private Function Check_Parent() Dim tvd As New TKB.VV.Lizenz.clsLizenzTree Dim tv As New TreeView Try tvd.Load_Tree(tv, False, "", 2, False, False, 0) If tv.Nodes.Count < 1 Then Return False Else Return True Catch Return False End Try End Function Function Create_Lizenz() As Boolean If Me.txtBezeichnung.Text <> "" Then Aktuelle_Lizenznr = lizenz.Add_New lizenz.sBezeichnung = New SqlString(CType(Me.txtBezeichnung.Text, String)) Me.lizenz.sBeschreibung = New SqlString(CType(Me.txtbemerkung.Text, String)) lizenz.bStrukturelement = New SqlBoolean(CType(Me.cbStrukturelement.Checked = True, Boolean)) Me.lizenz.iParentID = New SqlInt32(CType(Me.TreeviewParent.SelectedNode.Tag, Int32)) Me.lizenz.iSecurityLevelNr = New SqlInt32(CType(Me.cboxSecurityLevel.SelectedValue, Int32)) Me.lizenz.bAktiv = New SqlBoolean(CType(Me.cbaktiv.Checked, Boolean)) lizenz.Save_Data() Return True Else msg.show_standardmessage(892, MsgBoxStyle.Critical) Return False End If End Function Sub Save_Lizenzdata() Me.Lizenz.sBezeichnung = New SqlString(CType(Me.txtBezeichnung.Text, String)) Me.lizenz.sBeschreibung = New SqlString(CType(Me.txtbemerkung.Text, String)) Try Me.lizenz.iParentID = New SqlInt32(CType(Me.TreeviewParent.SelectedNode.Tag, Int32)) Catch Me.lizenz.iParentID = New SqlInt32(CType(0, Int32)) End Try Me.lizenz.iSecurityLevelNr = New SqlInt32(CType(Me.cboxSecurityLevel.SelectedValue, Int32)) Me.lizenz.bAktiv = New SqlBoolean(CType(Me.cbaktiv.Checked, Boolean)) Me.lizenz.bStrukturelement = New SqlBoolean(CType(Me.cbStrukturelement.Checked, Boolean)) Me.lizenz.Save_Data() End Sub Private Sub GroupBox3_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox3.Enter End Sub Private Sub cbLizenzelement_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbLizenzelement.SelectedIndexChanged If Me.cbLizenzelement.Text = "" Then Me.bznErstellenundzuweisen.Enabled = False Else Me.bznErstellenundzuweisen.Enabled = True End Sub End Class