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.
ITSM/.svn/pristine/a7/a756c13fc9c7465904b9439a45b...

306 lines
12 KiB

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
''' <summary>
''' Generic Event-Handler
''' </summary>
''' <remarks></remarks>
Dim WithEvents evh As MyGenericEventHandler = Globals.MyEventHanlder
Dim StatusTable As New TKB.VV.DB.clsPendenzstatus
Dim Statusdata As New DataTable
#End Region
''' <summary>
''' Laden des Formulars
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
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
''' <summary>
''' Aktualisieren der Pendenz-Übersicht
''' </summary>
''' <remarks></remarks>
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
''' <summary>
''' Selektion nach Status ändern
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub StatusToolStripComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StatusToolStripComboBox.SelectedIndexChanged
Refresh_Uebersicht()
End Sub
''' <summary>
''' Aktualisierung des Formulars
''' </summary>
''' <param name="Pendenznr"></param>
''' <remarks></remarks>
Private Sub evh_FormularPendenz_Closed() Handles evh.FormularPendenz_Closed, evh.Pendenz_Deleted
Refresh_Uebersicht()
End Sub
''' <summary>
''' Formular schliessen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
Me.Close()
End Sub
''' <summary>
''' Neue Pendenz erstellen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
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
''' <summary>
''' C1Pendenz-Doubleklick
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
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
''' <summary>
''' Mousedown im Grid
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
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
''' <summary>
''' Pendenz inaktivieren
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
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
''' <summary>
''' Rowstyle von inaktiven Pendenzen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
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
''' <summary>
''' Context-Menu anzeigen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub AnzeigenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnzeigenToolStripMenuItem.Click
Me.C1Pendenzen_DoubleClick(sender, e)
End Sub
''' <summary>
''' Context-Menu Neu
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub NeuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NeuToolStripMenuItem.Click
Me.TSBtnNew_Click(sender, e)
End Sub
''' <summary>
''' Context-Menu Löschen/Inaktivieren
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
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"
''' <summary>
''' Enabling bzw. Disabling der Menu-Einträge aufgrund der angezeigten Rows im Truedbgrind
''' </summary>
''' <param name="menu">Zu bearbeitendes Menu</param>
''' <param name="c1data">Betroffenes Grid</param>
''' <returns></returns>
''' <remarks>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</remarks>
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
''' <summary>
''' Handelt das Opending-Ereignis des Context-Menus
''' </summary>
''' <remarks>
''' Überi Disable_Enable_Menu werden die Menueinträge aktiviert bzw. deaktiviert
''' </remarks>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <seealso
''' cref="M:Vertragsverwaltung.frmVertragselement.Disable_Enable_Menu(System.Windows.Forms.ContextMenuStrip@,C1.Win.C1TrueDBGrid.C1TrueDBGrid@)"></seealso>
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