Add virtual property to field value, improve ui when loading files, improve initial loading
This commit is contained in:
parent
623f75d0e5
commit
51912b36c2
@ -55,6 +55,14 @@
|
|||||||
[Boolean]
|
[Boolean]
|
||||||
[Decimal]
|
[Decimal]
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
|
Public Enum FieldError
|
||||||
|
None
|
||||||
|
MissingValue
|
||||||
|
AccountNotFound
|
||||||
|
ArticleNotFound
|
||||||
|
End Enum
|
||||||
|
|
||||||
Public Enum XmlFunction
|
Public Enum XmlFunction
|
||||||
None = 0
|
None = 0
|
||||||
GLN = 1
|
GLN = 1
|
||||||
|
|||||||
@ -6,6 +6,7 @@ Imports MultiTool.Common.Exceptions
|
|||||||
Imports MultiTool.Common.Templates
|
Imports MultiTool.Common.Templates
|
||||||
Imports MultiTool.Common.Winline
|
Imports MultiTool.Common.Winline
|
||||||
Imports MultiTool.Common.Winline.Entities
|
Imports MultiTool.Common.Winline.Entities
|
||||||
|
Imports MultiTool.Common.Constants
|
||||||
|
|
||||||
Namespace Documents
|
Namespace Documents
|
||||||
Public Class DocumentLoader
|
Public Class DocumentLoader
|
||||||
@ -16,12 +17,32 @@ Namespace Documents
|
|||||||
Private ReadOnly TemplateConfig As TemplateConfig
|
Private ReadOnly TemplateConfig As TemplateConfig
|
||||||
|
|
||||||
Public Property Files As New List(Of Document)
|
Public Property Files As New List(Of Document)
|
||||||
Public Event FileLoadComplete As EventHandler(Of FileLoadInfo)
|
|
||||||
|
|
||||||
Public Structure FileLoadInfo
|
Public Property FilesTotal As Integer = 0
|
||||||
|
Public Property FilesLoaded As Integer = 0
|
||||||
|
|
||||||
|
Public Event FileLoadComplete As EventHandler(Of FileLoadInfo)
|
||||||
|
Public Event FileLoadProgress As EventHandler(Of FileLoadProgressInfo)
|
||||||
|
|
||||||
|
Public Class FileLoadInfo
|
||||||
Public FilesLoaded As Integer
|
Public FilesLoaded As Integer
|
||||||
Public FilesTotal As Integer
|
Public FilesTotal As Integer
|
||||||
End Structure
|
|
||||||
|
Public Sub New(pTotal As Integer, pLoaded As Integer)
|
||||||
|
FilesTotal = pTotal
|
||||||
|
FilesLoaded = pLoaded
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class FileLoadProgressInfo
|
||||||
|
Inherits FileLoadInfo
|
||||||
|
|
||||||
|
Public RunningFunction As String
|
||||||
|
|
||||||
|
Public Sub New(pTotal As Integer, pLoaded As Integer)
|
||||||
|
MyBase.New(pTotal, pLoaded)
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
Public Sub New(pLogConfig As LogConfig, pWinline As WinlineData, pMappingConfig As MappingConfig, pTemplateConfig As TemplateConfig)
|
Public Sub New(pLogConfig As LogConfig, pWinline As WinlineData, pMappingConfig As MappingConfig, pTemplateConfig As TemplateConfig)
|
||||||
MyBase.New(pLogConfig)
|
MyBase.New(pLogConfig)
|
||||||
@ -37,6 +58,7 @@ Namespace Documents
|
|||||||
Try
|
Try
|
||||||
Dim oDirectory As New DirectoryInfo(pTemplate.InputDirectory)
|
Dim oDirectory As New DirectoryInfo(pTemplate.InputDirectory)
|
||||||
Dim oFiles = oDirectory.GetFiles()
|
Dim oFiles = oDirectory.GetFiles()
|
||||||
|
FilesTotal = oFiles.Count
|
||||||
|
|
||||||
Logger.Debug("Found [{0}] files in directory [{1}]", oFiles.Count, oDirectory)
|
Logger.Debug("Found [{0}] files in directory [{1}]", oFiles.Count, oDirectory)
|
||||||
|
|
||||||
@ -44,11 +66,9 @@ Namespace Documents
|
|||||||
Try
|
Try
|
||||||
Dim oDocument = Await LoadFile(oFile, pTemplate, pMandator)
|
Dim oDocument = Await LoadFile(oFile, pTemplate, pMandator)
|
||||||
Files.Add(oDocument)
|
Files.Add(oDocument)
|
||||||
|
FilesLoaded = Files.Count
|
||||||
|
|
||||||
Dim oInfo As FileLoadInfo
|
Dim oInfo As New FileLoadInfo(FilesTotal, FilesLoaded)
|
||||||
oInfo.FilesLoaded = Files.Count
|
|
||||||
oInfo.FilesTotal = oFiles.Count
|
|
||||||
|
|
||||||
RaiseEvent FileLoadComplete(Me, oInfo)
|
RaiseEvent FileLoadComplete(Me, oInfo)
|
||||||
|
|
||||||
Catch ex As MissingAttributeException
|
Catch ex As MissingAttributeException
|
||||||
@ -179,17 +199,19 @@ Namespace Documents
|
|||||||
.Final = oValue,
|
.Final = oValue,
|
||||||
.DataType = oColumn.DataType,
|
.DataType = oColumn.DataType,
|
||||||
.IsRequired = oRequired,
|
.IsRequired = oRequired,
|
||||||
|
.IsVirtual = oColumn.Config.IsVirtual,
|
||||||
.SortKey = oColumnSortKey
|
.SortKey = oColumnSortKey
|
||||||
})
|
})
|
||||||
Else
|
Else
|
||||||
Dim oColumnError = DocumentRow.FieldError.None
|
Dim oColumnError = FieldError.None
|
||||||
If oColumn.Config?.IsRequired Then
|
If oColumn.Config?.IsRequired Then
|
||||||
oColumnError = DocumentRow.FieldError.MissingValue
|
oColumnError = FieldError.MissingValue
|
||||||
End If
|
End If
|
||||||
|
|
||||||
oFields.Add(oColumn.Name, New DocumentRow.FieldValue With {
|
oFields.Add(oColumn.Name, New DocumentRow.FieldValue With {
|
||||||
.[Error] = oColumnError,
|
.[Error] = oColumnError,
|
||||||
.SortKey = oColumnSortKey
|
.SortKey = oColumnSortKey,
|
||||||
|
.IsVirtual = oColumn.Config.IsVirtual
|
||||||
})
|
})
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -224,6 +246,9 @@ Namespace Documents
|
|||||||
OrderBy(Function(m) m.Order).
|
OrderBy(Function(m) m.Order).
|
||||||
ToList()
|
ToList()
|
||||||
|
|
||||||
|
Dim oInfo As New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {.RunningFunction = "Mandant finden"}
|
||||||
|
RaiseEvent FileLoadProgress(Me, oInfo)
|
||||||
|
|
||||||
Dim oMandator As Mandator = Nothing
|
Dim oMandator As Mandator = Nothing
|
||||||
If pMandator IsNot Nothing Then
|
If pMandator IsNot Nothing Then
|
||||||
oMandator = pMandator
|
oMandator = pMandator
|
||||||
@ -237,12 +262,24 @@ Namespace Documents
|
|||||||
' Set mandator befor applying any functions that depend on a valid mandator
|
' Set mandator befor applying any functions that depend on a valid mandator
|
||||||
pDocument.Mandator = oMandator
|
pDocument.Mandator = oMandator
|
||||||
|
|
||||||
|
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {
|
||||||
|
.RunningFunction = "Winline-Funktionen"
|
||||||
|
})
|
||||||
|
|
||||||
pDocument = ApplyDefinedItemFunctionsForImport(pDocument, oMandator, pTemplate)
|
pDocument = ApplyDefinedItemFunctionsForImport(pDocument, oMandator, pTemplate)
|
||||||
pDocument = ApplyDynamicItemFunctionsForImport(pDocument, oMandator)
|
pDocument = ApplyDynamicItemFunctionsForImport(pDocument, oMandator)
|
||||||
|
|
||||||
|
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {
|
||||||
|
.RunningFunction = "Preis-Funktionen"
|
||||||
|
})
|
||||||
|
|
||||||
' These functions will only be applied if the document does not have errors
|
' These functions will only be applied if the document does not have errors
|
||||||
pDocument = Await MaybeApplyPriceFunctions(pDocument, oMandator, pTemplate)
|
pDocument = Await MaybeApplyPriceFunctions(pDocument, oMandator, pTemplate)
|
||||||
|
|
||||||
|
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {
|
||||||
|
.RunningFunction = "Feld-Funktionen"
|
||||||
|
})
|
||||||
|
|
||||||
' This function needs to be the last one because
|
' This function needs to be the last one because
|
||||||
' it can relate to any previously set value
|
' it can relate to any previously set value
|
||||||
ApplyFieldFunctionForImport(pDocument, oMandator, pTemplate)
|
ApplyFieldFunctionForImport(pDocument, oMandator, pTemplate)
|
||||||
@ -449,7 +486,7 @@ Namespace Documents
|
|||||||
|
|
||||||
Dim oDocumentKindField As String = oFieldMap.GetOrDefault("DocumentKind", Nothing)
|
Dim oDocumentKindField As String = oFieldMap.GetOrDefault("DocumentKind", Nothing)
|
||||||
Dim oDocumentKind As Integer = 0
|
Dim oDocumentKind As Integer = 0
|
||||||
If Integer.TryParse(pDocument.GetFieldValue(oDocumentKindField), oDocumentKind) Then
|
If Integer.TryParse(pDocument.GetFieldValue(oDocumentKindField), oDocumentKind) = False Then
|
||||||
Logger.Warn("Value for parameter DocumentKind could not be parsed. Setting to 0.")
|
Logger.Warn("Value for parameter DocumentKind could not be parsed. Setting to 0.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -479,7 +516,7 @@ Namespace Documents
|
|||||||
oNumberItem.External = oArticleNumber
|
oNumberItem.External = oArticleNumber
|
||||||
oNumberItem.Final = oArticleNumber
|
oNumberItem.Final = oArticleNumber
|
||||||
Else
|
Else
|
||||||
oNumberItem.Error = DocumentRow.FieldError.ArticleNotFound
|
oNumberItem.Error = FieldError.ArticleNotFound
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@ -513,7 +550,7 @@ Namespace Documents
|
|||||||
'})
|
'})
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
oNumberItem.Error = DocumentRow.FieldError.AccountNotFound
|
oNumberItem.Error = FieldError.AccountNotFound
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
Namespace Documents
|
Imports System.Text.RegularExpressions
|
||||||
|
Imports MultiTool.Common.Constants
|
||||||
|
|
||||||
|
Namespace Documents
|
||||||
Public Class DocumentRow
|
Public Class DocumentRow
|
||||||
Implements IComparable
|
Implements IComparable
|
||||||
|
|
||||||
@ -48,19 +51,45 @@
|
|||||||
Return SortKey.CompareTo(DirectCast(other, DocumentRow).SortKey)
|
Return SortKey.CompareTo(DirectCast(other, DocumentRow).SortKey)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Enum FieldError
|
|
||||||
None
|
|
||||||
MissingValue
|
|
||||||
AccountNotFound
|
|
||||||
ArticleNotFound
|
|
||||||
End Enum
|
|
||||||
|
|
||||||
Public Class FieldValue
|
Public Class FieldValue
|
||||||
|
Private _Final As String = ""
|
||||||
|
Private _External As String = ""
|
||||||
|
Private _Original As String = ""
|
||||||
|
|
||||||
Public Property DataType As Constants.ColumnType = Constants.ColumnType.String
|
Public Property DataType As Constants.ColumnType = Constants.ColumnType.String
|
||||||
Public Property [Error] As FieldError = FieldError.None
|
Public Property [Error] As FieldError = FieldError.None
|
||||||
Public Property Original As String = ""
|
|
||||||
Public Property External As String = ""
|
Public Sub New()
|
||||||
Public Property Final As String = ""
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Property Original As String
|
||||||
|
Get
|
||||||
|
Return FormatValue(_Original, DataType)
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
_Original = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property External As String
|
||||||
|
Get
|
||||||
|
Return FormatValue(_External, DataType)
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
_External = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property Final As String
|
||||||
|
Get
|
||||||
|
Return FormatValue(_Final, DataType)
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
_Final = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
Public Property IsRequired As Boolean = False
|
Public Property IsRequired As Boolean = False
|
||||||
Public Property IsVirtual As Boolean = False
|
Public Property IsVirtual As Boolean = False
|
||||||
Public Property SortKey As Integer = 0
|
Public Property SortKey As Integer = 0
|
||||||
@ -87,6 +116,41 @@
|
|||||||
Public Overrides Function ToString() As String
|
Public Overrides Function ToString() As String
|
||||||
Return Final
|
Return Final
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function FormatValue(pValue As String, pType As Constants.ColumnType) As String
|
||||||
|
Select Case pType
|
||||||
|
Case ColumnType.Decimal
|
||||||
|
Return FormatDecimalValue(pValue)
|
||||||
|
|
||||||
|
Case Else
|
||||||
|
Return pValue
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' This function will capture values like below and format them according to winline format values
|
||||||
|
'''
|
||||||
|
''' 1000
|
||||||
|
''' 1.000.000
|
||||||
|
''' 1.000.000,00
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="pValue">A string value that represents a number</param>
|
||||||
|
''' <returns>A string value which contains at dot (.) as the decimal divider</returns>
|
||||||
|
Private Function FormatDecimalValue(pValue As String) As String
|
||||||
|
If Not pValue.Contains(","c) Then
|
||||||
|
Return pValue
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim oRegex = New Regex("(?<Value>\d+(?:\.\d+)*(?:,\d+)?)")
|
||||||
|
Dim oMatch = oRegex.Match(pValue)
|
||||||
|
|
||||||
|
If oMatch.Success Then
|
||||||
|
Dim oValue = oMatch.Groups.Item("Value").Value
|
||||||
|
Return oValue.Replace(","c, "."c)
|
||||||
|
Else
|
||||||
|
Return pValue
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
End Class
|
End Class
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
|||||||
@ -615,6 +615,13 @@ Public Class frmImportMain
|
|||||||
SplashScreenManager.SetWaitFormDescription(oMessage)
|
SplashScreenManager.SetWaitFormDescription(oMessage)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
AddHandler DocumentLoader.FileLoadProgress, Sub(_sender As Object, _e As Documents.DocumentLoader.FileLoadProgressInfo)
|
||||||
|
Dim oMessage = String.Format("Lade Dateien ({0}/{1}): {2}", _e.FilesLoaded, _e.FilesTotal, _e.RunningFunction)
|
||||||
|
SplashScreenManager.SetWaitFormDescription(oMessage)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
SplashScreenManager.SetWaitFormDescription(String.Format("Lade Dateien ({0}/{1})", 0, DocumentLoader.Files.Count))
|
||||||
|
|
||||||
If Await DocumentLoader.LoadFiles(CurrentTemplate, lookupMandator.EditValue) Then
|
If Await DocumentLoader.LoadFiles(CurrentTemplate, lookupMandator.EditValue) Then
|
||||||
GridControlFiles.DataSource = Nothing
|
GridControlFiles.DataSource = Nothing
|
||||||
GridControlFiles.DataSource = DocumentLoader.Files
|
GridControlFiles.DataSource = DocumentLoader.Files
|
||||||
|
|||||||
60
MultiTool.Form/frmMain.Designer.vb
generated
60
MultiTool.Form/frmMain.Designer.vb
generated
@ -32,15 +32,15 @@ Partial Class frmMain
|
|||||||
Me.btnOpenSchemaDirectory = New DevExpress.XtraBars.BarButtonItem()
|
Me.btnOpenSchemaDirectory = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.btnReloadWinlineData = New DevExpress.XtraBars.BarButtonItem()
|
Me.btnReloadWinlineData = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroupStart = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroupData = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||||
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components)
|
Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components)
|
||||||
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
|
Me.GridControlTemplates = New DevExpress.XtraGrid.GridControl()
|
||||||
Me.GridViewTemplates = New DevExpress.XtraGrid.Views.Grid.GridView()
|
Me.GridViewTemplates = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
Me.colName = New DevExpress.XtraGrid.Columns.GridColumn()
|
Me.colName = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
Me.colDescription = New DevExpress.XtraGrid.Columns.GridColumn()
|
Me.colDescription = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
@ -48,7 +48,7 @@ Partial Class frmMain
|
|||||||
Me.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, GetType(Global.MultiTool.Form.frmWaitForm), True, True)
|
Me.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, GetType(Global.MultiTool.Form.frmWaitForm), True, True)
|
||||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.GridControlTemplates, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.GridViewTemplates, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.GridViewTemplates, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
@ -133,23 +133,23 @@ Partial Class frmMain
|
|||||||
'
|
'
|
||||||
'RibbonPage1
|
'RibbonPage1
|
||||||
'
|
'
|
||||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup3})
|
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroupStart, Me.RibbonPageGroupData})
|
||||||
Me.RibbonPage1.Name = "RibbonPage1"
|
Me.RibbonPage1.Name = "RibbonPage1"
|
||||||
Me.RibbonPage1.Text = "Start"
|
Me.RibbonPage1.Text = "Start"
|
||||||
'
|
'
|
||||||
'RibbonPageGroup1
|
'RibbonPageGroupStart
|
||||||
'
|
'
|
||||||
Me.RibbonPageGroup1.ItemLinks.Add(Me.btnOpenImportExportForm)
|
Me.RibbonPageGroupStart.ItemLinks.Add(Me.btnOpenImportExportForm)
|
||||||
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
|
Me.RibbonPageGroupStart.Name = "RibbonPageGroupStart"
|
||||||
Me.RibbonPageGroup1.Text = "Start"
|
Me.RibbonPageGroupStart.Text = "Start"
|
||||||
'
|
'
|
||||||
'RibbonPageGroup3
|
'RibbonPageGroupData
|
||||||
'
|
'
|
||||||
Me.RibbonPageGroup3.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far
|
Me.RibbonPageGroupData.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far
|
||||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.btnReloadTemplates)
|
Me.RibbonPageGroupData.ItemLinks.Add(Me.btnReloadTemplates)
|
||||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.btnReloadWinlineData)
|
Me.RibbonPageGroupData.ItemLinks.Add(Me.btnReloadWinlineData)
|
||||||
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
|
Me.RibbonPageGroupData.Name = "RibbonPageGroupData"
|
||||||
Me.RibbonPageGroup3.Text = "Daten"
|
Me.RibbonPageGroupData.Text = "Daten"
|
||||||
'
|
'
|
||||||
'RibbonPage3
|
'RibbonPage3
|
||||||
'
|
'
|
||||||
@ -191,21 +191,21 @@ Partial Class frmMain
|
|||||||
Me.SvgImageCollection1.Add("import", "image://svgimages/scheduling/import.svg")
|
Me.SvgImageCollection1.Add("import", "image://svgimages/scheduling/import.svg")
|
||||||
Me.SvgImageCollection1.Add("export", "image://svgimages/export/export.svg")
|
Me.SvgImageCollection1.Add("export", "image://svgimages/export/export.svg")
|
||||||
'
|
'
|
||||||
'GridControl1
|
'GridControlTemplates
|
||||||
'
|
'
|
||||||
Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.GridControlTemplates.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.GridControl1.Location = New System.Drawing.Point(0, 158)
|
Me.GridControlTemplates.Location = New System.Drawing.Point(0, 158)
|
||||||
Me.GridControl1.MainView = Me.GridViewTemplates
|
Me.GridControlTemplates.MainView = Me.GridViewTemplates
|
||||||
Me.GridControl1.MenuManager = Me.RibbonControl1
|
Me.GridControlTemplates.MenuManager = Me.RibbonControl1
|
||||||
Me.GridControl1.Name = "GridControl1"
|
Me.GridControlTemplates.Name = "GridControlTemplates"
|
||||||
Me.GridControl1.Size = New System.Drawing.Size(757, 355)
|
Me.GridControlTemplates.Size = New System.Drawing.Size(757, 355)
|
||||||
Me.GridControl1.TabIndex = 9
|
Me.GridControlTemplates.TabIndex = 9
|
||||||
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewTemplates})
|
Me.GridControlTemplates.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewTemplates})
|
||||||
'
|
'
|
||||||
'GridViewTemplates
|
'GridViewTemplates
|
||||||
'
|
'
|
||||||
Me.GridViewTemplates.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colName, Me.colDescription, Me.colFileName})
|
Me.GridViewTemplates.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colName, Me.colDescription, Me.colFileName})
|
||||||
Me.GridViewTemplates.GridControl = Me.GridControl1
|
Me.GridViewTemplates.GridControl = Me.GridControlTemplates
|
||||||
Me.GridViewTemplates.Name = "GridViewTemplates"
|
Me.GridViewTemplates.Name = "GridViewTemplates"
|
||||||
'
|
'
|
||||||
'colName
|
'colName
|
||||||
@ -241,7 +241,7 @@ Partial Class frmMain
|
|||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
Me.ClientSize = New System.Drawing.Size(757, 537)
|
Me.ClientSize = New System.Drawing.Size(757, 537)
|
||||||
Me.Controls.Add(Me.GridControl1)
|
Me.Controls.Add(Me.GridControlTemplates)
|
||||||
Me.Controls.Add(Me.RibbonStatusBar1)
|
Me.Controls.Add(Me.RibbonStatusBar1)
|
||||||
Me.Controls.Add(Me.RibbonControl1)
|
Me.Controls.Add(Me.RibbonControl1)
|
||||||
Me.IconOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.squarified
|
Me.IconOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.squarified
|
||||||
@ -252,7 +252,7 @@ Partial Class frmMain
|
|||||||
Me.Text = "frmMain"
|
Me.Text = "frmMain"
|
||||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.GridControlTemplates, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.GridViewTemplates, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.GridViewTemplates, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
Me.PerformLayout()
|
Me.PerformLayout()
|
||||||
@ -260,12 +260,12 @@ Partial Class frmMain
|
|||||||
End Sub
|
End Sub
|
||||||
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
|
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
|
||||||
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
|
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
|
||||||
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
Friend WithEvents RibbonPageGroupStart As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||||
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
|
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
|
||||||
Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
|
Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
|
||||||
Friend WithEvents btnOpenImportExportForm As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents btnOpenImportExportForm As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection
|
Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection
|
||||||
Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl
|
Friend WithEvents GridControlTemplates As DevExpress.XtraGrid.GridControl
|
||||||
Friend WithEvents GridViewTemplates As DevExpress.XtraGrid.Views.Grid.GridView
|
Friend WithEvents GridViewTemplates As DevExpress.XtraGrid.Views.Grid.GridView
|
||||||
Friend WithEvents colName As DevExpress.XtraGrid.Columns.GridColumn
|
Friend WithEvents colName As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
Friend WithEvents colDescription As DevExpress.XtraGrid.Columns.GridColumn
|
Friend WithEvents colDescription As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
@ -276,7 +276,7 @@ Partial Class frmMain
|
|||||||
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
Friend WithEvents RibbonPageGroupData As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||||
Friend WithEvents SplashScreenManager As DevExpress.XtraSplashScreen.SplashScreenManager
|
Friend WithEvents SplashScreenManager As DevExpress.XtraSplashScreen.SplashScreenManager
|
||||||
Friend WithEvents txtVersion As DevExpress.XtraBars.BarStaticItem
|
Friend WithEvents txtVersion As DevExpress.XtraBars.BarStaticItem
|
||||||
Friend WithEvents txtCulture As DevExpress.XtraBars.BarStaticItem
|
Friend WithEvents txtCulture As DevExpress.XtraBars.BarStaticItem
|
||||||
|
|||||||
@ -27,15 +27,16 @@ Public Class frmMain
|
|||||||
Logger = LogConfig.GetLogger()
|
Logger = LogConfig.GetLogger()
|
||||||
Logger.Info("Starting {0}, Version [{1}]", Application.ProductName, Application.ProductVersion)
|
Logger.Info("Starting {0}, Version [{1}]", Application.ProductName, Application.ProductVersion)
|
||||||
|
|
||||||
|
ShowLoadingUI()
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
FormHelper.ShowError(ex, My.Resources.frmShared.Laden_des_Formulars)
|
FormHelper.ShowError(ex, My.Resources.frmShared.Laden_des_Formulars)
|
||||||
|
HideLoadingUI()
|
||||||
|
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Async Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
Private Async Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||||
SplashScreenManager.ShowWaitForm()
|
|
||||||
|
|
||||||
Try
|
Try
|
||||||
SplashScreenManager.SetWaitFormDescription("Initialisierung der Grundfunktionen")
|
SplashScreenManager.SetWaitFormDescription("Initialisierung der Grundfunktionen")
|
||||||
|
|
||||||
@ -70,7 +71,7 @@ Public Class frmMain
|
|||||||
Database = New MSSQLServer(LogConfig, oConnectionString)
|
Database = New MSSQLServer(LogConfig, oConnectionString)
|
||||||
|
|
||||||
SplashScreenManager.SetWaitFormDescription("Lade Vorlagen")
|
SplashScreenManager.SetWaitFormDescription("Lade Vorlagen")
|
||||||
GridControl1.DataSource = Await LoadTemplateData()
|
GridControlTemplates.DataSource = Await LoadTemplateData()
|
||||||
|
|
||||||
SplashScreenManager.SetWaitFormDescription("Lade Winline Stammdaten")
|
SplashScreenManager.SetWaitFormDescription("Lade Winline Stammdaten")
|
||||||
My.Winline = New WinlineData(LogConfig, Database, My.GeneralConfiguration, My.MappingConfiguration, My.MandatorConfiguration)
|
My.Winline = New WinlineData(LogConfig, Database, My.GeneralConfiguration, My.MappingConfiguration, My.MandatorConfiguration)
|
||||||
@ -82,7 +83,7 @@ Public Class frmMain
|
|||||||
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_der_Winline_Daten)
|
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_der_Winline_Daten)
|
||||||
|
|
||||||
Finally
|
Finally
|
||||||
SplashScreenManager.CloseWaitForm()
|
HideLoadingUI()
|
||||||
|
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
@ -238,17 +239,17 @@ Public Class frmMain
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
SplashScreenManager.ShowWaitForm()
|
ShowLoadingUI()
|
||||||
|
|
||||||
Try
|
Try
|
||||||
SplashScreenManager.SetWaitFormDescription("Lade Vorlagen")
|
SplashScreenManager.SetWaitFormDescription("Lade Vorlagen")
|
||||||
GridControl1.DataSource = Await LoadTemplateData()
|
GridControlTemplates.DataSource = Await LoadTemplateData()
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
FormHelper.ShowError(ex, "Laden der Vorlagen")
|
FormHelper.ShowError(ex, "Laden der Vorlagen")
|
||||||
|
|
||||||
Finally
|
Finally
|
||||||
SplashScreenManager.CloseWaitForm()
|
HideLoadingUI()
|
||||||
|
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
@ -258,7 +259,7 @@ Public Class frmMain
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
SplashScreenManager.ShowWaitForm()
|
ShowLoadingUI()
|
||||||
|
|
||||||
Try
|
Try
|
||||||
SplashScreenManager.SetWaitFormDescription("Lade Winline Stammdaten")
|
SplashScreenManager.SetWaitFormDescription("Lade Winline Stammdaten")
|
||||||
@ -268,8 +269,22 @@ Public Class frmMain
|
|||||||
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_der_Winline_Daten)
|
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_der_Winline_Daten)
|
||||||
|
|
||||||
Finally
|
Finally
|
||||||
SplashScreenManager.CloseWaitForm()
|
HideLoadingUI()
|
||||||
|
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ShowLoadingUI()
|
||||||
|
SplashScreenManager.ShowWaitForm()
|
||||||
|
GridControlTemplates.Enabled = False
|
||||||
|
RibbonPageGroupData.Enabled = False
|
||||||
|
RibbonPageGroupStart.Enabled = False
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub HideLoadingUI()
|
||||||
|
GridControlTemplates.Enabled = True
|
||||||
|
RibbonPageGroupData.Enabled = True
|
||||||
|
RibbonPageGroupStart.Enabled = True
|
||||||
|
SplashScreenManager.CloseWaitForm()
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
@ -117,6 +117,8 @@ Public Class frmRowEditor
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If oField.Value Is Nothing Then
|
If oField.Value Is Nothing Then
|
||||||
|
' TODO: Do we need to create a new field value here?
|
||||||
|
' aka. do we need to configure fieldvalue from column settings
|
||||||
oDict.Add(oColumnName, New FieldValue())
|
oDict.Add(oColumnName, New FieldValue())
|
||||||
Else
|
Else
|
||||||
oDict.Add(oColumnName, oField.Value)
|
oDict.Add(oColumnName, oField.Value)
|
||||||
@ -154,6 +156,10 @@ Public Class frmRowEditor
|
|||||||
Where(Function(f) f.Key = oRow.Item(COL_KEY)).
|
Where(Function(f) f.Key = oRow.Item(COL_KEY)).
|
||||||
SingleOrDefault()
|
SingleOrDefault()
|
||||||
|
|
||||||
|
' TODO: Why do we need to create new fieldvalues here?
|
||||||
|
' aka. why would the be a value for which no fieldvalue exists yet?
|
||||||
|
' If there are (non-virtual) fields in the template which do not have a value yet,
|
||||||
|
' this might happen.
|
||||||
If oField.Key Is Nothing Then
|
If oField.Key Is Nothing Then
|
||||||
oField = New KeyValuePair(Of String, FieldValue)(oRow.Item(COL_KEY), New FieldValue())
|
oField = New KeyValuePair(Of String, FieldValue)(oRow.Item(COL_KEY), New FieldValue())
|
||||||
End If
|
End If
|
||||||
@ -173,10 +179,11 @@ Public Class frmRowEditor
|
|||||||
If Not oFieldValue.Final.Equals(oValueFromGrid) Then
|
If Not oFieldValue.Final.Equals(oValueFromGrid) Then
|
||||||
' If new value is not empty, any error will be removed.
|
' If new value is not empty, any error will be removed.
|
||||||
' Could cause problems in the future because a value might not equal to 'no error'.
|
' Could cause problems in the future because a value might not equal to 'no error'.
|
||||||
' 03.12.21: For now we always remove the error if ANYTHING changed about the field
|
|
||||||
'If oValueFromGrid <> String.Empty Then
|
'If oValueFromGrid <> String.Empty Then
|
||||||
' oFieldValue.Error = FieldError.None
|
' oFieldValue.Error = FieldError.None
|
||||||
'End If
|
'End If
|
||||||
|
|
||||||
|
' 03.12.21: For now we always remove the error if ANYTHING changed about the field
|
||||||
oFieldValue.Error = FieldError.None
|
oFieldValue.Error = FieldError.None
|
||||||
|
|
||||||
' Save the grid value to the Field
|
' Save the grid value to the Field
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user