Imports System.ComponentModel Imports System.Data.SqlClient Imports System.Data.SqlTypes Imports C1.Win.C1TrueDBGrid Public Class Beziehungen #Region "Properties" Dim m_IsRefreshed As Boolean = False Property IsRefreshed As Boolean Get Return m_IsRefreshed End Get Set(value As Boolean) m_IsRefreshed = value End Set End Property Dim m_ConnectionString As String Dim FilterDoubleClicked As Boolean = True Public Property ConnectionString() As String Get ConnectionString = m_ConnectionString End Get Set(ByVal Value As String) If m_ConnectionString <> Value Then m_ConnectionString = Value Globals.conn.sConnectionString = m_ConnectionString Datenklasse.ConnectionString = m_ConnectionString Init_Comp() End If End Set End Property Dim m_Mitarbeiternr As Integer Public Property Mitarbeiternr As Integer Get Mitarbeiternr = m_Mitarbeiternr End Get Set(value As Integer) If m_Mitarbeiternr <> value Then m_Mitarbeiternr = value Globals.Mitarbeiternr = m_Mitarbeiternr Datenklasse.Mitarbeiternr = m_Mitarbeiternr End If End Set End Property Dim m_TempFilePath As String Public Property TempFilePath As String Get TempFilePath = m_TempFilePath End Get Set(value As String) If m_TempFilePath <> value Then m_TempFilePath = value Globals.TmpFilepath = m_TempFilePath End If End Set End Property Dim m_keyvalue As Integer Public Property KeyValue As Integer Get KeyValue = m_keyvalue End Get Set(value As Integer) If m_keyvalue <> value Then m_keyvalue = value Refresh_Details() End If End Set End Property Dim m_Type As String Public Property Type As String Get Type = m_Type End Get Set(value As String) If m_Type <> value Or value = "Personal" Then m_Type = value Refresh_Details() End If End Set End Property Dim m_Generic_Event_Handler As _Generic_Event_Handler.Generic_Event_Handler Public Property Generic_Event_Handler Get Generic_Event_Handler = m_Generic_Event_Handler End Get Set(value) m_Generic_Event_Handler = value Globals.Generic_Event_Handler = m_Generic_Event_Handler evh = Globals.Generic_Event_Handler End Set End Property #End Region #Region "Deklarationen" Dim Datenklasse As New _DataClass.DataClass Event C1Beziehungen_DoubleClicked(ByVal keyvalue As Integer, ByVal Typ As String, ByVal NewWindows As Boolean) Event Delete_Entry(ByVal Keyvalue As Integer, ByVal typ As String) Event Delete_Entries(ByVal grid As C1TrueDBGrid) Event Edit_Entry(ByVal Keyvalue As Integer, ByVal typ As String) Event Update_Entries(ByVal Grid As C1TrueDBGrid, ByVal destkey As Integer, ByVal desttype As Integer) Dim SpaltenTitel As New Utils.Tabellenspalte Dim sec As New Utils.MySecurity Dim filtercollection As New Collection Dim WithEvents evh As _Generic_Event_Handler.Generic_Event_Handler = Globals.Generic_Event_Handler #End Region Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() End Sub Sub Init_Comp() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Globals.conn.sConnectionString = Me.ConnectionString Globals.sConnectionString = Me.ConnectionString Globals.Mitarbeiternr = Mitarbeiternr Globals.TmpFilepath = TempFilePath End Sub Public Function Refresh_Details(Optional Position As Integer = 0) As Boolean 'If Me.IsRefreshed Then Exit Function Dim cid As Boolean = False Try Me.C1Beziehungen.Enabled = False Dim i As Integer filtercollection.Clear() For i = 0 To Me.C1Beziehungen.Columns.Count - 1 If Me.C1Beziehungen.Columns(i).FilterText.ToString <> "" Then Dim fc As New Filterclass Try fc.add(Me.C1Beziehungen.Columns(i).DataField.ToString, Me.C1Beziehungen.Columns(i).FilterText.ToString) filtercollection.Add(New Filterclass(Me.C1Beziehungen.Columns(i).DataField.ToString, Me.C1Beziehungen.Columns(i).FilterText.ToString)) Catch ex As Exception End Try End If Next Dim dt As New DataTable Datenklasse.ConnectionString = Me.ConnectionString dt = Datenklasse.Get_Beziehungen(Me.Type, Me.KeyValue) Me.C1Beziehungen.DataSource = Nothing Me.C1Beziehungen.DataSource = dt Me.C1Beziehungen.DataMember = dt.TableName Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Beziehungen, "Beziehungen", dt) If Position <> 0 Then For i = 0 To Me.C1Beziehungen.Splits(0).Rows.Count - 1 Me.C1Beziehungen.Bookmark = i Try If Me.C1Beziehungen.Columns("ID").CellText(i) = Position Then Exit For Catch End Try Next End If For i = 1 To Me.filtercollection.Count Dim fc As New Filterclass fc = Me.filtercollection.Item(i) Dim ii As Integer For ii = 0 To Me.C1Beziehungen.Columns.Count - 1 If Me.C1Beziehungen.Columns(ii).DataField.ToString = fc.Columname Then Me.C1Beziehungen.Columns(ii).FilterText = fc.FilterValue Exit For End If Next Next Dim hascid As Boolean = False For Each c As DataColumn In dt.Columns If c.ColumnName = "CID" Then hascid = True Next If hascid = True Then For Each r As DataRow In dt.Rows Try If r.Item("CID") = 1 Then cid = True Catch End Try Next End If Catch End Try Try sec.Set_Form_Security(Me) Catch End Try Me.C1Beziehungen.Enabled = True Me.IsRefreshed = True Return cid End Function Private Sub C1Beziehungen_DoubleClick(sender As Object, e As EventArgs) Handles C1Beziehungen.DoubleClick If FilterDoubleClicked Then FilterDoubleClicked = False Exit Sub End If FilterDoubleClicked = False Try RaiseEvent C1Beziehungen_DoubleClicked(Me.C1Beziehungen.Columns("Mkey").Value, Me.C1Beziehungen.Columns("Typ").Value, False) Catch End Try End Sub Private Sub InEinemNeuenFensterÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InEinemNeuenFensterÖffnenToolStripMenuItem.Click Try RaiseEvent C1Beziehungen_DoubleClicked(Me.C1Beziehungen.Columns("Mkey").Value, Me.C1Beziehungen.Columns("Typ").Value, True) Catch End Try End Sub Dim _ptStartDrag As Point Dim _dragRow As Long Private Sub EintragInaktivierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragInaktivierenToolStripMenuItem.Click Try If C1Beziehungen.SelectedRows.Count < 1 Then RaiseEvent Delete_Entry(Me.C1Beziehungen.Columns("ID").Value, Me.C1Beziehungen.Columns("Typ").Value) Else RaiseEvent Delete_Entries(Me.C1Beziehungen) End If Catch End Try End Sub Private Sub EintragBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragBearbeitenToolStripMenuItem.Click Try RaiseEvent Edit_Entry(Me.C1Beziehungen.Columns("ID").Value, Me.C1Beziehungen.Columns("Typ").Value) Catch End Try End Sub Private Sub C1Beziehungen_MouseMove(sender As Object, e As MouseEventArgs) Handles C1Beziehungen.MouseMove If Not altpressed Then Exit Sub Dim activate As Boolean = False If Me.C1Beziehungen.SelectedRows.Count > 0 Then activate = True If activate Then Me.C1Beziehungen.DoDragDrop(Me.C1Beziehungen, DragDropEffects.Move) End If End Sub Private Sub C1Beziehungen_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Beziehungen.MouseDown Me.C1Beziehungen.Bookmark = Me.C1Beziehungen.RowContaining(e.Y) altpressed = False 'Exit Sub Dim row, col As Integer Me._ptStartDrag = Point.Empty Me._dragRow = -1 If Me.C1Beziehungen.CellContaining(e.X, e.Y, row, col) Then ' Save the starting point of the drag operation. Me._ptStartDrag = New Point(e.X, e.Y) Me._dragRow = row End If End Sub Dim altpressed As Boolean = False Private Sub C1Beziehungen_KeyDown(sender As Object, e As KeyEventArgs) Handles C1Beziehungen.KeyDown 'If e.KeyCode = Keys.M Then altpressed = True 'If Me.EintragBearbeitenToolStripMenuItem.Enabled = False Then ' altpressed = False 'End If End Sub Private Sub C1Beziehungen_KeyUp(sender As Object, e As KeyEventArgs) Handles C1Beziehungen.KeyUp 'If e.KeyCode = Keys.M Then altpressed = False End Sub Public Function Update_Droped_Beziehungen(ByVal DestKey As Integer, DestType As Integer) RaiseEvent Update_Entries(Me.C1Beziehungen, DestKey, DestType) End Function Private Sub SecurityObjekteToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SecurityObjekteToolStripMenuItem.Click If InputBox("Passwort:") <> "341211" Then Exit Sub sec.List_Form_Controls(Me) sec.Print_Screen(Me) End Sub Private Sub C1Beziehungen_FetchRowStyle(sender As Object, e As FetchRowStyleEventArgs) Handles C1Beziehungen.FetchRowStyle Try If Me.C1Beziehungen.Columns("Temp").CellValue(e.Row) = 1 Then e.CellStyle.ForeColor = Color.Red Dim dt As New DataTable dt = Datenklasse.Get_Temporaer_Berechtigung(Me.C1Beziehungen.Columns("ID").CellValue(e.Row)) Dim d As DateTime = dt.Rows(0).Item("Termin") Dim tage As Integer = DateDiff(DateInterval.Day, d, Now) * -1 If tage > My.Settings.Tage Then If My.Settings.Foreground_gueltig <> "" Then e.CellStyle.ForeColor = ColorTranslator.FromHtml(My.Settings.Foreground_gueltig) End If If tage >= 0 And tage <= My.Settings.Tage Then If My.Settings.Foreground_vor_ablauf <> "" Then e.CellStyle.ForeColor = ColorTranslator.FromHtml(My.Settings.Foreground_vor_ablauf) If My.Settings.Background_vor_ablauf <> "" Then e.CellStyle.BackColor = ColorTranslator.FromHtml(My.Settings.Background_vor_ablauf) End If If tage < 0 Then If My.Settings.Foreground_abgelaufen <> "" Then e.CellStyle.ForeColor = ColorTranslator.FromHtml(My.Settings.Foreground_abgelaufen) If My.Settings.Background_abgelaufen <> "" Then e.CellStyle.BackColor = ColorTranslator.FromHtml(My.Settings.Background_abgelaufen) End If If d < Now Then If My.Settings.Foreground_abgelaufen <> "" Then e.CellStyle.ForeColor = ColorTranslator.FromHtml(My.Settings.Foreground_abgelaufen) If My.Settings.Background_abgelaufen <> "" Then e.CellStyle.BackColor = ColorTranslator.FromHtml(My.Settings.Background_abgelaufen) End If End If Catch ex As Exception End Try End Sub Private Sub ctxMenuBeziehungen_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ctxMenuBeziehungen.Opening Try If Me.C1Beziehungen.Columns("Temp").Value = 1 Then If sec.Check_DataObjectReadonly("TempBeziehung") = True Then Me.EintragBearbeitenToolStripMenuItem.Enabled = False Me.EintragInaktivierenToolStripMenuItem.Enabled = False Else Me.EintragBearbeitenToolStripMenuItem.Enabled = True Me.EintragInaktivierenToolStripMenuItem.Enabled = True End If End If Catch End Try Try If Me.C1Beziehungen.SelectedRows.Count > 0 Then Me.BeziehungenKopierenToolStripMenuItem.Enabled = True Me.BeziehungenVerschiebenToolStripMenuItem.Enabled = True Else Me.BeziehungenKopierenToolStripMenuItem.Enabled = False Me.BeziehungenVerschiebenToolStripMenuItem.Enabled = False End If Catch End Try End Sub Private Sub C1Beziehungen_MouseUp(sender As Object, e As MouseEventArgs) Handles C1Beziehungen.MouseUp If C1Beziehungen.PointAt(e.X, e.Y) = C1.Win.C1TrueDBGrid.PointAtEnum.AtFilterBar Then FilterDoubleClicked = True Exit Sub End If FilterDoubleClicked = False End Sub Private Sub BeziehungenVerschiebenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeziehungenVerschiebenToolStripMenuItem.Click evh.Fire_Select_to_Move_Copy(True, Me.C1Beziehungen, KeyValue) End Sub Private Sub BeziehungenKopierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeziehungenKopierenToolStripMenuItem.Click evh.Fire_Select_to_Move_Copy(False, Me.C1Beziehungen, KeyValue) End Sub Private Sub GrpBeziehungen_Enter(sender As Object, e As EventArgs) Handles GrpBeziehungen.Enter End Sub End Class Public Class Filterclass Dim m_columname As String Dim m_filtervalue As String Property Columname() As String Get Return m_columname End Get Set(ByVal value As String) m_columname = value End Set End Property Property FilterValue() As String Get Return m_filtervalue End Get Set(ByVal value As String) m_filtervalue = value End Set End Property Sub New(ByVal columname As String, ByVal filtervalue As String) MyBase.New() Me.Columname = columname Me.FilterValue = filtervalue End Sub Sub New() MyBase.New() End Sub Public Sub add(ByVal columname As String, ByVal filtervalue As String) Me.Columname = columname Me.FilterValue = filtervalue End Sub End Class