diff --git a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj index 8b68eda9..ce2c61fc 100644 --- a/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj +++ b/EnvelopeGenerator.Form/EnvelopeGenerator.Form.vbproj @@ -145,6 +145,7 @@ Form + diff --git a/EnvelopeGenerator.Form/Helper/RefreshHelper.vb b/EnvelopeGenerator.Form/Helper/RefreshHelper.vb new file mode 100644 index 00000000..ef78ae13 --- /dev/null +++ b/EnvelopeGenerator.Form/Helper/RefreshHelper.vb @@ -0,0 +1,211 @@ +Option Strict On + +Imports System.Collections +Imports DevExpress.XtraGrid +Imports DevExpress.XtraGrid.Columns +Imports DevExpress.XtraGrid.Views.Grid + +Public Class RefreshHelper + + Public Structure RowInfo + Public Id As Object + Public level As Integer + End Structure + + Private ReadOnly view As GridView + Private ReadOnly keyFieldName As String + Private _saveExpList As ArrayList + Private _saveSelList As ArrayList + Private _saveMasterRowsList As ArrayList + Private visibleRowIndex As Integer = -1 + + Public Sub New(ByVal view As GridView, ByVal keyFieldName As String) + Me.view = view + Me.keyFieldName = keyFieldName + End Sub + + Public ReadOnly Property SaveExpList As ArrayList + Get + If _saveExpList Is Nothing Then + _saveExpList = New ArrayList() + End If + Return _saveExpList + End Get + End Property + + Public ReadOnly Property SaveSelList As ArrayList + Get + If _saveSelList Is Nothing Then + _saveSelList = New ArrayList() + End If + Return _saveSelList + End Get + End Property + + Public ReadOnly Property SaveMasterRowsList As ArrayList + Get + If _saveMasterRowsList Is Nothing Then + _saveMasterRowsList = New ArrayList() + End If + Return _saveMasterRowsList + End Get + End Property + + Protected Function FindParentRowHandle(ByVal rowInfo As RowInfo, ByVal rowHandle As Integer) As Integer + Dim result As Integer = view.GetParentRowHandle(rowHandle) + + While view.GetRowLevel(result) <> rowInfo.level + result = view.GetParentRowHandle(result) + End While + + Return result + End Function + + Protected Sub ExpandRowByRowInfo(ByVal rowInfo As RowInfo) + Dim dataRowHandle As Integer = view.LocateByValue(0, view.Columns(keyFieldName), rowInfo.Id) + + If dataRowHandle <> GridControl.InvalidRowHandle Then + Dim parentRowHandle As Integer = FindParentRowHandle(rowInfo, dataRowHandle) + view.SetRowExpanded(parentRowHandle, True, False) + End If + End Sub + + Protected Function GetRowHandleToSelect(ByVal rowInfo As RowInfo) As Integer + Dim dataRowHandle As Integer = view.LocateByValue(0, view.Columns(keyFieldName), rowInfo.Id) + + If dataRowHandle <> GridControl.InvalidRowHandle Then + If view.GetRowLevel(dataRowHandle) <> rowInfo.level Then Return FindParentRowHandle(rowInfo, dataRowHandle) + End If + + Return dataRowHandle + End Function + + Protected Sub SelectRowByRowInfo(ByVal rowInfo As RowInfo, ByVal isFocused As Boolean) + If isFocused Then + view.FocusedRowHandle = GetRowHandleToSelect(rowInfo) + Else + view.SelectRow(GetRowHandleToSelect(rowInfo)) + End If + End Sub + + Public Sub SaveSelectionViewInfo(ByVal list As ArrayList) + list.Clear() + Dim column As GridColumn = view.Columns(keyFieldName) + Dim rowInfo As RowInfo + Dim selectionArray As Integer() = view.GetSelectedRows() + + If selectionArray IsNot Nothing Then + + For i As Integer = 0 To selectionArray.Length - 1 + Dim dataRowHandle As Integer = selectionArray(i) + rowInfo.level = view.GetRowLevel(dataRowHandle) + If dataRowHandle < 0 Then dataRowHandle = view.GetDataRowHandleByGroupRowHandle(dataRowHandle) + rowInfo.Id = view.GetRowCellValue(dataRowHandle, column) + list.Add(rowInfo) + Next + End If + + rowInfo.Id = view.GetRowCellValue(view.FocusedRowHandle, column) + rowInfo.level = view.GetRowLevel(view.FocusedRowHandle) + list.Add(rowInfo) + End Sub + + Public Sub SaveExpansionViewInfo(ByVal list As ArrayList) + If view.GroupedColumns.Count = 0 Then Return + list.Clear() + Dim column As GridColumn = view.Columns(keyFieldName) + + For i As Integer = -1 To Integer.MinValue + 1 + If Not view.IsValidRowHandle(i) Then Exit For + + If view.GetRowExpanded(i) Then + Dim rowInfo As RowInfo + Dim dataRowHandle As Integer = view.GetDataRowHandleByGroupRowHandle(i) + rowInfo.Id = view.GetRowCellValue(dataRowHandle, column) + rowInfo.level = view.GetRowLevel(i) + list.Add(rowInfo) + End If + Next + End Sub + + Public Sub SaveExpandedMasterRows(ByVal list As ArrayList) + If view.GridControl.Views.Count = 1 Then Return + list.Clear() + Dim column As GridColumn = view.Columns(keyFieldName) + + For i As Integer = 0 To view.DataRowCount - 1 + If view.GetMasterRowExpanded(i) Then list.Add(view.GetRowCellValue(i, column)) + Next + End Sub + + Public Sub SaveVisibleIndex() + visibleRowIndex = view.GetVisibleIndex(view.FocusedRowHandle) - view.TopRowIndex + End Sub + + Public Sub LoadVisibleIndex() + view.MakeRowVisible(view.FocusedRowHandle, True) + view.TopRowIndex = view.GetVisibleIndex(view.FocusedRowHandle) - visibleRowIndex + End Sub + + Public Sub LoadSelectionViewInfo(ByVal list As ArrayList) + view.BeginSelection() + + Try + view.ClearSelection() + + For i As Integer = 0 To list.Count - 1 + SelectRowByRowInfo(CType(list(i), RowInfo), i = list.Count - 1) + Next + + Finally + view.EndSelection() + End Try + End Sub + + Public Sub LoadExpansionViewInfo(ByVal list As ArrayList) + If view.GroupedColumns.Count = 0 Then Return + view.BeginUpdate() + + Try + view.CollapseAllGroups() + + For Each info As RowInfo In list + ExpandRowByRowInfo(info) + Next + + Finally + view.EndUpdate() + End Try + End Sub + + Public Sub LoadExpandedMasterRows(ByVal list As ArrayList) + view.BeginUpdate() + + Try + view.CollapseAllDetails() + Dim column As GridColumn = view.Columns(keyFieldName) + + For i As Integer = 0 To list.Count - 1 + Dim rowHandle As Integer = view.LocateByValue(0, column, list(i)) + view.SetMasterRowExpanded(rowHandle, True) + Next + + Finally + view.EndUpdate() + End Try + End Sub + + Public Sub SaveViewInfo() + SaveExpandedMasterRows(SaveMasterRowsList) + SaveExpansionViewInfo(SaveExpList) + SaveSelectionViewInfo(SaveSelList) + SaveVisibleIndex() + End Sub + + Public Sub LoadViewInfo() + LoadExpandedMasterRows(SaveMasterRowsList) + LoadExpansionViewInfo(SaveExpList) + LoadSelectionViewInfo(SaveSelList) + LoadVisibleIndex() + End Sub +End Class diff --git a/EnvelopeGenerator.Form/frmMain.Designer.vb b/EnvelopeGenerator.Form/frmMain.Designer.vb index cb965ee7..1dfa7edb 100644 --- a/EnvelopeGenerator.Form/frmMain.Designer.vb +++ b/EnvelopeGenerator.Form/frmMain.Designer.vb @@ -51,9 +51,12 @@ Partial Class frmMain Me.btnDeleteEnvelope = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() Me.txtRefreshLabel = New DevExpress.XtraBars.BarStaticItem() + Me.btnShowDocument = New DevExpress.XtraBars.BarButtonItem() + Me.btnContactReceiver = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageEnvelopeActions = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.XtraTabPage2 = New DevExpress.XtraTab.XtraTabPage() Me.GridCompleted = New DevExpress.XtraGrid.GridControl() @@ -69,9 +72,7 @@ Partial Class frmMain Me.GridColumn6 = New DevExpress.XtraGrid.Columns.GridColumn() Me.GridColumn7 = New DevExpress.XtraGrid.Columns.GridColumn() Me.RefreshTimer = New System.Windows.Forms.Timer(Me.components) - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() - Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem() + Me.colEnvelopeId = New DevExpress.XtraGrid.Columns.GridColumn() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.Panel1.SuspendLayout() @@ -220,7 +221,7 @@ Partial Class frmMain ' 'ViewEnvelopes ' - Me.ViewEnvelopes.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colContractType, Me.colStatus, Me.colTitle, Me.colSubject, Me.colAddedWhen}) + Me.ViewEnvelopes.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colEnvelopeId, Me.colContractType, Me.colStatus, Me.colTitle, Me.colSubject, Me.colAddedWhen}) Me.ViewEnvelopes.GridControl = Me.GridEnvelopes Me.ViewEnvelopes.Name = "ViewEnvelopes" ' @@ -257,7 +258,7 @@ Partial Class frmMain 'RibbonControl ' Me.RibbonControl.ExpandCollapseItem.Id = 0 - Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope, Me.BarButtonItem1, Me.txtRefreshLabel, Me.BarButtonItem2, Me.BarButtonItem3}) + Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.btnCreateEnvelope, Me.btnEditEnvelope, Me.btnDeleteEnvelope, Me.BarButtonItem1, Me.txtRefreshLabel, Me.btnShowDocument, Me.btnContactReceiver}) resources.ApplyResources(Me.RibbonControl, "RibbonControl") Me.RibbonControl.MaxItemId = 9 Me.RibbonControl.Name = "RibbonControl" @@ -298,9 +299,25 @@ Partial Class frmMain ' resources.ApplyResources(Me.txtRefreshLabel, "txtRefreshLabel") Me.txtRefreshLabel.Id = 6 + Me.txtRefreshLabel.ImageOptions.SvgImage = CType(resources.GetObject("txtRefreshLabel.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.txtRefreshLabel.Name = "txtRefreshLabel" + Me.txtRefreshLabel.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph Me.txtRefreshLabel.Tag = "Aktualisiert: {0}" ' + 'btnShowDocument + ' + resources.ApplyResources(Me.btnShowDocument, "btnShowDocument") + Me.btnShowDocument.Id = 7 + Me.btnShowDocument.ImageOptions.SvgImage = CType(resources.GetObject("btnShowDocument.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnShowDocument.Name = "btnShowDocument" + ' + 'btnContactReceiver + ' + resources.ApplyResources(Me.btnContactReceiver, "btnContactReceiver") + Me.btnContactReceiver.Id = 8 + Me.btnContactReceiver.ImageOptions.SvgImage = CType(resources.GetObject("btnContactReceiver.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnContactReceiver.Name = "btnContactReceiver" + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageEnvelopeActions, Me.RibbonPageGroup1, Me.RibbonPageGroup2}) @@ -322,6 +339,13 @@ Partial Class frmMain Me.RibbonPageGroup1.Name = "RibbonPageGroup1" resources.ApplyResources(Me.RibbonPageGroup1, "RibbonPageGroup1") ' + 'RibbonPageGroup2 + ' + Me.RibbonPageGroup2.ItemLinks.Add(Me.btnShowDocument) + Me.RibbonPageGroup2.ItemLinks.Add(Me.btnContactReceiver) + Me.RibbonPageGroup2.Name = "RibbonPageGroup2" + resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2") + ' 'RibbonStatusBar ' Me.RibbonStatusBar.ItemLinks.Add(Me.txtRefreshLabel) @@ -424,26 +448,11 @@ Partial Class frmMain Me.RefreshTimer.Enabled = True Me.RefreshTimer.Interval = 120000 ' - 'RibbonPageGroup2 + 'colEnvelopeId ' - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2) - Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem3) - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2") - ' - 'BarButtonItem2 - ' - resources.ApplyResources(Me.BarButtonItem2, "BarButtonItem2") - Me.BarButtonItem2.Id = 7 - Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) - Me.BarButtonItem2.Name = "BarButtonItem2" - ' - 'BarButtonItem3 - ' - resources.ApplyResources(Me.BarButtonItem3, "BarButtonItem3") - Me.BarButtonItem3.Id = 8 - Me.BarButtonItem3.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem3.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) - Me.BarButtonItem3.Name = "BarButtonItem3" + resources.ApplyResources(Me.colEnvelopeId, "colEnvelopeId") + Me.colEnvelopeId.FieldName = "Id" + Me.colEnvelopeId.Name = "colEnvelopeId" ' 'frmMain ' @@ -522,7 +531,8 @@ Partial Class frmMain Friend WithEvents ColHistoryStatus As DevExpress.XtraGrid.Columns.GridColumn Friend WithEvents RefreshTimer As Timer Friend WithEvents txtRefreshLabel As DevExpress.XtraBars.BarStaticItem - Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnShowDocument As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnContactReceiver As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents colEnvelopeId As DevExpress.XtraGrid.Columns.GridColumn End Class diff --git a/EnvelopeGenerator.Form/frmMain.resx b/EnvelopeGenerator.Form/frmMain.resx index 61e9b317..105ad90e 100644 --- a/EnvelopeGenerator.Form/frmMain.resx +++ b/EnvelopeGenerator.Form/frmMain.resx @@ -219,6 +219,9 @@ 0, 0 + + GridColumn1 + Typ @@ -369,10 +372,31 @@ Aktualisiert: {0} - + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAC4DAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJlZnJlc2hfMV8iPg0KICAgIDxwYXRoIGQ9Ik0yNC41 + LDcuNUMyMi4zLDUuMywxOS4zLDQsMTYsNEMxMC4xLDQsNS4xLDguMyw0LjIsMTRoNC4xYzAuOS0zLjQs + NC02LDcuNy02YzIuMiwwLDQuMiwwLjksNS42LDIuNEwxOCwxNCAgIGg1LjdoNC4xSDI4VjRMMjQuNSw3 + LjV6IiBjbGFzcz0iR3JlZW4iIC8+DQogICAgPHBhdGggZD0iTTE2LjIsMjRjLTIuMiwwLTQuMi0wLjkt + NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz + LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj + bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs= + + + Dokument anzeigen - + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl @@ -399,10 +423,10 @@ IGNsYXNzPSJSZWQiIC8+DQogIDwvZz4NCjwvc3ZnPgs= - - Email Adresse kopieren + + Empfänger kontaktieren - + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl @@ -883,6 +907,18 @@ DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + btnShowDocument + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + btnContactReceiver + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + RibbonPage1 @@ -901,6 +937,12 @@ DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + RibbonPageGroup2 + + + DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ViewReceiversCompleted @@ -973,23 +1015,11 @@ System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - RibbonPageGroup2 + + colEnvelopeId - - DevExpress.XtraBars.Ribbon.RibbonPageGroup, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - BarButtonItem2 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - BarButtonItem3 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a frmMain diff --git a/EnvelopeGenerator.Form/frmMain.vb b/EnvelopeGenerator.Form/frmMain.vb index 408a2125..4508a631 100644 --- a/EnvelopeGenerator.Form/frmMain.vb +++ b/EnvelopeGenerator.Form/frmMain.vb @@ -10,6 +10,7 @@ Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Common.My Imports DevExpress.Charts.Native Imports DevExpress.XtraGrid.Views.Grid +Imports DevExpress.XtraGrid Public Class frmMain Private LogConfig As LogConfig @@ -18,10 +19,8 @@ Public Class frmMain Private ConfigManager As ConfigManager(Of Config) Private TempFiles As TempFiles Private FormHelper As FormHelper - Private GridBuilder As GridBuilder - - + Private RefreshHelper As RefreshHelper Private State As State Private Controller As EnvelopeListController @@ -33,6 +32,7 @@ Public Class frmMain FormHelper = New FormHelper(LogConfig, Me) TempFiles = New TempFiles(LogConfig) TempFiles.Create() + RefreshHelper = New RefreshHelper(ViewEnvelopes, "Id") Try ConfigManager = New ConfigManager(Of Config)(LogConfig, Application.UserAppDataPath) @@ -82,8 +82,10 @@ Public Class frmMain End Sub Private Sub LoadEnvelopeData() + RefreshHelper.SaveViewInfo() LoadEnvelopes() LoadCompletedEnvelopes() + RefreshHelper.LoadViewInfo() 'LoadCharts() txtRefreshLabel.Caption = String.Format(txtRefreshLabel.Tag, Now) @@ -242,15 +244,18 @@ Public Class frmMain End If End Sub - Private Sub GridEnvelopes_ViewRegistered(sender As Object, e As DevExpress.XtraGrid.ViewOperationEventArgs) Handles GridEnvelopes.ViewRegistered - If (e.View.IsDetailView = False) Then - Exit Sub - End If - - AddHandler DirectCast(e.View, GridView).CustomDrawCell, AddressOf ViewReceivers_CustomDrawCell - End Sub - Private Sub RefreshTimer_Tick(sender As Object, e As EventArgs) Handles RefreshTimer.Tick LoadEnvelopeData() End Sub + + Private Sub btnContactReceiver_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnContactReceiver.ItemClick + Dim oView As GridView = GridEnvelopes.FocusedView + If oView.Name = ViewReceivers.Name Then + Console.Write("") + Dim oReceiver As EnvelopeReceiver = oView.GetRow(oView.FocusedRowHandle) + Process.Start($"mailto:{oReceiver.Email}") + Else + MsgBox("Bitte wählen Sie einen Empfänger aus dem Reiter Empfänger aus.", MsgBoxStyle.Information, Text) + End If + End Sub End Class \ No newline at end of file