WIP
This commit is contained in:
@@ -2,52 +2,136 @@
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
Imports DevExpress.XtraVerticalGrid.Rows
|
||||
Imports ImporterShared.Documents
|
||||
Imports ImporterShared.DocumentRow
|
||||
Imports DevExpress.XtraEditors.Repository
|
||||
Imports ImporterShared.Winline
|
||||
|
||||
Public Class frmRowEditor
|
||||
Private Row As DataRow
|
||||
Private DocumentRow As ImporterShared.DocumentRow
|
||||
Private Columns As List(Of String)
|
||||
Private ReadOnly _Columns As List(Of String)
|
||||
Private ReadOnly _DataTable As New DataTable
|
||||
Private ReadOnly _Accounts As List(Of Account)
|
||||
Private _DocumentRow As ImporterShared.DocumentRow
|
||||
|
||||
Public Sub New(pColumns As List(Of String), pDocumentRow As ImporterShared.DocumentRow)
|
||||
Private DatePicker As New RepositoryItemDateEdit()
|
||||
Private MultilineEditor As New RepositoryItemMemoEdit()
|
||||
Private AccountPicker As New RepositoryItemSearchLookUpEdit
|
||||
|
||||
Private Const COL_KEY = "KEY"
|
||||
Private Const COL_VALUE_ORIGINAL = "VALUE_ORIGINAL"
|
||||
Private Const COL_VALUE_EXTERNAL = "VALUE_EXTERNAL"
|
||||
Private Const COL_VALUE_FINAL = "VALUE_FINAL"
|
||||
|
||||
Public ReadOnly Property DocumentRow As ImporterShared.DocumentRow
|
||||
Get
|
||||
Return _DocumentRow
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub New(pColumns As List(Of String), pDocumentRow As ImporterShared.DocumentRow, pAccounts As List(Of Account))
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
InitializeComponent()
|
||||
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
Columns = pColumns
|
||||
DocumentRow = pDocumentRow
|
||||
_Columns = pColumns
|
||||
_Accounts = pAccounts
|
||||
_DocumentRow = pDocumentRow
|
||||
|
||||
AccountPicker.DataSource = _Accounts
|
||||
AccountPicker.DisplayMember = "Name"
|
||||
AccountPicker.ValueMember = "Id"
|
||||
End Sub
|
||||
|
||||
Private Sub frmRowEditor_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Dim oDataTable As New DataTable()
|
||||
Dim oDict = New Dictionary(Of String, ImporterShared.DocumentRow.FieldValue)
|
||||
Dim oDict = New Dictionary(Of String, FieldValue)
|
||||
|
||||
For Each oColumn As String In Columns
|
||||
Dim oField = DocumentRow.Fields.
|
||||
For Each oColumn As String In _Columns
|
||||
Dim oField = _DocumentRow.Fields.
|
||||
Where(Function(f) f.Key = oColumn).
|
||||
SingleOrDefault()
|
||||
|
||||
If oField.Value Is Nothing Then
|
||||
oDict.Add(oColumn, New ImporterShared.DocumentRow.FieldValue())
|
||||
oDict.Add(oColumn, New FieldValue())
|
||||
Else
|
||||
oDict.Add(oColumn, oField.Value)
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
oDataTable.Columns.Add("KEY")
|
||||
oDataTable.Columns.Add("VALUE_ORIGINAL")
|
||||
oDataTable.Columns.Add("VALUE_EXTERNAL")
|
||||
oDataTable.Columns.Add("VALUE_FINAL")
|
||||
_DataTable.Columns.Clear()
|
||||
_DataTable.Columns.Add(COL_KEY)
|
||||
_DataTable.Columns.Add(COL_VALUE_ORIGINAL)
|
||||
_DataTable.Columns.Add(COL_VALUE_EXTERNAL)
|
||||
_DataTable.Columns.Add(COL_VALUE_FINAL)
|
||||
|
||||
For Each oKV In oDict
|
||||
oDataTable.Rows.Add(oKV.Key, oKV.Value.Original, oKV.Value.External, oKV.Value.Final)
|
||||
_DataTable.Rows.Add(oKV.Key, oKV.Value.Original, oKV.Value.External, oKV.Value.Final)
|
||||
Next
|
||||
|
||||
GridControl1.DataSource = oDataTable
|
||||
GridView1.BestFitColumns()
|
||||
GridControl1.DataSource = _DataTable
|
||||
End Sub
|
||||
|
||||
Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick
|
||||
GridView1.CloseEditor()
|
||||
|
||||
For Each oRow As DataRow In _DataTable.Rows
|
||||
Dim oField = _DocumentRow.Fields.
|
||||
Where(Function(f) f.Key = oRow.Item(COL_KEY)).
|
||||
SingleOrDefault()
|
||||
|
||||
If oField.Key Is Nothing Then
|
||||
oField = New KeyValuePair(Of String, FieldValue)(oRow.Item(COL_KEY), New FieldValue())
|
||||
End If
|
||||
|
||||
Dim oFieldValue = oField.Value
|
||||
oFieldValue.Final = oRow.Item(COL_VALUE_FINAL)
|
||||
|
||||
If _DocumentRow.Fields.ContainsKey(oField.Key) Then
|
||||
_DocumentRow.Fields.Item(oField.Key) = oFieldValue
|
||||
Else
|
||||
_DocumentRow.Fields.Add(oField.Key, oFieldValue)
|
||||
End If
|
||||
Next
|
||||
|
||||
DialogResult = DialogResult.OK
|
||||
Close()
|
||||
End Sub
|
||||
|
||||
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()
|
||||
End Sub
|
||||
|
||||
Private Sub btnApplyFromOriginal_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnApplyFromOriginal.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_ORIGINAL)
|
||||
oSelectedRow.AcceptChanges()
|
||||
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
|
||||
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
|
||||
e.RepositoryItem = AccountPicker
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
Reference in New Issue
Block a user