This commit is contained in:
Jonathan Jenne
2021-10-28 14:04:56 +02:00
parent 3fac097f46
commit 0b83ddcc4d
13 changed files with 164 additions and 49 deletions

View File

@@ -8,6 +8,7 @@ Imports ImporterShared.Winline
Imports DigitalData.Modules.Language
Imports DevExpress.XtraEditors.Controls
Imports System.Globalization
Imports DevExpress.XtraEditors
Public Class frmRowEditor
Private ReadOnly _Columns As List(Of String)
@@ -15,9 +16,10 @@ Public Class frmRowEditor
Private ReadOnly _Accounts As List(Of Account)
Private ReadOnly _DocumentRow As ImporterShared.DocumentRow
Private ReadOnly DatePicker As New RepositoryItemDateEdit()
Private ReadOnly MultilineEditor As New RepositoryItemMemoEdit()
Private ReadOnly DatePicker As New RepositoryItemDateEdit
Private ReadOnly MultilineEditor As New RepositoryItemMemoEdit
Private ReadOnly AccountPicker As New RepositoryItemSearchLookUpEdit
Private ReadOnly MaskDateEditor As New RepositoryItemTextEdit
Private Const COL_KEY = "KEY"
Private Const COL_VALUE_ORIGINAL = "VALUE_ORIGINAL"
@@ -43,26 +45,31 @@ Public Class frmRowEditor
AccountPicker.DisplayMember = "Name"
AccountPicker.ValueMember = "Id"
'DatePicker.CalendarTimeEditing = DevExpress.Utils.DefaultBoolean.False
'DatePicker.EditMask = "yyyy-MM-dd"
'DatePicker.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTimeAdvancingCaret
'DatePicker.DisplayFormat.FormatString = "yyyy-MM-dd"
DatePicker.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime
' DatePicker.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime
'DatePicker.DisplayFormat.FormatString = "d"
'DatePicker.EditFormat.FormatString = "yyyy-MM-dd"
DatePicker.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime
'DatePicker.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime
'DatePicker.EditFormat.FormatString = "d"
'DatePicker.Mask.UseMaskAsDisplayFormat = True
'DatePicker.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime
' DatePicker.Mask.EditMask = "yyyy-MM-dd"
'AddHandler DatePicker.ParseEditValue, AddressOf DatePicker_ParseEditValue
'MaskDateEditor.Mask.EditMask = "yyyy-MM-dd"
'MaskDateEditor.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Simple
End Sub
Private Sub DatePicker_ParseEditValue(sender As Object, e As ConvertEditValueEventArgs)
If TypeOf e.Value Is String Then
Try
Dim oDateTime = Date.ParseExact(e.Value.ToString, "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture)
e.Value = oDateTime
e.Handled = True
Catch ex As Exception
End Try
If TypeOf sender Is RepositoryItemDateEdit Then
Debug.WriteLine($"RepoItem # {e.Value} # {e.Value.GetType.Name}")
ElseIf TypeOf sender Is DateEdit Then
Debug.WriteLine($"DateEdit # {e.Value} # {e.Value.GetType.Name}")
End If
End Sub
@@ -108,7 +115,14 @@ Public Class frmRowEditor
End If
Dim oFieldValue As FieldValue = oField.Value
Dim oGridValue = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty)
Dim oGridValue As String = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty)
If oField.Key = "Datum_Auftrag-Bestellung" And oGridValue.Length > 0 Then
If TryParseDate(oGridValue) Is Nothing Then
MsgBox($"Datumswert für '{oField.Key}' enthält einen ungüligen Wert. Bitte benutzen Sie das Format 'YYYY-MM-DD'.", MsgBoxStyle.Exclamation, Text)
Exit Sub
End If
End If
If Not oFieldValue.Final.Equals(oGridValue) Then
oFieldValue.Final = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty)
@@ -126,36 +140,41 @@ Public Class frmRowEditor
Close()
End Sub
Private Function TryParseDate(pValue As String)
Try
Return Date.ParseExact(pValue, "yyyy-MM-dd", CultureInfo.InvariantCulture)
Catch ex As Exception
Return Nothing
End Try
End Function
Private Sub btnApplyFromWinline_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnApplyFromWinline.ItemClick
Dim oSelectedRow As DataRow = GridView1.GetDataRow(GridView1.FocusedRowHandle)
If oSelectedRow Is Nothing Then
Exit Sub
End If
oSelectedRow.Item(COL_VALUE_FINAL) = oSelectedRow.Item(COL_VALUE_EXTERNAL)
oSelectedRow.AcceptChanges()
CopyValueToFinalColumn(COL_VALUE_EXTERNAL)
End Sub
Private Sub btnApplyFromOriginal_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnApplyFromOriginal.ItemClick
CopyValueToFinalColumn(COL_VALUE_ORIGINAL)
End Sub
Private Sub CopyValueToFinalColumn(pSourceColumnName As String)
Dim oSelectedRow As DataRow = GridView1.GetDataRow(GridView1.FocusedRowHandle)
If oSelectedRow Is Nothing Then
Exit Sub
End If
oSelectedRow.Item(COL_VALUE_FINAL) = oSelectedRow.Item(COL_VALUE_ORIGINAL)
oSelectedRow.Item(COL_VALUE_FINAL) = oSelectedRow.Item(pSourceColumnName)
oSelectedRow.AcceptChanges()
GridView1.CloseEditor()
End Sub
Private Sub GridView1_CustomRowCellEdit(sender As Object, e As CustomRowCellEditEventArgs) Handles GridView1.CustomRowCellEdit
Dim oDataRow As DataRow = GridView1.GetDataRow(e.RowHandle)
If e.Column.FieldName = COL_VALUE_ORIGINAL Or e.Column.FieldName = COL_VALUE_FINAL Then
If oDataRow.Item(COL_KEY) = "Datum_Auftrag-Bestellung" Then
e.RepositoryItem = DatePicker
'e.RepositoryItem = DatePicker
'e.RepositoryItem = MaskDateEditor
ElseIf e.CellValue.ToString.Length > 100 Then
e.RepositoryItem = MultilineEditor
ElseIf oDataRow.Item(COL_KEY) = "Fakt_Kontonummer" Or oDataRow.Item(COL_KEY) = "Lief_Kontonummer" Then