Imports C1.Win.C1TrueDBGrid Public Class frmPendenzübersicht #Region "Deklarationen" Dim Pendenzen As New TKB.VV.Vertrag.clsPendenzUebersicht Dim Pendenz As New TKB.VV.Vertrag.clsPendenz Dim sec As New TKB.VV.Utils.MySecurity Dim msg As New TKB.VV.Utils.MyMessage Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte Dim data As New DataTable Dim FormReadOnly As Boolean = False Dim Save_Status As String ''' ''' Generic Event-Handler ''' ''' Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder Dim StatusTable As New TKB.VV.DB.clsPendenzstatus Dim Statusdata As New DataTable #End Region ''' ''' Laden des Formulars ''' ''' ''' ''' Private Sub frmPendenzübersicht_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Get_Load_Status() Me.StatusToolStripComboBox.SelectedIndex = 1 Refresh_Uebersicht() End Sub ''' ''' Aktualisieren der Pendenz-Übersicht ''' ''' Private Sub Refresh_Uebersicht() Me.C1Pendenzen.Enabled = False Try Dim i As Integer = -1 For Each dr As DataRow In Me.Statusdata.Rows If dr.Item("Bezeichnung") = Me.StatusToolStripComboBox.SelectedItem Then i = dr.Item("Pendenzstatusnr") Next ' data = Pendenzen.Get_Pendenzuebersicht(0, Me.StatusToolStripComboBox.SelectedItem) data = Pendenzen.Get_Pendenzuebersicht(0, i) Me.Save_Status = Me.StatusToolStripComboBox.SelectedItem Catch ex As Exception Dim i1 As Integer = -1 For Each dr As DataRow In Me.Statusdata.Rows If dr.Item("Bezeichnung") = Me.Save_Status Then i1 = dr.Item("Pendenzstatusnr") Next data = Pendenzen.Get_Pendenzuebersicht(0, i1) End Try Dim filtertext As String = "" Try For Each c As C1DataColumn In Me.C1Pendenzen.Columns If c.FilterText <> "" Then filtertext = filtertext + ";" + c.Caption + ":" + c.FilterText Next Catch ex As Exception End Try Me.C1Pendenzen.DataSource = data Me.C1Pendenzen.DataMember = data.TableName Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Pendenzen, "Pendenzuebersicht", data, False) Try Dim splitter() splitter = filtertext.Split(";") If splitter.Length > 1 Then For Each s As String In splitter Dim splitter1() As String splitter1 = s.Split(":") Try Me.C1Pendenzen.Columns(splitter1(0)).FilterText = splitter1(1) Catch ex As Exception End Try Next End If Catch End Try Me.C1Pendenzen.Enabled = True sec.Set_Form_Security(Me) End Sub Private Sub Get_Load_Status() Me.StatusToolStripComboBox.Items.Clear() Me.StatusToolStripComboBox.Items.Add("Alle") Me.StatusTable.cpMainConnectionProvider = Globals.conn Statusdata = Me.StatusTable.SelectAll() For Each dr As DataRow In Me.Statusdata.Rows If dr.Item("Aktiv") = True Then Me.StatusToolStripComboBox.Items.Add(dr.Item("Bezeichnung")) End If Next End Sub ''' ''' Selektion nach Status ändern ''' ''' ''' ''' Private Sub StatusToolStripComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StatusToolStripComboBox.SelectedIndexChanged Refresh_Uebersicht() End Sub ''' ''' Aktualisierung des Formulars ''' ''' ''' Private Sub evh_FormularPendenz_Closed() Handles evh.FormularPendenz_Closed, evh.Pendenz_Deleted Refresh_Uebersicht() End Sub ''' ''' Formular schliessen ''' ''' ''' ''' Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click Me.Close() End Sub ''' ''' Neue Pendenz erstellen ''' ''' ''' ''' Private Sub TSBtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnNew.Click Dim f As New frmPendenz(Me.Pendenz.Add_New(0), 0, Me.FormReadOnly, False) f.MdiParent = Me.MdiParent f.Show() End Sub ''' ''' C1Pendenz-Doubleklick ''' ''' ''' ''' Private Sub C1Pendenzen_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1Pendenzen.DoubleClick Try Dim f As New frmPendenz(Me.C1Pendenzen.Columns("Pendenznr").Value, 0, Me.FormReadOnly, False) f.MdiParent = Me.MdiParent f.Show() Catch ex As Exception End Try End Sub ''' ''' Mousedown im Grid ''' ''' ''' ''' Private Sub C1Pendenzen_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles C1Pendenzen.MouseDown Me.C1Pendenzen.Bookmark = Me.C1Pendenzen.RowContaining(e.Y) End Sub ''' ''' Pendenz inaktivieren ''' ''' ''' ''' Private Sub TSBtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click If msg.Show_MessageYesNo(290) = MsgBoxResult.Yes Then Me.Pendenz.Delete_Pendenz(Me.C1Pendenzen.Columns("Pendenznr").Value) Me.Refresh_Uebersicht() End If End Sub ''' ''' Rowstyle von inaktiven Pendenzen ''' ''' ''' ''' Private Sub C1Pendenzen_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles C1Pendenzen.FetchRowStyle Try If Me.C1Pendenzen.Columns("aktiv").CellValue(e.Row) = False Then Dim FNT As Font = e.CellStyle.Font e.CellStyle.Font = New Font(FNT, FontStyle.Strikeout) e.CellStyle.ForeColor = Color.Gray End If If Me.C1Pendenzen.Columns("PendenzStatusNr").CellValue(e.Row) < 3 Then If Me.C1Pendenzen.Columns("Termin").CellValue(e.Row) < Now Then Dim fnt As Font = e.CellStyle.Font e.CellStyle.ForeColor = Color.Red End If End If Catch End Try End Sub ''' ''' Context-Menu anzeigen ''' ''' ''' ''' Private Sub AnzeigenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnzeigenToolStripMenuItem.Click Me.C1Pendenzen_DoubleClick(sender, e) End Sub ''' ''' Context-Menu Neu ''' ''' ''' ''' Private Sub NeuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NeuToolStripMenuItem.Click Me.TSBtnNew_Click(sender, e) End Sub ''' ''' Context-Menu Löschen/Inaktivieren ''' ''' ''' ''' Private Sub LöschenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LöschenToolStripMenuItem.Click Me.TSBtnDelete_Click(sender, e) End Sub #Region "Context-Menu-Handling" ''' ''' Enabling bzw. Disabling der Menu-Einträge aufgrund der angezeigten Rows im Truedbgrind ''' ''' Zu bearbeitendes Menu ''' Betroffenes Grid ''' ''' Nach dem Setzen der Submenus wird sec.form_Security durchlaufen, damit allfällig standardmössig aktivierte Menueinträge ''' aufgrund der Security-Einstellung wieder deaktiviert werden Private Function Disable_Enable_Menu(ByRef menu As ContextMenuStrip, ByRef c1data As C1TrueDBGrid) If c1data.Splits(0).Rows.Count = 0 Then For Each obj As Object In menu.Items Dim objtype As System.Type = obj.GetType If LCase(objtype.Name) = "toolstripmenuitem" Then Dim mnu As ToolStripMenuItem = obj If mnu.Text.IndexOf("Neu") > 0 Then mnu.Enabled = True Else mnu.Enabled = False End If End If Next Else For Each obj As Object In menu.Items Dim objtype As System.Type = obj.GetType If LCase(objtype.Name) = "toolstripmenuitem" Then Dim mnu As ToolStripMenuItem = obj mnu.Enabled = True End If Next End If sec.Set_Form_Security(Me) End Function ''' ''' Handelt das Opending-Ereignis des Context-Menus ''' ''' ''' Überi Disable_Enable_Menu werden die Menueinträge aktiviert bzw. deaktiviert ''' ''' ''' ''' Private Sub KontakteMenuStrip_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles PendenzenContextMenuStrip.Opening Me.Disable_Enable_Menu(sender, Me.C1Pendenzen) End Sub #End Region Private Sub StatusToolStripComboBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StatusToolStripComboBox.Click End Sub Private Sub tsbtnprint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbtnprint.Click Dim fontbold As New Font("Arial", 12, FontStyle.Bold) Dim fontregular As New Font("Arial", 12, FontStyle.Regular) With Me.C1Pendenzen.PrintInfo .PageHeaderStyle.Font = fontbold .PageSettings.Margins.Bottom = 20 .PageSettings.Margins.Top = 20 .PageSettings.Landscape = True .PageFooter = "Seite \p von \P" & vbLf & "Druckdatum " & Now() .PageHeader = "Pendenzen" .ShowProgressForm = True .UseGridColors = True .RepeatColumnHeaders = True .VarRowHeight = .RowHeightEnum.StretchToFit .WrapText = C1.Win.C1TrueDBGrid.PrintInfo.WrapTextEnum.NoWrap .PageBreak = .PageBreaksEnum.OnColumn .FillAreaWidth = .FillEmptyEnum.None .PrintPreview() End With End Sub End Class