Improve Validation, Report, Transfer document with selected mandator
This commit is contained in:
parent
47c22e9361
commit
1366343cdf
35
MultiTool.Form/Reports/OrderReport.Designer.vb
generated
35
MultiTool.Form/Reports/OrderReport.Designer.vb
generated
@ -84,6 +84,9 @@ Partial Public Class OrderReport
|
|||||||
Me.GroupFooter1 = New DevExpress.XtraReports.UI.GroupFooterBand()
|
Me.GroupFooter1 = New DevExpress.XtraReports.UI.GroupFooterBand()
|
||||||
Me.label2 = New DevExpress.XtraReports.UI.XRLabel()
|
Me.label2 = New DevExpress.XtraReports.UI.XRLabel()
|
||||||
Me.ObjectDataSource1 = New DevExpress.DataAccess.ObjectBinding.ObjectDataSource(Me.components)
|
Me.ObjectDataSource1 = New DevExpress.DataAccess.ObjectBinding.ObjectDataSource(Me.components)
|
||||||
|
Me.XrTableRow4 = New DevExpress.XtraReports.UI.XRTableRow()
|
||||||
|
Me.XrTableCell11 = New DevExpress.XtraReports.UI.XRTableCell()
|
||||||
|
Me.XrTableCell12 = New DevExpress.XtraReports.UI.XRTableCell()
|
||||||
CType(Me.XrTable2, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.XrTable2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.XrTable1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.XrTable1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.table3, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.table3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
@ -274,7 +277,7 @@ Partial Public Class OrderReport
|
|||||||
'Detail
|
'Detail
|
||||||
'
|
'
|
||||||
Me.Detail.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.XrTable2, Me.XrTable1})
|
Me.Detail.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.XrTable2, Me.XrTable1})
|
||||||
Me.Detail.HeightF = 50.0!
|
Me.Detail.HeightF = 75.0!
|
||||||
Me.Detail.KeepTogether = True
|
Me.Detail.KeepTogether = True
|
||||||
Me.Detail.Name = "Detail"
|
Me.Detail.Name = "Detail"
|
||||||
'
|
'
|
||||||
@ -284,8 +287,8 @@ Partial Public Class OrderReport
|
|||||||
Me.XrTable2.LocationFloat = New DevExpress.Utils.PointFloat(354.8623!, 0!)
|
Me.XrTable2.LocationFloat = New DevExpress.Utils.PointFloat(354.8623!, 0!)
|
||||||
Me.XrTable2.Name = "XrTable2"
|
Me.XrTable2.Name = "XrTable2"
|
||||||
Me.XrTable2.Padding = New DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96.0!)
|
Me.XrTable2.Padding = New DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96.0!)
|
||||||
Me.XrTable2.Rows.AddRange(New DevExpress.XtraReports.UI.XRTableRow() {Me.XrTableRow3, Me.XrTableRow5})
|
Me.XrTable2.Rows.AddRange(New DevExpress.XtraReports.UI.XRTableRow() {Me.XrTableRow3, Me.XrTableRow5, Me.XrTableRow4})
|
||||||
Me.XrTable2.SizeF = New System.Drawing.SizeF(288.9166!, 50.0!)
|
Me.XrTable2.SizeF = New System.Drawing.SizeF(288.9166!, 75.0!)
|
||||||
Me.XrTable2.StylePriority.UseForeColor = False
|
Me.XrTable2.StylePriority.UseForeColor = False
|
||||||
'
|
'
|
||||||
'XrTableRow3
|
'XrTableRow3
|
||||||
@ -628,6 +631,29 @@ Partial Public Class OrderReport
|
|||||||
Me.ObjectDataSource1.DataSource = GetType(MultiTool.[Shared].ReportSource)
|
Me.ObjectDataSource1.DataSource = GetType(MultiTool.[Shared].ReportSource)
|
||||||
Me.ObjectDataSource1.Name = "ObjectDataSource1"
|
Me.ObjectDataSource1.Name = "ObjectDataSource1"
|
||||||
'
|
'
|
||||||
|
'XrTableRow4
|
||||||
|
'
|
||||||
|
Me.XrTableRow4.Cells.AddRange(New DevExpress.XtraReports.UI.XRTableCell() {Me.XrTableCell11, Me.XrTableCell12})
|
||||||
|
Me.XrTableRow4.Name = "XrTableRow4"
|
||||||
|
Me.XrTableRow4.Weight = 1.0R
|
||||||
|
'
|
||||||
|
'XrTableCell11
|
||||||
|
'
|
||||||
|
Me.XrTableCell11.Font = New System.Drawing.Font("Arial", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
|
Me.XrTableCell11.Multiline = True
|
||||||
|
Me.XrTableCell11.Name = "XrTableCell11"
|
||||||
|
Me.XrTableCell11.StylePriority.UseFont = False
|
||||||
|
Me.XrTableCell11.Text = "Bestellt von"
|
||||||
|
Me.XrTableCell11.Weight = 1.0R
|
||||||
|
'
|
||||||
|
'XrTableCell12
|
||||||
|
'
|
||||||
|
Me.XrTableCell12.ExpressionBindings.AddRange(New DevExpress.XtraReports.UI.ExpressionBinding() {New DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[Head].[Text5]")})
|
||||||
|
Me.XrTableCell12.Multiline = True
|
||||||
|
Me.XrTableCell12.Name = "XrTableCell12"
|
||||||
|
Me.XrTableCell12.Text = "XrTableCell12"
|
||||||
|
Me.XrTableCell12.Weight = 1.0R
|
||||||
|
'
|
||||||
'OrderReport
|
'OrderReport
|
||||||
'
|
'
|
||||||
Me.Bands.AddRange(New DevExpress.XtraReports.UI.Band() {Me.TopMargin, Me.BottomMargin, Me.ReportHeader, Me.Detail, Me.DetailReport})
|
Me.Bands.AddRange(New DevExpress.XtraReports.UI.Band() {Me.TopMargin, Me.BottomMargin, Me.ReportHeader, Me.Detail, Me.DetailReport})
|
||||||
@ -713,4 +739,7 @@ Partial Public Class OrderReport
|
|||||||
Friend WithEvents XrTableCell7 As DevExpress.XtraReports.UI.XRTableCell
|
Friend WithEvents XrTableCell7 As DevExpress.XtraReports.UI.XRTableCell
|
||||||
Friend WithEvents XrTableCell8 As DevExpress.XtraReports.UI.XRTableCell
|
Friend WithEvents XrTableCell8 As DevExpress.XtraReports.UI.XRTableCell
|
||||||
Friend WithEvents XrLabel3 As DevExpress.XtraReports.UI.XRLabel
|
Friend WithEvents XrLabel3 As DevExpress.XtraReports.UI.XRLabel
|
||||||
|
Friend WithEvents XrTableRow4 As DevExpress.XtraReports.UI.XRTableRow
|
||||||
|
Friend WithEvents XrTableCell11 As DevExpress.XtraReports.UI.XRTableCell
|
||||||
|
Friend WithEvents XrTableCell12 As DevExpress.XtraReports.UI.XRTableCell
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -422,7 +422,7 @@ Public Class frmImportMain
|
|||||||
SplitContainerGrids.Enabled = False
|
SplitContainerGrids.Enabled = False
|
||||||
|
|
||||||
Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle)
|
Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle)
|
||||||
Await WebService.TransferDocumentToWinline(oDocument)
|
Await WebService.TransferDocumentToWinline(oDocument, lookupMandator.EditValue)
|
||||||
|
|
||||||
MsgBox(My.Resources.frmImportMainExtra.Datei_erfolgreich_in_die_WinLine_übertragen, MsgBoxStyle.Information, Text)
|
MsgBox(My.Resources.frmImportMainExtra.Datei_erfolgreich_in_die_WinLine_übertragen, MsgBoxStyle.Information, Text)
|
||||||
Catch ex As HttpRequestException
|
Catch ex As HttpRequestException
|
||||||
@ -565,9 +565,11 @@ Public Class frmImportMain
|
|||||||
|
|
||||||
Dim oMapperConfig As New Mapper(LogConfig)
|
Dim oMapperConfig As New Mapper(LogConfig)
|
||||||
Dim oHeadMapper = oMapperConfig.GetMapper(Of ReportHead)(New Dictionary(Of String, String) From {
|
Dim oHeadMapper = oMapperConfig.GetMapper(Of ReportHead)(New Dictionary(Of String, String) From {
|
||||||
|
{"Fakt_Kontonummer[External]", "Text1"},
|
||||||
{"Fakt_Kontonummer[Final]", "Text2"},
|
{"Fakt_Kontonummer[Final]", "Text2"},
|
||||||
{"Auftrags-Bestellnummer", "Text3"},
|
{"Auftrags-Bestellnummer", "Text3"},
|
||||||
{"Datum_Auftrag-Bestellung", "Text4"}
|
{"Datum_Auftrag-Bestellung", "Text4"},
|
||||||
|
{"Bestellt_von", "Text5"}
|
||||||
})
|
})
|
||||||
|
|
||||||
Dim oPositionMapper = oMapperConfig.GetMapper(Of ReportPosition)(New Dictionary(Of String, String) From {
|
Dim oPositionMapper = oMapperConfig.GetMapper(Of ReportPosition)(New Dictionary(Of String, String) From {
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
Imports DevExpress.XtraGrid.Views.Grid
|
Imports System.Globalization
|
||||||
Imports MultiTool.Shared.Documents
|
Imports MultiTool.Shared.Documents
|
||||||
Imports MultiTool.Shared.Documents.DocumentRow
|
Imports MultiTool.Shared.Documents.DocumentRow
|
||||||
Imports DevExpress.XtraEditors.Repository
|
|
||||||
Imports MultiTool.Shared.Winline
|
Imports MultiTool.Shared.Winline
|
||||||
Imports DigitalData.Modules.Language
|
|
||||||
Imports DevExpress.XtraEditors.Controls
|
|
||||||
Imports System.Globalization
|
|
||||||
Imports DevExpress.XtraEditors
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Imports MultiTool.Shared.Schemas
|
Imports MultiTool.Shared.Schemas
|
||||||
|
Imports MultiTool.Shared.Constants
|
||||||
|
Imports DigitalData.Modules.Language
|
||||||
|
Imports DigitalData.Modules.Logging
|
||||||
|
Imports DevExpress.XtraEditors
|
||||||
|
Imports DevExpress.XtraEditors.Repository
|
||||||
|
Imports DevExpress.XtraEditors.Controls
|
||||||
|
Imports DevExpress.XtraGrid.Views.Grid
|
||||||
|
|
||||||
Public Class frmRowEditor
|
Public Class frmRowEditor
|
||||||
Private ReadOnly LogConfig As LogConfig
|
Private ReadOnly LogConfig As LogConfig
|
||||||
@ -29,10 +30,6 @@ Public Class frmRowEditor
|
|||||||
Private ReadOnly DocumentKindPicker As New RepositoryItemSearchLookUpEdit
|
Private ReadOnly DocumentKindPicker As New RepositoryItemSearchLookUpEdit
|
||||||
Private ReadOnly ReadOnlyEditor As New RepositoryItemTextEdit
|
Private ReadOnly ReadOnlyEditor As New RepositoryItemTextEdit
|
||||||
|
|
||||||
|
|
||||||
'Private ReadOnly MaskDateEditor As New RepositoryItemTextEdit
|
|
||||||
'Private ReadOnly DatePicker As New RepositoryItemDateEdit
|
|
||||||
|
|
||||||
Private Const COL_KEY = "KEY"
|
Private Const COL_KEY = "KEY"
|
||||||
Private Const COL_VALUE_ORIGINAL = "VALUE_ORIGINAL"
|
Private Const COL_VALUE_ORIGINAL = "VALUE_ORIGINAL"
|
||||||
Private Const COL_VALUE_EXTERNAL = "VALUE_EXTERNAL"
|
Private Const COL_VALUE_EXTERNAL = "VALUE_EXTERNAL"
|
||||||
@ -45,7 +42,6 @@ Public Class frmRowEditor
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
Public Sub New(pLogConfig As LogConfig, pColumns As List(Of String), pDocumentRow As DocumentRow, pMandator As Mandator, pWinline As WinlineData, pTable As Schema.Table)
|
Public Sub New(pLogConfig As LogConfig, pColumns As List(Of String), pDocumentRow As DocumentRow, pMandator As Mandator, pWinline As WinlineData, pTable As Schema.Table)
|
||||||
' Dieser Aufruf ist für den Designer erforderlich.
|
|
||||||
InitializeComponent()
|
InitializeComponent()
|
||||||
|
|
||||||
LogConfig = pLogConfig
|
LogConfig = pLogConfig
|
||||||
@ -105,11 +101,12 @@ Public Class frmRowEditor
|
|||||||
Dim oField = _DocumentRow.Fields.
|
Dim oField = _DocumentRow.Fields.
|
||||||
Where(Function(f) f.Key = oColumnName).
|
Where(Function(f) f.Key = oColumnName).
|
||||||
SingleOrDefault()
|
SingleOrDefault()
|
||||||
|
|
||||||
Dim oColumn = _Table.Columns.
|
Dim oColumn = _Table.Columns.
|
||||||
Where(Function(c) c.Name = oColumnName).
|
Where(Function(c) c.Name = oColumnName).
|
||||||
SingleOrDefault()
|
SingleOrDefault()
|
||||||
|
|
||||||
' Only Show Columns that are set to visible true
|
' Only Show Columns that are set to visible
|
||||||
If oColumn?.Config?.IsVisible = False Then
|
If oColumn?.Config?.IsVisible = False Then
|
||||||
Continue For
|
Continue For
|
||||||
End If
|
End If
|
||||||
@ -160,6 +157,13 @@ Public Class frmRowEditor
|
|||||||
|
|
||||||
If Not oFieldValue.Final.Equals(oGridValue) Then
|
If Not oFieldValue.Final.Equals(oGridValue) Then
|
||||||
Dim oValue = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty).ToString
|
Dim oValue = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty).ToString
|
||||||
|
|
||||||
|
' 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'.
|
||||||
|
If oValue <> String.Empty Then
|
||||||
|
oFieldValue.Error = FieldError.None
|
||||||
|
End If
|
||||||
|
|
||||||
oFieldValue.Final = oValue.Trim()
|
oFieldValue.Final = oValue.Trim()
|
||||||
|
|
||||||
If _DocumentRow.Fields.ContainsKey(oField.Key) Then
|
If _DocumentRow.Fields.ContainsKey(oField.Key) Then
|
||||||
@ -222,15 +226,16 @@ Public Class frmRowEditor
|
|||||||
Where(Function(c) c.Name = oKey).
|
Where(Function(c) c.Name = oKey).
|
||||||
SingleOrDefault()
|
SingleOrDefault()
|
||||||
|
|
||||||
|
|
||||||
If oColumn Is Nothing Then
|
If oColumn Is Nothing Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If oColumn.Config?.Function.Name = "GLN" Then
|
If oColumn.Config?.Function?.Name = FUNCTION_GLN Then
|
||||||
e.RepositoryItem = AccountPicker
|
e.RepositoryItem = AccountPicker
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If oColumn.Config?.Function.Name = "EAN" Then
|
If oColumn.Config?.Function?.Name = FUNCTION_EAN Then
|
||||||
e.RepositoryItem = ArticlePicker
|
e.RepositoryItem = ArticlePicker
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -251,20 +256,23 @@ Public Class frmRowEditor
|
|||||||
Dim oColumn = _Table.Columns.
|
Dim oColumn = _Table.Columns.
|
||||||
Where(Function(c) c.Name = oKey).
|
Where(Function(c) c.Name = oKey).
|
||||||
SingleOrDefault()
|
SingleOrDefault()
|
||||||
|
Dim oField = _DocumentRow.Fields.
|
||||||
|
Where(Function(f) f.Key = oKey).
|
||||||
|
SingleOrDefault()
|
||||||
|
|
||||||
If e.Column.FieldName = COL_VALUE_FINAL Then
|
If e.Column.FieldName = COL_VALUE_FINAL Then
|
||||||
If oColumn Is Nothing Then
|
If oColumn IsNot Nothing Then
|
||||||
If oColumn.Config?.IsReadOnly Then
|
If oColumn.Config?.IsReadOnly Then
|
||||||
e.Appearance.BackColor = Color.LightGray
|
e.Appearance.BackColor = Color.LightGray
|
||||||
End If
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
If oColumn.Config?.IsRequired AndAlso e.CellValue.ToString.Length = 0 Then
|
If oField.Value.HasError Then
|
||||||
e.Appearance.BackColor = Color.LightCoral
|
e.Appearance.BackColor = Color.LightCoral
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
|
|
||||||
If oColumn.Config?.IsRequired AndAlso oValue.ToString.Length = 0 Then
|
If oField.Value.HasError Then
|
||||||
e.Appearance.BackColor = Color.LightCoral
|
e.Appearance.BackColor = Color.LightCoral
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@ -7,6 +7,9 @@
|
|||||||
EAN = 2
|
EAN = 2
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
|
Public Const FUNCTION_GLN = "GLN"
|
||||||
|
Public Const FUNCTION_EAN = "EAN"
|
||||||
|
|
||||||
Public Const SCHEMA_TYPE_DATE = "xs:date"
|
Public Const SCHEMA_TYPE_DATE = "xs:date"
|
||||||
Public Const SCHEMA_TYPE_INTEGER = "xs:integer"
|
Public Const SCHEMA_TYPE_INTEGER = "xs:integer"
|
||||||
Public Const SCHEMA_TYPE_DECIMAL = "xs:decimal"
|
Public Const SCHEMA_TYPE_DECIMAL = "xs:decimal"
|
||||||
|
|||||||
@ -137,7 +137,15 @@ Namespace Documents
|
|||||||
' The first level of Elements are the document Rows
|
' The first level of Elements are the document Rows
|
||||||
Dim oTopLevelElements As List(Of XElement) = oRootElement.Elements.ToList
|
Dim oTopLevelElements As List(Of XElement) = oRootElement.Elements.ToList
|
||||||
Dim oDocumentRows As New List(Of DocumentRow)
|
Dim oDocumentRows As New List(Of DocumentRow)
|
||||||
|
Dim oSortKey As Integer = 0
|
||||||
|
|
||||||
|
' TODO: Somehow add all fields in the correct order
|
||||||
|
'
|
||||||
|
' Right now, the method of
|
||||||
|
' - first the filled field from xml
|
||||||
|
' - then the rest from schema
|
||||||
|
'
|
||||||
|
' leads to unordered fields.
|
||||||
For Each oTopLevelElement As XElement In oTopLevelElements
|
For Each oTopLevelElement As XElement In oTopLevelElements
|
||||||
Dim oFields As New Dictionary(Of String, DocumentRow.FieldValue)
|
Dim oFields As New Dictionary(Of String, DocumentRow.FieldValue)
|
||||||
Dim oSubElements = oTopLevelElement.Descendants().ToList()
|
Dim oSubElements = oTopLevelElement.Descendants().ToList()
|
||||||
@ -145,15 +153,12 @@ Namespace Documents
|
|||||||
Where(Function(t) t.Name = oTopLevelElement.Name).
|
Where(Function(t) t.Name = oTopLevelElement.Name).
|
||||||
FirstOrDefault()
|
FirstOrDefault()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
For Each oSubElement As XElement In oSubElements
|
For Each oSubElement As XElement In oSubElements
|
||||||
Dim oSchemaField = oTable.Columns.
|
Dim oSchemaField = oTable.Columns.
|
||||||
Where(Function(c) c.Name = oSubElement.Name).
|
Where(Function(c) c.Name = oSubElement.Name).
|
||||||
SingleOrDefault()
|
SingleOrDefault()
|
||||||
|
|
||||||
|
Dim oRequired = oSchemaField.IsRequired
|
||||||
Dim oValue = oSubElement.Value.Trim()
|
Dim oValue = oSubElement.Value.Trim()
|
||||||
|
|
||||||
' TODO: Needed when we have time for date times
|
' TODO: Needed when we have time for date times
|
||||||
@ -165,12 +170,13 @@ Namespace Documents
|
|||||||
oFields.Add(oSubElement.Name.ToString, New DocumentRow.FieldValue With {
|
oFields.Add(oSubElement.Name.ToString, New DocumentRow.FieldValue With {
|
||||||
.Original = oValue,
|
.Original = oValue,
|
||||||
.Final = oValue,
|
.Final = oValue,
|
||||||
.DataType = oSchemaField.DataType
|
.DataType = oSchemaField.DataType,
|
||||||
|
.Required = oRequired
|
||||||
})
|
})
|
||||||
|
|
||||||
Next
|
Next
|
||||||
|
|
||||||
' TODO: All fields in the schema should be generated,
|
' All fields in the schema are generated,
|
||||||
' only creating the ones with values leads to wrong visual cues when asking for
|
' only creating the ones with values leads to wrong visual cues when asking for
|
||||||
' docs/rows/fields with errors
|
' docs/rows/fields with errors
|
||||||
For Each oColumn In oTable.Columns
|
For Each oColumn In oTable.Columns
|
||||||
@ -190,10 +196,12 @@ Namespace Documents
|
|||||||
|
|
||||||
' Create a DocumentRow object for each Top Level Element
|
' Create a DocumentRow object for each Top Level Element
|
||||||
Dim oRow = New DocumentRow With {
|
Dim oRow = New DocumentRow With {
|
||||||
|
.SortKey = oSortKey,
|
||||||
.Name = oTopLevelElement.Name.ToString,
|
.Name = oTopLevelElement.Name.ToString,
|
||||||
.Fields = oFields
|
.Fields = oFields
|
||||||
}
|
}
|
||||||
|
|
||||||
|
oSortKey += 1
|
||||||
oDocumentRows.Add(oRow)
|
oDocumentRows.Add(oRow)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
|||||||
@ -1,16 +1,37 @@
|
|||||||
Namespace Documents
|
Namespace Documents
|
||||||
Public Class DocumentRow
|
Public Class DocumentRow
|
||||||
|
Implements IComparable
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' GUID to match DocumentRow with Row from Grid/DataTable
|
||||||
|
''' </summary>
|
||||||
|
Public Property Id As New Guid
|
||||||
|
''' <summary>
|
||||||
|
''' Counter to ensure consistency and order when writing XML
|
||||||
|
''' </summary>
|
||||||
|
Public Property SortKey As Integer
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Tabellen/Elementname aus XML
|
''' Tabellen/Elementname aus XML
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Property Name As String
|
Public Property Name As String
|
||||||
Public Property Id As New Guid
|
|
||||||
|
|
||||||
Public Property Fields As Dictionary(Of String, FieldValue)
|
Public Property Fields As Dictionary(Of String, FieldValue)
|
||||||
|
|
||||||
Public ReadOnly Property HasErrors As Boolean
|
Public ReadOnly Property HasErrors As Boolean
|
||||||
Get
|
Get
|
||||||
Return Fields.Any(Function(f) f.Value.HasError)
|
If Errors.Count > 0 Then
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property Errors As List(Of String)
|
||||||
|
Get
|
||||||
|
Return Fields.
|
||||||
|
Where(Function(f) f.Value.HasError).
|
||||||
|
Select(Function(f) f.Key).ToList()
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
@ -18,6 +39,10 @@
|
|||||||
Id = Guid.NewGuid()
|
Id = Guid.NewGuid()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Public Function CompareTo(other As Object) As Integer Implements IComparable.CompareTo
|
||||||
|
Return SortKey.CompareTo(DirectCast(other, DocumentRow).SortKey)
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Enum FieldError
|
Public Enum FieldError
|
||||||
None
|
None
|
||||||
MissingValue
|
MissingValue
|
||||||
@ -26,16 +51,16 @@
|
|||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
Public Class FieldValue
|
Public Class FieldValue
|
||||||
Public [Error] As FieldError = FieldError.None
|
|
||||||
|
|
||||||
Public Original As String = ""
|
|
||||||
Public External As String = ""
|
|
||||||
Public Final 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 Original As String = ""
|
||||||
|
Public Property External As String = ""
|
||||||
|
Public Property Final As String = ""
|
||||||
|
Public Property Required As Boolean = False
|
||||||
|
|
||||||
Public ReadOnly Property HasError As Boolean
|
Public ReadOnly Property HasError As Boolean
|
||||||
Get
|
Get
|
||||||
Return [Error] <> FieldError.None
|
Return [Error] <> FieldError.None Or (Required = True And Final = String.Empty)
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ Namespace Winline
|
|||||||
AppDataPath = pAppDataPath
|
AppDataPath = pAppDataPath
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Async Function TransferDocumentToWinline(pDocument As Document) As Task(Of Boolean)
|
Public Async Function TransferDocumentToWinline(pDocument As Document, pMandator As Mandator) As Task(Of Boolean)
|
||||||
Dim oBytes As Byte() = GetBytesFromDocument(pDocument)
|
Dim oBytes As Byte() = GetBytesFromDocument(pDocument)
|
||||||
Dim oWS As Config.WebServiceConfig = Config.Webservice
|
Dim oWS As Config.WebServiceConfig = Config.Webservice
|
||||||
|
|
||||||
@ -163,8 +163,6 @@ Namespace Winline
|
|||||||
"Fakt_Name"
|
"Fakt_Name"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Using oStream As New IO.MemoryStream()
|
Using oStream As New IO.MemoryStream()
|
||||||
Dim w = XmlWriter.Create(oStream)
|
Dim w = XmlWriter.Create(oStream)
|
||||||
|
|
||||||
@ -175,6 +173,8 @@ Namespace Winline
|
|||||||
w.WriteAttributeString("option", pDocument.Option)
|
w.WriteAttributeString("option", pDocument.Option)
|
||||||
w.WriteAttributeString("printVoucher", pDocument.PrintVoucher)
|
w.WriteAttributeString("printVoucher", pDocument.PrintVoucher)
|
||||||
|
|
||||||
|
pDocument.Rows.Sort()
|
||||||
|
|
||||||
For Each oRow In pDocument.Rows
|
For Each oRow In pDocument.Rows
|
||||||
w.WriteStartElement(oRow.Name)
|
w.WriteStartElement(oRow.Name)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user