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.

439 lines
16 KiB

Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Public Class frmPPlan
#Region "Deklarationen"
Dim sec As New Utils.MySecurity
Dim msg As New Utils.MyMessage
Dim FormReadonly As Boolean = False
Dim FormDataChanged As Boolean = False
Private Anzeige As Boolean = False
Dim OnGetData As Boolean
Dim c1bookmark
Dim c2bookmark
Dim pruefplan As New clspruefplan
Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder
#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
Me.FormReadonly = True
If Me.FormReadonly = True Then Exit Sub
If Check_Changes() = False Then
e.Cancel = True
Else
pruefplan.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
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 "Form"
Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.ImageList1 = Globals.GueltigImages
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub frmPPlan_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Refresh_List()
sec.Set_Form_Security(Me)
End Sub
Sub Refresh_List(Optional searchstring As String = "")
Me.pruefplan.Get_Eintraege(Me.C1Daten, 0, Me.tsTxtSearch.Text)
Dim bmp0 As New Bitmap(Me.ImageList1.Images(0))
Dim bmp1 As New Bitmap(Me.ImageList1.Images(1))
Dim bmp2 As New Bitmap(Me.ImageList1.Images(2))
Dim bmp3 As New Bitmap(Me.ImageList1.Images(3))
Dim v0 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v1 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v2 As New C1.Win.C1TrueDBGrid.ValueItem()
Dim v3 As New C1.Win.C1TrueDBGrid.ValueItem()
v0.DisplayValue = bmp0
v0.Value = 0
v1.DisplayValue = bmp1
v1.Value = 1
v2.DisplayValue = bmp2
v2.Value = 2
v3.DisplayValue = bmp3
v3.Value = 3
Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v0)
Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v1)
Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v2)
Me.C1Daten.Columns("Icon").ValueItems.Values.Add(v3)
Me.C1Daten.Columns("Icon").ValueItems.Translate = True
Me.C1Daten.Splits(0).DisplayColumns("icon").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center
End Sub
#End Region
#Region "C1Daten"
Private Sub C1Daten_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Daten.MouseDown
Me.C1Daten.Bookmark = Me.C1Daten.RowContaining(e.Y)
End Sub
Private Sub C1Daten_RowColChange(sender As Object, e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C1Daten.RowColChange
Refresh_Details()
End Sub
#End Region
Sub Refresh_Details()
Try
Me.txtPruefgegenstand.Text = ""
Me.txtPrioritaet.Text = ""
Me.txtPeriodizitaet.Text = ""
Me.txtZeitpunkt.Text = ""
Me.txtVerantwortlich.Text = ""
Me.txtVerantwortungISI.Text = ""
Me.txtBeschreibung.Text = ""
Me.txtBezeichnung.Text = ""
Me.txtGueltigbis.Text = ""
Me.txtPruefgegenstand.Text = C1Daten.Columns("Pruefgegenstand").Value
Me.txtPeriodizitaet.Text = C1Daten.Columns("Periodizitaet").Value
Me.txtPrioritaet.Text = C1Daten.Columns("Prioritaet").Value
Me.txtZeitpunkt.Text = C1Daten.Columns("Zeitpunkt").Value
Me.txtVerantwortlich.Text = C1Daten.Columns("Verantwortung").Value
Me.txtVerantwortungISI.Text = C1Daten.Columns("Verantwortung_ISI").Value
Me.txtVerantwortlichPlan.Text = C1Daten.Columns("VerantwortungPlan").Value
Me.txtBeschreibung.Text = C1Daten.Columns("Beschreibung").Value
Me.txtBezeichnung.Text = C1Daten.Columns("Bezeichnung").Value
Me.txtGueltigbis.Text = C1Daten.Columns("Gueltig_bis").Value
Me.DokumenteAllgemein.Show_Toolbar = False
Me.DokumenteAllgemein.ConnectionString = Globals.sConnectionString
Me.DokumenteAllgemein.Mitarbeiternr = Globals.clsmitarbeiter.iMitarbeiternr.Value
Me.DokumenteAllgemein.Doktype = 3
Me.DokumenteAllgemein.ThemaNr = C1Daten.Columns("PruefplanNr").Value
Me.DokumenteAllgemein.Refresh()
Me.DokumenteAllgemein.TempFilePath = Globals.clsapplication.sTmp_filepath.Value
Me.cbKeinMail.Checked = C1Daten.Columns("Kein_Mailversand").Value = True
Me.cbSelbstkontrolle.Checked = C1Daten.Columns("Selbstkontrolle").Value = True
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Sub
Private Sub TSBtnAddNew_Click(sender As Object, e As EventArgs) Handles TSBtnAddNew.Click
Dim f As New frmPruefplanDetail
f.MdiParent = Me.MdiParent
f.PruefplanHandler = Me.Handle
f.Show()
End Sub
Private Sub DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DetailsAnzeigenBearbeitenToolStripMenuItem.Click
Try
c1bookmark = C1Daten.Bookmark
Dim f As New frmPruefplanDetail
f.Pruefplannr = Me.C1Daten.Columns("pruefplannr").Value
f.MdiParent = Me.MdiParent
f.PruefplanHandler = Me.Handle
'If Me.ToolStripPruefplan.Visible = False Or Me.ToolStripPruefplan.Enabled = False Then
' f.IsReadonly = True
'End If
f.Show()
Catch ex As Exception
End Try
End Sub
Private Sub C1Daten_DoubleClick(sender As Object, e As EventArgs) Handles C1Daten.DoubleClick
Try
DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender, e)
Catch ex As Exception
End Try
End Sub
Private Sub TSBtnQuit_Click(sender As Object, e As EventArgs) Handles TSBtnQuit.Click
Me.Close()
End Sub
Private Sub evh_Pruefplandetail_Saved(handler As Integer, key As Integer) Handles evh.Pruefplandetail_Saved, evh.Pruefplandetail_Closed
Try
If handler = Me.Handle Then
Me.Refresh_List()
For i = 0 To Me.C1Daten.Splits(0).Rows.Count - 1
If C1Daten.Columns("PruefplanNr").CellValue(i) = key Then
Me.C1Daten.Bookmark = i
Refresh_Details()
End If
Next
End If
Catch
End Try
End Sub
Private Sub tsBtnSearchStruktur_Definition_Click(sender As Object, e As EventArgs) Handles tsBtnSearchStruktur_Definition.Click
Refresh_List(Me.tsTxtSearch.Text)
End Sub
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles tsbtnFilterAufheben.Click
Me.tsTxtSearch.Text = ""
Refresh_List(Me.tsTxtSearch.Text)
End Sub
Private Sub tsTxtSearch_KeyDown(sender As Object, e As KeyEventArgs) Handles tsTxtSearch.KeyDown
If e.KeyCode = Keys.Enter Then
tsBtnSearchStruktur_Definition_Click(sender, e)
End If
End Sub
Private Sub DefinitionAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DefinitionAnzeigenToolStripMenuItem.Click
Dim f As New frmVorgabeDefinition
f.Key = Me.C1Daten.Columns("VorgabeDefinitionNr").Value
f.ShowDialog()
End Sub
Private Sub NeueDefinitionErfassenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueDefinitionErfassenToolStripMenuItem.Click
TSBtnAddNew_Click(sender, e)
End Sub
Private Sub VorgabeAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorgabeAnzeigenToolStripMenuItem.Click
Dim f As New frmVorgabe(Me.C1Daten.Columns("Pruefplannr").Value)
f.MdiParent = Me.MdiParent
f.Show()
End Sub
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
DetailsAnzeigenBearbeitenToolStripMenuItem_Click(sender, e)
End Sub
Private Sub TSBtnDelete_Click(sender As Object, e As EventArgs) Handles TSBtnDelete.Click
Try
Dim i As Integer = Me.pruefplan.Get_Data(Me.C1Daten.Columns("Pruefplannr").Value)
If MsgBox("Prüfplaneintrag wirklich löschen?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then
Me.pruefplan.Get_Data(Me.C1Daten.Columns("Pruefplannr").Value)
Me.pruefplan.Delete_Data()
Me.Refresh_List()
End If
Catch ex As Exception
End Try
End Sub
Private Sub PrüfschrittGenerierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PrüfschrittGenerierenToolStripMenuItem.Click
Generate_Action()
End Sub
Public Function Generate_Action()
Try
Dim ds As New DataSet
Dim connection As New SqlConnection()
Dim da As New SqlDataAdapter("", connection)
Dim sqlcmd As New SqlCommand
'sqlcmd.CommandText = "generate_massnahme"
sqlcmd.CommandText = "generate_pruefschritt"
sqlcmd.Parameters.Add(New SqlParameter("@pruefplannr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.C1Daten.Columns("Pruefplannr").Value))
sqlcmd.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.clsmitarbeiter.iMitarbeiternr.Value))
sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.Connection = connection
Try
connection.ConnectionString = Globals.sConnectionString
connection.Open()
sqlcmd.ExecuteNonQuery()
MsgBox("Generierung abgeschlossen")
Catch ex As Exception
MsgBox(ex.Message)
Finally
connection.Close()
da.Dispose()
sqlcmd.Dispose()
End Try
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click
Me.Close()
End Sub
#Region "Toolbar"
#End Region
End Class