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.

294 lines
12 KiB

Imports System.Data.SqlTypes
Public Class frmLizenzkauf
#Region "Deklarationen"
Dim Lizenztyp As New DataTable
Dim clsLizenztyp As New TKB.VV.DB.clsLizenztyp
Dim cLizenzkauf As New TKB.VV.Lizenz.clsLizenzkauf
Dim Lizenznr As Integer
Dim key As Integer
Dim Lizenzveapplnr As Integer
Dim Formdatachanged As Boolean = False
Dim FormReadonly As Boolean = False
Dim msg As New TKB.VV.Utils.MyMessage
#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 "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
cLizenzkauf.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
Sub New(ByVal Lizenznr As Integer, ByVal bezeichnung As String, ByVal Lizenzkaufnr As Integer, ByVal lizenzveapplnr As Integer)
InitializeComponent()
Me.Lizenznr = Lizenznr
Me.Text = Me.Text + " - " + bezeichnung
key = Lizenzkaufnr
Me.Lizenzveapplnr = lizenzveapplnr
End Sub
Private Sub frmLizenzkauf_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.clsLizenztyp.cpMainConnectionProvider = Globals.conn
Me.Lizenztyp = clsLizenztyp.SelectAll
Me.cbboxLizenztyp.DataSource = Me.Lizenztyp
Me.cbboxLizenztyp.DisplayMember = "Bezeichnung"
Me.cbboxLizenztyp.ValueMember = "Lizenztypnr"
If key > 0 Then
Get_Data()
Else
Me.cbaktiv.Checked = True
End If
AddChanges(Me)
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
Me.Close()
End Sub
Private Sub Get_Data()
Me.cLizenzkauf.Get_Data(key)
Me.cbboxLizenztyp.SelectedValue = Me.cLizenzkauf.iLizenztypnr.Value
Me.txtAnzahl.Text = Me.cLizenzkauf.iAnzahl.Value
Me.txtKGNummer.Text = Me.cLizenzkauf.sKGNummer.ToString
Me.txtSAPNummer.Text = Me.cLizenzkauf.sSAPNummer.ToString
Me.txtBemerkung.Text = Me.cLizenzkauf.sBemerkung.ToString
Me.txtKaufdatum.Text = Me.cLizenzkauf.daKaufdatum.ToString
Me.txtGültigbis.Text = Me.cLizenzkauf.daGueltigbis.ToString
Me.cbaktiv.Checked = Me.cLizenzkauf.bAktiv.Value = True
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
save_data()
Me.Close()
End Sub
Private Sub save_data()
If key = 0 Then
key = Me.cLizenzkauf.Add_New(Me.Lizenznr)
Me.cLizenzkauf.iVertragselementapplikationnr = New SqlInt32(CType(Me.Lizenzveapplnr, Int32))
Else
Me.cLizenzkauf.Get_Data(key)
End If
Me.cLizenzkauf.iLizenztypnr = New SqlInt32(CType(Me.cbboxLizenztyp.SelectedValue, Int32))
Me.cLizenzkauf.iLizenznr = New SqlInt32(CType(Me.Lizenznr, Int32))
If Me.txtAnzahl.Text = "" Then
Me.cLizenzkauf.iAnzahl = New SqlInt32(CType(0, Int32))
Else
Me.cLizenzkauf.iAnzahl = New SqlInt32(CType(Me.txtAnzahl.Text, Int32))
End If
Me.cLizenzkauf.sBemerkung = New SqlString(CType(Me.txtBemerkung.Text, String))
Me.cLizenzkauf.sKGNummer = New SqlString(CType(Me.txtKGNummer.Text, String))
Me.cLizenzkauf.sSAPNummer = New SqlString(CType(Me.txtSAPNummer.Text, String))
If IsDate(Me.txtKaufdatum.Text) Then
Me.cLizenzkauf.daKaufdatum = New SqlDateTime(CType(Me.txtKaufdatum.Text, DateTime))
Else
Me.cLizenzkauf.daKaufdatum = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
End If
If IsDate(Me.txtGültigbis.Text) Then
Me.cLizenzkauf.daGueltigbis = New SqlDateTime(CType(Me.txtGültigbis.Text, DateTime))
Else
Me.cLizenzkauf.daGueltigbis = New SqlDateTime(CType(SqlDateTime.Null, DateTime))
End If
Me.cLizenzkauf.bAktiv = New SqlBoolean(CType(Me.cbaktiv.Checked, Boolean))
Me.cLizenzkauf.Save_Data()
End Sub
Private Sub dtPickerKaufdatum_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtPickerKaufdatum.ValueChanged
Me.txtKaufdatum.Text = Me.dtPickerKaufdatum.Value
End Sub
Private Sub dtPickerGültigbis_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtPickerGültigbis.ValueChanged
Me.txtGültigbis.Text = Me.dtPickerGültigbis.Value
End Sub
Private Sub txtAnzahl_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtAnzahl.KeyDown
End Sub
Private Sub txtAnzahl_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtAnzahl.KeyPress
If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso e.KeyChar <> ControlChars.Back AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "-" Then
e.Handled = True
End If
End Sub
Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click
save_data()
End Sub
Private Sub txtKaufdatum_MaskInputRejected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles txtKaufdatum.MaskInputRejected
End Sub
Private Sub txtGültigbis_MaskInputRejected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles txtGültigbis.MaskInputRejected
End Sub
Private Sub txtKaufdatum_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtKaufdatum.TextChanged
If txtKaufdatum.Text = "01.01.1900" Then txtKaufdatum.Text = " . . "
End Sub
Private Sub txtGültigbis_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtGültigbis.TextChanged
If txtGültigbis.Text = "01.01.1900" Then txtGültigbis.Text = " . . "
End Sub
End Class