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.
395 lines
14 KiB
395 lines
14 KiB
Imports C1.Win.C1TrueDBGrid
|
|
Imports System.Data
|
|
Imports System.Data.SqlTypes
|
|
Imports System.Data.SqlClient
|
|
|
|
Public Class frmIKVTest
|
|
#Region "Deklarationen"
|
|
Dim ApplikationIKVTest As New TKB.VV.Applikation.clsApplikationIKVTest
|
|
|
|
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
|
|
|
|
Private ApplikationIKVTestNr As Integer
|
|
Private Applikationsnr As Integer
|
|
Dim Neuer_Datensatz As Boolean = False
|
|
|
|
#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>
|
|
''' 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
|
|
If Me.ApplikationIKVTest.Neuer_Datensatz = True Then Me.ApplikationIKVTest.Delete(Me.ApplikationIKVTest.iApplikation_IKV_TestNr.Value)
|
|
Globals.MyEventHanlder.IKVDetailsClosed()
|
|
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
|
|
Return True
|
|
End Select
|
|
Else
|
|
Return True
|
|
End If
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "Formular"
|
|
|
|
Sub New()
|
|
InitializeComponent()
|
|
End Sub
|
|
|
|
Sub New(ByVal ApplikationIKVTestNr As Integer, ByVal Applikationsnr As Integer, Optional ByVal CreateNew As Boolean = False, Optional ByVal FormReadOnly As Boolean = False)
|
|
InitializeComponent()
|
|
Me.FormReadonly = FormReadOnly
|
|
If CreateNew = True Then
|
|
Me.ApplikationIKVTestNr = Me.ApplikationIKVTest.Add_New(Applikationsnr)
|
|
Me.Neuer_Datensatz = True
|
|
Else
|
|
Me.ApplikationIKVTestNr = ApplikationIKVTestNr
|
|
End If
|
|
Me.Applikationsnr = Applikationsnr
|
|
End Sub
|
|
Private Sub frmIKVTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
sec.Set_Form_Security(Me)
|
|
|
|
If Me.FormReadonly = True Then Me.TSBtnSave.Enabled = False
|
|
|
|
If Me.TSBtnSave.Enabled = False Or Me.TSBtnSave.Visible = False Then
|
|
Me.FormReadonly = True
|
|
Me.TSBtnDelete.Enabled = False
|
|
Else
|
|
Me.FormReadonly = False
|
|
End If
|
|
|
|
Dim i As Integer = Year(Now) - 2
|
|
Dim i1 As Integer = 0
|
|
For i1 = i To i + 5
|
|
Me.cbboxJahr.Items.Add(i1)
|
|
Next
|
|
|
|
Me.cbboxResultat.DataSource = Me.ApplikationIKVTest.IKVTestresultate
|
|
Me.cbboxResultat.DisplayMember = "Bezeichnung"
|
|
Me.cbboxResultat.ValueMember = "IKVTestResultatnr"
|
|
Me.AddChanges(Me)
|
|
Get_Data(Me.Applikationikvtestnr)
|
|
If Me.Neuer_Datensatz = True Then
|
|
Me.ApplikationIKVTest.Neuer_Datensatz = True
|
|
Me.Neuer_Datensatz = False
|
|
End If
|
|
If Me.FormReadonly = True Then
|
|
Me.TSBtnSave.Enabled = False
|
|
sec.Set_Form_Readonly(Me)
|
|
End If
|
|
Refresh_Dokumente()
|
|
Me.FormDataChanged = False
|
|
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Handelt das Change-Ereignis eines Datetimepckers und stellt das ausgewählte Datum in das entsprechende Textfeld
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub DateTimePicker_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _
|
|
dtDurchgefuehrt.ValueChanged, dtGeplant.ValueChanged
|
|
Dim s As String
|
|
Dim obj As DateTimePicker = sender
|
|
s = obj.Name
|
|
s = "txt" + s.Substring(2, s.Length - 2)
|
|
Dim l As New List(Of Control)
|
|
Dim txtb As MaskedTextBox
|
|
GetControl(Me, s, l)
|
|
For Each ctl As Control In l
|
|
txtb = CType(ctl, MaskedTextBox)
|
|
txtb.Text = obj.Value
|
|
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
|
|
|
|
#End Region
|
|
|
|
#Region "Daten"
|
|
''' <summary>
|
|
''' Person laden und präsentieren
|
|
''' </summary>
|
|
''' <param name="Nr"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub Get_Data(ByVal Nr As Integer)
|
|
Me.ApplikationIKVTest.Get_ApplikationIKVTest(Nr)
|
|
Me.cbboxJahr.Text = Me.ApplikationIKVTest.iJahr.Value.ToString
|
|
Me.cbboxResultat.SelectedValue = Me.ApplikationIKVTest.iApplikation_IKV_TestResultatNr.Value
|
|
Me.txtgeplant.Text = Me.ApplikationIKVTest.daGeplant.ToString
|
|
Me.txtdurchgefuehrt.Text = Me.ApplikationIKVTest.daDurchgeführt.ToString
|
|
Me.txtBemerkung.Text = Me.ApplikationIKVTest.sBemerkung.Value
|
|
Me.cbaktiv.Checked = Me.ApplikationIKVTest.bAktiv.Value = True
|
|
Me.FormDataChanged = False
|
|
End Sub
|
|
''' <summary>
|
|
''' Daten sichern, sofern Änderungen vorgenommen worden sind
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub Save_Data()
|
|
|
|
If Me.FormDataChanged Then
|
|
If IsNumeric(Me.cbboxJahr.Text) Then Me.ApplikationIKVTest.iJahr = New SqlInt32(CType(Me.cbboxJahr.Text, Int32))
|
|
If IsDate(Me.txtgeplant.Text) Then
|
|
Me.ApplikationIKVTest.daGeplant = New SqlDateTime(CType(Me.txtgeplant.Text, SqlDateTime))
|
|
Else
|
|
Me.ApplikationIKVTest.daGeplant = New SqlDateTime(CType(SqlDateTime.Null, SqlDateTime))
|
|
End If
|
|
If IsDate(Me.txtdurchgefuehrt.Text) Then
|
|
Me.ApplikationIKVTest.daDurchgeführt = New SqlDateTime(CType(Me.txtdurchgefuehrt.Text, SqlDateTime))
|
|
Else
|
|
Me.ApplikationIKVTest.daDurchgeführt = New SqlDateTime(CType(SqlDateTime.Null, SqlDateTime))
|
|
End If
|
|
|
|
Me.ApplikationIKVTest.sBemerkung = New SqlString(CType(Me.txtBemerkung.Text, String))
|
|
Me.ApplikationIKVTest.iApplikation_IKV_TestResultatNr = New SqlInt32(CType(Me.cbboxResultat.SelectedValue, Int32))
|
|
Me.ApplikationIKVTest.bAktiv = New SqlBoolean(CType(Me.cbaktiv.Checked, Boolean))
|
|
Get_Data(Me.ApplikationIKVTest.Save_Data)
|
|
Me.FormDataChanged = False
|
|
End If
|
|
|
|
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 TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click
|
|
Me.Save_Data()
|
|
Me.FormDataChanged = False
|
|
End Sub
|
|
|
|
Private Sub TSBtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click
|
|
If msg.Show_MessageYesNo(881) = MsgBoxResult.Yes Then
|
|
Me.ApplikationIKVTest.Delete_ApplikationIKVTest(Me.ApplikationIKVTest.iApplikation_IKV_TestNr.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.TSBtnQuit_Click(sender, e)
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Dokumetne_Aktualisieren
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub Refresh_Dokumente()
|
|
Try
|
|
If Check_Changes() = False Then Exit Sub
|
|
Catch ex As Exception
|
|
End Try
|
|
Dim filtertext As String = "none"
|
|
Try
|
|
filtertext = Me.C1Dokumente.Columns("Aktiv").FilterText
|
|
Catch ex As Exception
|
|
End Try
|
|
|
|
Dim bm As Integer = 0
|
|
bm = Me.C1Dokumente.Bookmark
|
|
|
|
Me.C1Dokumente.Enabled = False
|
|
|
|
Me.ApplikationIKVTest.Get_Dokumente(Me.C1Dokumente, Me.ImageListeDocIcon)
|
|
Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Dokumente, "Dokument", Me.ApplikationIKVTest.dokumente)
|
|
If filtertext <> "none" Then Me.C1Dokumente.Columns("Aktiv").FilterText = filtertext
|
|
sec.Set_Form_Security(Me)
|
|
Try
|
|
Me.C1Dokumente.Bookmark = bm
|
|
Catch ex As Exception
|
|
End Try
|
|
Me.C1Dokumente.Enabled = True
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
Private Sub DokumentNeuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DokumentNeuToolStripMenuItem.Click
|
|
Try
|
|
Dim f As New frmDokument(0, 5, Me.ApplikationIKVTestNr, Me.FormReadonly, True)
|
|
' f.MdiParent = Me.MdiParent
|
|
f.ShowDialog()
|
|
Refresh_Dokumente()
|
|
Catch ex As Exception
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub DokumentAnzeigenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DokumentAnzeigenToolStripMenuItem.Click
|
|
Try
|
|
Dim f As New frmDokument(Me.C1Dokumente.Columns("Dokumentnr").Value, 5, Me.ApplikationIKVTestNr, Me.FormReadonly, False)
|
|
f.ShowDialog()
|
|
Refresh_Dokumente()
|
|
Catch ex As Exception
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub DokumentLöschenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DokumentLöschenToolStripMenuItem.Click
|
|
Try
|
|
If msg.Show_MessageYesNo(275) = MsgBoxResult.Yes Then
|
|
Me.ApplikationIKVTest.Dokument.Delete_Dokument(Me.C1Dokumente.Columns("Dokumentnr").Value)
|
|
Me.Refresh_Dokumente()
|
|
End If
|
|
Catch
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Dokument_Anzeigen_Dokument_ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dokument_Anzeigen_Dokument_ToolStripMenuItem.Click
|
|
Try
|
|
Me.ApplikationIKVTest.Dokument.Show_Doc(Me.C1Dokumente.Columns("Dokumentnr").Value)
|
|
Catch
|
|
End Try
|
|
|
|
End Sub
|
|
Private Sub C1Dokumente_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1Dokumente.DoubleClick
|
|
Try
|
|
Me.Dokument_Anzeigen_Dokument_ToolStripMenuItem_Click(sender, e)
|
|
Catch ex As Exception
|
|
End Try
|
|
End Sub
|
|
|
|
End Class |