Imports C1.Win.C1TrueDBGrid Public Class FrmAktivitaetenListe #Region "Deklarationen" Dim Aktivitaeten As New TKB.VV.Vertrag.clsAktivitaeten Dim Aktivitaet As New TKB.VV.Vertrag.clsAktivitaet 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 daten As New DataTable Dim StatusTable As New TKB.VV.DB.clsAktivitaetStatus Dim Statusdata As New DataTable #End Region #Region "Formular" ''' ''' Load des Formulares ''' ''' ''' ''' Private Sub FrmAktivitaetenListe_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Get_Load_Status() Me.StatusToolStripComboBox.SelectedItem = "Pendent" Refresh_Uebersicht() If Me.FormReadOnly Then sec.Set_Form_Readonly(Me) End Sub Private Sub Get_Load_Status() ' MsgBox(Me.StatusSetzenToolStripMenuItem.DropDownItems.Count) Me.StatusSetzenToolStripMenuItem.DropDownItems.Clear() 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.StatusSetzenToolStripMenuItem.DropDownItems.Add(dr.Item("Bezeichnung")) Me.StatusToolStripComboBox.Items.Add(dr.Item("Bezeichnung")) End If Next End Sub ''' ''' Rowstyle von inaktiven Pendenzen ''' ''' ''' ''' Private Sub C1Pendenzen_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles C1Aktivitaeten.FetchRowStyle Try If Me.C1Aktivitaeten.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.C1Aktivitaeten.Columns("PendenzStatusNr").CellValue(e.Row) < 3 Then If Me.C1Aktivitaeten.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 ''' ''' Mousedown-Ereignis auf C1Aktivitaeten, damit die Details aktualisiert werden können ''' ''' ''' ''' Private Sub C1Vertragselemente_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles C1Aktivitaeten.MouseDown Me.C1Aktivitaeten.Bookmark = Me.C1Aktivitaeten.RowContaining(e.Y) Me.C1Aktivitaeten.Bookmark = Me.C1Aktivitaeten.RowBookmark(Me.C1Aktivitaeten.RowContaining(e.Y)) 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 ''' ''' Aktualisieren der Aktivitäten-Übersicht ''' ''' Private Sub Refresh_Uebersicht() Me.C1Aktivitaeten.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("Aktivitaetstatusnr") Next ' data = Pendenzen.Get_Pendenzuebersicht(0, Me.StatusToolStripComboBox.SelectedItem) ' data = Pendenzen.Get_Pendenzuebersicht(0, i) daten = Aktivitaeten.Get_Aktivitaetenliste(i) 'daten = Aktivitaeten.Get_Aktivitaetenliste(Me.StatusToolStripComboBox.SelectedItem) Catch ex As Exception 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("Aktivitaetstatusnr") Next daten = Aktivitaeten.Get_Aktivitaetenliste(i) End Try Dim filtertext As String = "" Try For Each c As C1DataColumn In Me.C1Aktivitaeten.Columns If c.FilterText <> "" Then filtertext = filtertext + ";" + c.Caption + ":" + c.FilterText Next Catch ex As Exception End Try Me.C1Aktivitaeten.DataSource = daten Me.C1Aktivitaeten.DataMember = daten.TableName Me.SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Aktivitaeten, "Aktivitaet", 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.C1Aktivitaeten.Columns(splitter1(0)).FilterText = splitter1(1) Catch ex As Exception End Try Next End If Catch End Try Me.C1Aktivitaeten.Enabled = True sec.Set_Form_Security(Me) 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 ''' ''' Pendenz inaktivieren ''' ''' ''' ''' Private Sub TSBtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click If msg.Show_MessageYesNo(850) = MsgBoxResult.Yes Then Me.Aktivitaet.Delete_Aktivitaet(Me.C1Aktivitaeten.Columns("AktivitaetNr").Value) Me.Refresh_Uebersicht() End If End Sub #End Region #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 ''' ''' ''' ''' ''' Ereignis zur Aktivätät anzeigen ''' ''' ''' ''' Private Sub EreignisAnzeigenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EreignisAnzeigenToolStripMenuItem.Click Dim f As New frmVertragsereignis(Me.C1Aktivitaeten.Columns("Ereignisnr").Value, 0, True, False) f.MdiParent = Me.MdiParent f.Show() End Sub ''' ''' Vertragselement zur Aktivität anzeigen ''' ''' ''' ''' Private Sub VertragselementAnzeigenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VertragselementAnzeigenToolStripMenuItem.Click Dim f As New frmVertragselement(Me.C1Aktivitaeten.Columns("Vertragselementnr").Value, True, False) f.MdiParent = Me.MdiParent f.Show() End Sub ''' ''' Fenster schliessen ''' ''' ''' ''' Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click Me.Close() End Sub Private Sub StatusToolStripComboBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StatusToolStripComboBox.Click End Sub Private Sub StatusSetzenToolStripMenuItem_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles StatusSetzenToolStripMenuItem.DropDownItemClicked Dim i As Integer = -1 Dim akt As Boolean = False For Each dr As DataRow In Me.Statusdata.Rows If dr.Item("Bezeichnung") = e.ClickedItem.Text Then i = dr.Item("Aktivitaetstatusnr") If dr.Item("Aktivitaet_Aktivieren") = True Then akt = True Else akt = False End If Next Me.Aktivitaet.Status_Wechsel(Me.C1Aktivitaeten.Columns("Aktivitaetnr").Value, i, akt) Me.Refresh_Uebersicht() End Sub Private Sub StatusSetzenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StatusSetzenToolStripMenuItem.Click End Sub Private Sub ErledigtToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ErledigtToolStripMenuItem.Click End Sub Private Sub PendentToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PendentToolStripMenuItem.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.C1Aktivitaeten.PrintInfo .PageHeaderStyle.Font = fontbold .PageSettings.Margins.Bottom = 20 .PageSettings.Margins.Top = 20 .PageSettings.Landscape = True .PageFooter = "Seite \p von \P" & vbLf & "Druckdatum " & Now() .PageHeader = "Aktivitäten" .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