Compare commits
87 Commits
31e0835914
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e3b08038a | ||
|
|
7c683cf13e | ||
|
|
6eedcc687f | ||
|
|
62708c02ef | ||
|
|
4a6a8ded7c | ||
|
|
25e9713c2c | ||
|
|
a0e5b4aa0b | ||
|
|
dc4955db17 | ||
|
|
34c8ecbee5 | ||
|
|
c1fa500f36 | ||
|
|
f67368c1d9 | ||
|
|
a5ae2118b3 | ||
|
|
0fe344eefb | ||
|
|
a68697a9e2 | ||
|
|
7cd4aa80cd | ||
|
|
47e7de3c69 | ||
|
|
77e760f9b4 | ||
|
|
7b3a36336a | ||
|
|
68e4c59e63 | ||
|
|
7846e660b9 | ||
|
|
dddb1dc53a | ||
|
|
47407ac79a | ||
|
|
22bb9b14a1 | ||
|
|
90029ab0f2 | ||
|
|
0eb8eaad2d | ||
|
|
9094f8abe8 | ||
|
|
7c0ccb7184 | ||
|
|
2da202a2a7 | ||
|
|
16ace2c242 | ||
|
|
8a1bb6911f | ||
|
|
a63bf73ca6 | ||
|
|
6325fd7e68 | ||
|
|
371305fb41 | ||
|
|
608b077671 | ||
|
|
34bc0004d2 | ||
|
|
7363a8036e | ||
|
|
73bc1517f3 | ||
|
|
dc14c80d59 | ||
|
|
916e12cae7 | ||
|
|
05dab8d045 | ||
|
|
f0a340f742 | ||
|
|
a0217d0582 | ||
|
|
fe4038f1c8 | ||
|
|
10565fb1da | ||
|
|
42b1ca72a6 | ||
|
|
616e35f885 | ||
|
|
adad5501f3 | ||
|
|
b3140c48c5 | ||
|
|
a8ca303f5e | ||
|
|
5f335b4fee | ||
|
|
beb0ee8ae5 | ||
|
|
143823aae2 | ||
|
|
b460618548 | ||
|
|
0258560221 | ||
|
|
dc657c32a5 | ||
|
|
e168c65ca9 | ||
|
|
bc8289e1b7 | ||
|
|
cd1cdfe19a | ||
|
|
ddaacfe75c | ||
|
|
a5c2b93bfe | ||
|
|
5dc851be7d | ||
|
|
e4345f3b76 | ||
|
|
46d3dfbd47 | ||
|
|
f540c1dc17 | ||
|
|
63527561ea | ||
|
|
2894d398d0 | ||
|
|
8743f0c4b1 | ||
|
|
8e02ed7159 | ||
|
|
5accfbe002 | ||
|
|
5fe4079028 | ||
|
|
623e1717d6 | ||
|
|
fa4ac39074 | ||
|
|
371c8e27cc | ||
|
|
c33770dd9e | ||
|
|
3e41502766 | ||
|
|
13af72dee5 | ||
|
|
69f4c640a8 | ||
|
|
5ee739dae8 | ||
|
|
866e31f37a | ||
|
|
88f844d516 | ||
|
|
edcdf770b7 | ||
|
|
14ac6875c5 | ||
|
|
c74b91713d | ||
|
|
8dba67d3e1 | ||
|
|
ad671443b9 | ||
|
|
3623138fd1 | ||
|
|
85318a3e81 |
@@ -6,4 +6,5 @@ Public Class Config
|
||||
Public Property LastUsedMandator As String = ""
|
||||
Public Property Debug As Boolean = False
|
||||
Public Property AutomaticPriceCalculation As Boolean = True
|
||||
Public Property AutomaticLoadingOnFormOpen As Boolean = False
|
||||
End Class
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
Public Const FUNCTION_PRICE = "PRICE"
|
||||
Public Const FUNCTION_SQL = "SQL"
|
||||
Public Const FUNCTION_FIELD = "FIELD"
|
||||
Public Const FUNCTION_RUNNINGNUMBER = "RUNNINGNUMBER"
|
||||
Public Const FUNCTION_ADDRESS = "ADDRESS"
|
||||
|
||||
Public Const PLACEHOLDER_CONST = "CONST"
|
||||
Public Const PLACEHOLDER_FIELD = "FIELD"
|
||||
|
||||
Public Const TEMPLATE_TYPE_DATE = "xs:date"
|
||||
Public Const TEMPLATE_TYPE_INTEGER = "xs:integer"
|
||||
@@ -56,17 +61,41 @@
|
||||
[Decimal]
|
||||
End Enum
|
||||
|
||||
Public Enum FieldError
|
||||
Public Enum FieldErrorType
|
||||
None
|
||||
MissingValue
|
||||
AccountNotFound
|
||||
ArticleNotFound
|
||||
PriceNotCalculated
|
||||
MissingParameter
|
||||
End Enum
|
||||
|
||||
Public Enum DocumentError
|
||||
Public Class FieldError
|
||||
Public Type As FieldErrorType
|
||||
Public Message As String
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return $"{Message} ({Type})"
|
||||
End Function
|
||||
End Class
|
||||
|
||||
|
||||
Public Enum DocumentErrorType
|
||||
MandatorNotFound
|
||||
MissingXmlAttribute
|
||||
AttributeValidationFailed
|
||||
PriceNotCalculated
|
||||
End Enum
|
||||
|
||||
Public Class DocumentError
|
||||
Public Type As DocumentErrorType
|
||||
Public Message As String
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return $"{Message} ({Type})"
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Public Enum XmlFunction
|
||||
None = 0
|
||||
GLN = 1
|
||||
|
||||
@@ -26,6 +26,8 @@ Namespace Documents
|
||||
''' </summary>
|
||||
Public Property Selected As Boolean = False
|
||||
|
||||
Private DocumentErrors As New List(Of DocumentError)
|
||||
|
||||
Public ReadOnly Property HasErrors As Boolean
|
||||
Get
|
||||
Return Errors.Count > 0
|
||||
@@ -34,16 +36,27 @@ Namespace Documents
|
||||
|
||||
Public ReadOnly Property Errors As List(Of String)
|
||||
Get
|
||||
Dim oRowErrors = Rows.SelectMany(Function(row) row.Errors).ToList()
|
||||
Dim oDocumentErrors As List(Of String) = GetDocumentErrors().
|
||||
Dim oRowErrors = Rows.
|
||||
SelectMany(Function(row) row.Errors, Function(row, err) err.ToString).
|
||||
ToList()
|
||||
|
||||
Dim oDocumentErrors As List(Of String) = DocumentErrors.
|
||||
Select(Function(err) err.ToString()).
|
||||
ToList()
|
||||
|
||||
Return oDocumentErrors.
|
||||
Concat(oRowErrors).
|
||||
ToList()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub AddDocumentError(pDocumentError As DocumentErrorType, pMessage As String)
|
||||
DocumentErrors.Add(New DocumentError With {
|
||||
.Type = pDocumentError,
|
||||
.Message = pMessage
|
||||
})
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property MandatorId As String
|
||||
Get
|
||||
Return Mandator?.Id
|
||||
@@ -84,19 +97,12 @@ Namespace Documents
|
||||
End Function
|
||||
|
||||
Public Overrides Function Equals(obj As Object) As Boolean
|
||||
Return FullName = DirectCast(obj, Document).FullName
|
||||
End Function
|
||||
|
||||
Private Function GetDocumentErrors() As List(Of DocumentError)
|
||||
Dim oErrors As New List(Of DocumentError)
|
||||
|
||||
If Mandator Is Nothing Then
|
||||
oErrors.Add(DocumentError.MandatorNotFound)
|
||||
If obj Is Nothing Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return oErrors
|
||||
Return FullName = DirectCast(obj, Document).FullName
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -1,5 +1,6 @@
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports MultiTool.Common.Templates
|
||||
|
||||
Namespace Documents
|
||||
@@ -7,12 +8,12 @@ Namespace Documents
|
||||
Inherits BaseClass
|
||||
|
||||
Private ReadOnly Template As Template
|
||||
Private ReadOnly FileEx As DigitalData.Modules.Filesystem.File
|
||||
Private ReadOnly FileEx As FilesystemEx
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pTemplate As Template)
|
||||
MyBase.New(pLogConfig)
|
||||
Template = pTemplate
|
||||
FileEx = New DigitalData.Modules.Filesystem.File(LogConfig)
|
||||
FileEx = New FilesystemEx(LogConfig)
|
||||
End Sub
|
||||
|
||||
Public Function CleanImportedDocuments(pDocuments As List(Of Document)) As Boolean
|
||||
|
||||
@@ -7,6 +7,9 @@ Imports MultiTool.Common.Templates
|
||||
Imports MultiTool.Common.Winline
|
||||
Imports MultiTool.Common.Winline.Entities
|
||||
Imports MultiTool.Common.Constants
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DevExpress.Utils.CommonDialogs
|
||||
Imports DigitalData.Modules.Base
|
||||
|
||||
Namespace Documents
|
||||
Public Class DocumentLoader
|
||||
@@ -16,6 +19,7 @@ Namespace Documents
|
||||
Private ReadOnly MappingConfig As MappingConfig
|
||||
Private ReadOnly TemplateConfig As TemplateConfig
|
||||
Private ReadOnly ApplicationConfig As Config
|
||||
Private ReadOnly Patterns As Patterns
|
||||
|
||||
Public Property Files As New List(Of Document)
|
||||
|
||||
@@ -45,12 +49,13 @@ Namespace Documents
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pWinline As WinlineData, pMappingConfig As MappingConfig, pTemplateConfig As TemplateConfig, pApplicationConfig As Config)
|
||||
MyBase.New(pLogConfig)
|
||||
Public Sub New(pLogConfig As LogConfig, pWinline As WinlineData, pDatabase As MSSQLServer, pMappingConfig As MappingConfig, pTemplateConfig As TemplateConfig, pGeneralConfig As GeneralConfig, pApplicationConfig As Config)
|
||||
MyBase.New(pLogConfig, pDatabase)
|
||||
Winline = pWinline
|
||||
MappingConfig = pMappingConfig
|
||||
TemplateConfig = pTemplateConfig
|
||||
ApplicationConfig = pApplicationConfig
|
||||
Patterns = New Patterns(pLogConfig, pGeneralConfig)
|
||||
End Sub
|
||||
|
||||
Public Async Function LoadFiles(pTemplate As Template, pMandator As Mandator) As Task(Of Boolean)
|
||||
@@ -65,22 +70,13 @@ Namespace Documents
|
||||
Logger.Debug("Found [{0}] files in directory [{1}]", oFiles.Count, oDirectory)
|
||||
|
||||
For Each oFile In oFiles
|
||||
Try
|
||||
Dim oDocument = Await LoadFile(oFile, pTemplate, pMandator)
|
||||
Files.Add(oDocument)
|
||||
FilesLoaded = Files.Count
|
||||
Logger.Info("Loading file [{0}]", oFile.Name)
|
||||
Dim oDocument = Await LoadFile(oFile, pTemplate, pMandator)
|
||||
Files.Add(oDocument)
|
||||
FilesLoaded = Files.Count
|
||||
|
||||
Dim oInfo As New FileLoadInfo(FilesTotal, FilesLoaded)
|
||||
RaiseEvent FileLoadComplete(Me, oInfo)
|
||||
|
||||
Catch ex As MissingAttributeException
|
||||
Logger.Error(ex)
|
||||
Throw New DocumentLoaderException($"Missing Attribute '{ex.Message}' in File '{oFile.Name}'")
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
End Try
|
||||
Dim oInfo As New FileLoadInfo(FilesTotal, FilesLoaded)
|
||||
RaiseEvent FileLoadComplete(Me, oInfo)
|
||||
Next
|
||||
|
||||
Return True
|
||||
@@ -93,20 +89,52 @@ Namespace Documents
|
||||
End Function
|
||||
|
||||
Public Async Function LoadFile(pFileInfo As FileInfo, pTemplate As Template, pMandator As Mandator) As Task(Of Document)
|
||||
Dim oFileList As New List(Of FileInfo) From {pFileInfo}
|
||||
Logger.Info("Loading file [{0}]", pFileInfo.Name)
|
||||
Logger.Debug("Creating new Document object for file [{0}]", pFileInfo.Name)
|
||||
Dim oDocument As New Document With {
|
||||
.File = pFileInfo,
|
||||
.Schema = pTemplate
|
||||
}
|
||||
|
||||
Try
|
||||
Return Await oFileList.
|
||||
Select(AddressOf WrapFileInfo).
|
||||
Select(Function(d) IncludeSchema(d, pTemplate)).
|
||||
Select(Function(d) LoadDocumentData(d, pTemplate, TemplateConfig)).
|
||||
Select(Async Function(d) Await MatchDataFromWinLine(d, Winline.Mandators, pMandator, pTemplate)).
|
||||
SingleOrDefault()
|
||||
oDocument = LoadDocumentData(oDocument, pTemplate, TemplateConfig)
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
|
||||
End Try
|
||||
|
||||
Try
|
||||
oDocument = Await MatchDataFromWinLine(oDocument, Winline.Mandators, pMandator, pTemplate)
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
|
||||
End Try
|
||||
|
||||
Try
|
||||
oDocument = MarkRequiredFields(oDocument)
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
|
||||
End Try
|
||||
|
||||
Return oDocument
|
||||
End Function
|
||||
|
||||
Public Function MarkRequiredFields(pDocument As Document) As Document
|
||||
For Each oRow In pDocument.Rows
|
||||
For Each oField In oRow.Fields
|
||||
If oField.Value.Final = String.Empty And oField.Value.IsRequired Then
|
||||
oField.Value.AddFieldError(FieldErrorType.MissingValue, $"Attribut '{oField.Key}' ist ein Pflichtfeld, wurde aber nicht gefüllt.")
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
Return pDocument
|
||||
End Function
|
||||
|
||||
Public Sub ReplaceDocument(pDocument As Document)
|
||||
@@ -116,6 +144,7 @@ Namespace Documents
|
||||
|
||||
|
||||
Private Function IncludeSchema(pDocument As Document, pTemplate As Template) As Document
|
||||
Logger.Debug("Adding schema to Document object.")
|
||||
pDocument.Schema = pTemplate
|
||||
Return pDocument
|
||||
End Function
|
||||
@@ -133,32 +162,47 @@ Namespace Documents
|
||||
''' </MESOWebService>
|
||||
''' </example>
|
||||
Private Function LoadDocumentData(pDocument As Document, pTemplate As Template, pTemplateConfig As TemplateConfig) As Document
|
||||
Dim oText As String = IO.File.ReadAllText(pDocument.FullName)
|
||||
Dim oDoc = XDocument.Parse(oText)
|
||||
Logger.Debug("Loading file contents")
|
||||
|
||||
Dim oText As String
|
||||
Dim oDoc As XDocument
|
||||
|
||||
Try
|
||||
Logger.Debug("Loading file from fs..")
|
||||
oText = IO.File.ReadAllText(pDocument.FullName)
|
||||
|
||||
Logger.Debug("Parsing file..")
|
||||
oDoc = XDocument.Parse(oText)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
End Try
|
||||
|
||||
Logger.Debug("File Loaded.")
|
||||
|
||||
Dim oRootElement As XElement = XmlData.GetElement(oDoc, "MESOWebService")
|
||||
If oRootElement Is Nothing Then
|
||||
Throw New MalformedXmlException("Datei enthält kein MESOWebService-Element")
|
||||
pDocument.AddDocumentError(DocumentErrorType.MissingXmlAttribute, "Datei enthält kein MESOWebService-Attribut")
|
||||
End If
|
||||
|
||||
Dim oTemplateName = XmlData.GetElementAttribute(oRootElement, "Template")
|
||||
If oTemplateName Is Nothing Then
|
||||
Throw New MalformedXmlException("Datei enthält kein Template-Attribut")
|
||||
pDocument.AddDocumentError(DocumentErrorType.MissingXmlAttribute, "Datei enthält kein Template-Attribut")
|
||||
End If
|
||||
|
||||
Dim oTemplateType = XmlData.GetElementAttribute(oRootElement, "TemplateType")
|
||||
If oTemplateType Is Nothing Then
|
||||
Throw New MalformedXmlException("Datei enthält kein TemplateType-Attribut")
|
||||
pDocument.AddDocumentError(DocumentErrorType.MissingXmlAttribute, "Datei enthält kein TemplateType-Attribut")
|
||||
End If
|
||||
|
||||
Dim oOption = XmlData.GetElementAttribute(oRootElement, "option")
|
||||
If oOption Is Nothing Then
|
||||
Throw New MalformedXmlException("Datei enthält kein option-Attribut")
|
||||
pDocument.AddDocumentError(DocumentErrorType.MissingXmlAttribute, "Datei enthält kein option-Attribut")
|
||||
End If
|
||||
|
||||
Dim oPrintVoucher = XmlData.GetElementAttribute(oRootElement, "printVoucher")
|
||||
If oPrintVoucher Is Nothing Then
|
||||
Throw New MalformedXmlException("Datei enthält kein printVoucher-Attribut")
|
||||
pDocument.AddDocumentError(DocumentErrorType.MissingXmlAttribute, "Datei enthält kein printVoucher-Attribut")
|
||||
End If
|
||||
|
||||
' The first level of Elements are the document Rows
|
||||
@@ -181,40 +225,43 @@ Namespace Documents
|
||||
Where(Function(t) t.Name = oTopLevelElement.Name).
|
||||
FirstOrDefault()
|
||||
|
||||
Logger.Debug("Creating fields from [{0}] columns for Table [{1}]", oTable.Columns.Count, oTable.Name)
|
||||
|
||||
For Each oColumn In oTable.Columns
|
||||
Dim oSubElement = oSubElements.
|
||||
Where(Function(e) e.Name = oColumn.Name).
|
||||
SingleOrDefault()
|
||||
Dim oQuery = oSubElements.Where(Function(e) e.Name = oColumn.Name)
|
||||
Dim oElementCount = oQuery.Count()
|
||||
Dim oSubElement = oQuery.FirstOrDefault()
|
||||
|
||||
If oElementCount > 1 Then
|
||||
Logger.Warn("Found [{0}] elements for column [{1}]. Using first occurrence.")
|
||||
End If
|
||||
|
||||
If oSubElement IsNot Nothing Then
|
||||
Dim oRequired = oColumn.IsRequired
|
||||
Dim oValue = oSubElement.Value.Trim()
|
||||
|
||||
Logger.Debug("Creating existing field from Element: [{0}]", oSubElement.Name.ToString)
|
||||
|
||||
' TODO: Needed when we have time for date times
|
||||
'If oTemplateField.DataType = Constants.ColumnType.Date Then
|
||||
' Dim oDate = Date.ParseExact(oValue, "yyyy-MM-dd", CultureInfo.InvariantCulture)
|
||||
' oValue = oDate.ToString("d")
|
||||
'End If
|
||||
|
||||
oFields.Add(oSubElement.Name.ToString, New DocumentRow.FieldValue With {
|
||||
.Original = oValue,
|
||||
.Final = oValue,
|
||||
.DataType = oColumn.DataType,
|
||||
.IsRequired = oRequired,
|
||||
.IsVirtual = oColumn.Config.IsVirtual,
|
||||
.SortKey = oColumnSortKey
|
||||
})
|
||||
Dim oFieldValue = GetFieldValueFromColumn(oColumn, oColumnSortKey)
|
||||
oFieldValue.SetOriginalValue(oValue)
|
||||
|
||||
oFields.Add(oSubElement.Name.ToString, oFieldValue)
|
||||
Else
|
||||
Dim oColumnError = FieldError.None
|
||||
Logger.Debug("Creating new field from Configuration: [{0}]", oColumn.Name)
|
||||
|
||||
Dim oFieldValue = GetFieldValueFromColumn(oColumn, oColumnSortKey)
|
||||
|
||||
If oColumn.Config?.IsRequired Then
|
||||
oColumnError = FieldError.MissingValue
|
||||
oFieldValue.AddFieldError(FieldErrorType.MissingValue, $"Attribut {oSubElement.Name} wird benötigt, ist aber nicht gefüllt.")
|
||||
End If
|
||||
|
||||
oFields.Add(oColumn.Name, New DocumentRow.FieldValue With {
|
||||
.[Error] = oColumnError,
|
||||
.SortKey = oColumnSortKey,
|
||||
.IsVirtual = oColumn.Config.IsVirtual
|
||||
})
|
||||
oFields.Add(oColumn.Name, oFieldValue)
|
||||
End If
|
||||
|
||||
oColumnSortKey += 1
|
||||
@@ -241,6 +288,16 @@ Namespace Documents
|
||||
Return pDocument
|
||||
End Function
|
||||
|
||||
Public Function GetFieldValueFromColumn(pColumn As Template.Column, pSortKey As Integer) As DocumentRow.FieldValue
|
||||
Return New DocumentRow.FieldValue(LogConfig) With {
|
||||
.DataType = pColumn.DataType,
|
||||
.IsRequired = pColumn.IsRequired,
|
||||
.IsVirtual = pColumn.Config.IsVirtual,
|
||||
.PreferExternalValue = pColumn.Config.PreferExternalValue,
|
||||
.SortKey = pSortKey
|
||||
}
|
||||
End Function
|
||||
|
||||
|
||||
Private Async Function MatchDataFromWinLine(pDocument As Document, pMandators As List(Of Mandator), pMandator As Mandator, pTemplate As Template) As Task(Of Document)
|
||||
Dim oMandators As List(Of Mandator) = pMandators.
|
||||
@@ -260,38 +317,77 @@ Namespace Documents
|
||||
|
||||
If oMandator Is Nothing Then
|
||||
Logger.Warn("Mandator not found for File [{0}]", pDocument.File.Name)
|
||||
|
||||
' Without mandator, we just exit, life is meaningless.
|
||||
pDocument.AddDocumentError(DocumentErrorType.MandatorNotFound, "Mandant nicht gefunden. Verarbeitung wurde abgebrochen.")
|
||||
Else
|
||||
' Set mandator befor applying any functions that depend on a valid mandator
|
||||
pDocument.Mandator = oMandator
|
||||
|
||||
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {
|
||||
.RunningFunction = "Winline-Funktionen"
|
||||
})
|
||||
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {.RunningFunction = "Winline-Funktionen"})
|
||||
|
||||
pDocument = ApplyDefinedItemFunctionsForImport(pDocument, oMandator, pTemplate)
|
||||
pDocument = Await ApplyDefinedItemFunctionsForImportAsync(pDocument, oMandator, pTemplate)
|
||||
pDocument = ApplyDynamicItemFunctionsForImport(pDocument, oMandator)
|
||||
|
||||
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {
|
||||
.RunningFunction = "Preis-Funktionen"
|
||||
})
|
||||
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {.RunningFunction = "Preis-Funktionen"})
|
||||
|
||||
If ApplicationConfig.AutomaticPriceCalculation = True Then
|
||||
' These functions will only be applied if the document does not have errors
|
||||
pDocument = Await MaybeApplyPriceFunctions(pDocument, oMandator, pTemplate)
|
||||
End If
|
||||
|
||||
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {
|
||||
.RunningFunction = "Feld-Funktionen"
|
||||
})
|
||||
RaiseEvent FileLoadProgress(Me, New FileLoadProgressInfo(FilesTotal, FilesLoaded) With {.RunningFunction = "Feld-Funktionen"})
|
||||
|
||||
|
||||
pDocument = ApplySQLFunctionForImport(pDocument, TemplateConfig.SqlItems)
|
||||
|
||||
' This function needs to be the last one because
|
||||
' it can relate to any previously set value
|
||||
ApplyFieldFunctionForImport(pDocument, oMandator, pTemplate)
|
||||
pDocument = ApplyFieldFunctionForImport(pDocument, oMandator, pTemplate)
|
||||
End If
|
||||
|
||||
Return pDocument
|
||||
End Function
|
||||
|
||||
Private Function ApplySQLFunctionForImport(pDocument As Document, pSQLConfig As List(Of FieldConfig)) As Document
|
||||
For Each oSQLConfigItem In pSQLConfig
|
||||
For Each oFunction In oSQLConfigItem.Functions
|
||||
|
||||
If Not oFunction.Name = FUNCTION_SQL Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
' FieldList is a list of fields that will be changed
|
||||
' Example: Setting SQL for Article StorageLocation will invoke the sql for each row
|
||||
Dim oRowList = pDocument.Rows.
|
||||
Where(Function(row) row.Fields.Any(Function(field) field.Key = oSQLConfigItem.Name)).
|
||||
ToList()
|
||||
|
||||
For Each oRow As DocumentRow In oRowList
|
||||
|
||||
Dim oSQL = oFunction.Params
|
||||
Dim oField = oRow.Fields.
|
||||
Where(Function(field) field.Key = oSQLConfigItem.Name).
|
||||
SingleOrDefault()
|
||||
|
||||
oSQL = Patterns.ReplaceForImport(pDocument, oRow, oSQL)
|
||||
|
||||
Dim oValue = Database.GetScalarValue(oSQL)
|
||||
|
||||
If oValue IsNot Nothing Then
|
||||
oField.Value.SetExternalValue(oValue)
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
Next
|
||||
|
||||
Next
|
||||
|
||||
Return pDocument
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Apply price calculation to the documents products
|
||||
'''
|
||||
@@ -300,6 +396,7 @@ Namespace Documents
|
||||
''' </summary>
|
||||
Public Async Function MaybeApplyPriceFunctions(pDocument As Document, pMandator As Mandator, pTemplate As Template) As Task(Of Document)
|
||||
If pDocument.HasErrors Then
|
||||
pDocument.AddDocumentError(DocumentErrorType.PriceNotCalculated, "Der Preis konnte für mindestens eine Zeile nicht ermittelt werden, weil es noch Fehler im Dokument gibt")
|
||||
Return pDocument
|
||||
End If
|
||||
|
||||
@@ -316,24 +413,34 @@ Namespace Documents
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim oFunctionName = oColumn.Config.FunctionName
|
||||
Dim oFunctionParams = oColumn.Config.FunctionParams
|
||||
For Each oFunction As FieldConfig.ColumnFunction In oColumn.Config.Functions
|
||||
|
||||
Logger.Debug("Running Function: [{0}]", oFunctionName)
|
||||
Logger.Debug("With Parameters: [{0}]", oFunctionParams)
|
||||
Dim oFunctionName = oFunction.Name
|
||||
Dim oFunctionParams = oFunction.Params
|
||||
|
||||
Dim oParamsDict = ParseFunctionParamsAsDict(oFunctionParams)
|
||||
|
||||
If oFunctionName = Constants.FUNCTION_PRICE Then
|
||||
Await SetPrice(oRow, oField.Key, oParamsDict, pDocument, pMandator, pTemplate)
|
||||
End If
|
||||
|
||||
If oFunctionName = String.Empty Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Logger.Debug("Running Function: [{0}]", oFunctionName)
|
||||
Logger.Debug("With Parameters: [{0}]", oFunctionParams)
|
||||
|
||||
|
||||
Dim oParamsDict = Parameters.Parse(oFunctionParams)
|
||||
|
||||
If oFunctionName = Constants.FUNCTION_PRICE Then
|
||||
Await SetPrice(oRow, oField.Key, oParamsDict, pDocument, pMandator, pTemplate)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Next
|
||||
|
||||
Return pDocument
|
||||
End Function
|
||||
|
||||
Private Function ApplyDefinedItemFunctionsForImport(pDocument As Document, pMandator As Mandator, pTemplate As Template) As Document
|
||||
Private Async Function ApplyDefinedItemFunctionsForImportAsync(pDocument As Document, pMandator As Mandator, pTemplate As Template) As Task(Of Document)
|
||||
For Each oRow As DocumentRow In pDocument.Rows
|
||||
Dim oTable = pTemplate.Tables.Where(Function(table) table.Name = oRow.TableName).SingleOrDefault()
|
||||
|
||||
@@ -342,23 +449,48 @@ Namespace Documents
|
||||
Exit For
|
||||
End If
|
||||
|
||||
Dim oColumn = oTable.Columns.Where(Function(c) c.Name = oField.Key).SingleOrDefault()
|
||||
Dim oItemName As String = oField.Key
|
||||
|
||||
Dim oColumn = oTable.Columns.Where(Function(c) c.Name = oItemName).SingleOrDefault()
|
||||
If oColumn Is Nothing Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim oFunctionName = oColumn.Config.FunctionName
|
||||
Dim oFunctionParams = oColumn.Config.FunctionParams
|
||||
Dim oParamsDict = ParseFunctionParamsAsDict(oFunctionParams)
|
||||
For Each oFunction As FieldConfig.ColumnFunction In oColumn.Config.Functions
|
||||
|
||||
If oFunctionName = Constants.FUNCTION_GLN Then
|
||||
SetAccountByGLN(oRow, pMandator, oField.Key, Nothing, oParamsDict)
|
||||
End If
|
||||
Dim oFunctionName = oFunction.Name
|
||||
Dim oFunctionParams = oFunction.Params
|
||||
|
||||
If oFunctionName = Constants.FUNCTION_EAN Then
|
||||
SetArticleByEAN(oRow, pMandator, oField.Key)
|
||||
End If
|
||||
' The code below needs a defined function
|
||||
If oFunctionName = String.Empty Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim oParamsDict = Parameters.Parse(oFunctionParams)
|
||||
|
||||
' The main identifier will be checked for String.empty and not required.
|
||||
' This makes sure that optional fields do not generate errors.
|
||||
Dim oIdentifier As DocumentRow.FieldValue = oRow.Fields.GetOrDefault(oItemName)
|
||||
If oIdentifier.Original = String.Empty And oIdentifier.IsRequired = False Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Select Case oFunctionName
|
||||
Case FUNCTION_GLN
|
||||
SetAccountByGLN(oRow, pMandator, oItemName, Nothing, oParamsDict)
|
||||
|
||||
Case FUNCTION_EAN
|
||||
SetArticleByEAN(oRow, pMandator, oItemName)
|
||||
|
||||
Case FUNCTION_RUNNINGNUMBER
|
||||
Await SetVersionedRunningNumber(pDocument, oRow, pMandator, oItemName, oParamsDict)
|
||||
|
||||
Case FUNCTION_ADDRESS
|
||||
Await SetAddressByAccountNumber(pDocument, oRow, pMandator, oItemName, oParamsDict)
|
||||
|
||||
End Select
|
||||
|
||||
Next
|
||||
|
||||
Next
|
||||
Next
|
||||
@@ -384,48 +516,53 @@ Namespace Documents
|
||||
|
||||
End If
|
||||
|
||||
Dim oFunctionName = oColumn.Config.FunctionName
|
||||
Dim oFunctionParams = oColumn.Config.FunctionParams
|
||||
Dim oParamsDict = ParseFunctionParamsAsDict(oFunctionParams)
|
||||
For Each oFunction As FieldConfig.ColumnFunction In oColumn.Config.Functions
|
||||
|
||||
If oFunctionName = Constants.FUNCTION_FIELD Then
|
||||
Try
|
||||
Logger.Debug("Applying function FIELD to field [{0}]", oField.Key)
|
||||
Dim oFunctionName = oFunction.Name
|
||||
Dim oFunctionParams = oFunction.Params
|
||||
Dim oParamsDict = Parameters.Parse(oFunctionParams)
|
||||
|
||||
Dim oParam = oParamsDict.FirstOrDefault()
|
||||
If oFunctionName = FUNCTION_FIELD Then
|
||||
Try
|
||||
Logger.Debug("Applying function FIELD to field [{0}]", oField.Key)
|
||||
|
||||
If IsNothing(oParam) Then
|
||||
Logger.Warn("Function FIELD needs exactly one parameter. Skipping")
|
||||
Continue For
|
||||
Dim oParam = oParamsDict.FirstOrDefault()
|
||||
|
||||
End If
|
||||
If IsNothing(oParam) Then
|
||||
Logger.Warn("Function FIELD needs exactly one parameter. Skipping")
|
||||
Continue For
|
||||
|
||||
Dim oFieldName = oParam.Key
|
||||
Dim oSubKey = oParam.Value
|
||||
End If
|
||||
|
||||
Dim oReferencedField = oRow.Fields.
|
||||
Dim oFieldName = oParam.Key
|
||||
Dim oSubKey = oParam.Value
|
||||
|
||||
Dim oReferencedField = oRow.Fields.
|
||||
Where(Function(field) field.Key = oFieldName).
|
||||
FirstOrDefault()
|
||||
|
||||
If IsNothing(oReferencedField) = False Then
|
||||
Dim oRawValue = oReferencedField.Value?.GetValue(oSubKey)
|
||||
Dim oValue As String = Utils.NotNull(oRawValue, String.Empty)
|
||||
If IsNothing(oReferencedField) = False Then
|
||||
Dim oRawValue = oReferencedField.Value?.GetValue(oSubKey)
|
||||
Dim oValue As String = ObjectEx.NotNull(oRawValue, String.Empty)
|
||||
|
||||
If oValue <> String.Empty Then
|
||||
oField.Value.SetExternalValue(oValue)
|
||||
End If
|
||||
|
||||
Else
|
||||
Logger.Warn("Referenced Field [{0}] was not found. Skipping.", oFieldName)
|
||||
Continue For
|
||||
|
||||
If oValue <> String.Empty Then
|
||||
oField.Value.Final = oValue
|
||||
End If
|
||||
|
||||
Else
|
||||
Logger.Warn("Referenced Field [{0}] was not found. Skipping.", oFieldName)
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Function FIELD could not be applied to field [{0}]. Skipping.", oField.Key)
|
||||
Continue For
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Function FIELD could not be applied to field [{0}]. Skipping.", oField.Key)
|
||||
Continue For
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
@@ -459,9 +596,7 @@ Namespace Documents
|
||||
pDocument.Rows.
|
||||
SelectMany(Function(row) row.Fields).
|
||||
Where(Function(field) field.Key = oMapping.DestinationItem).
|
||||
SetValue(Sub(field)
|
||||
field.Value.Final = oMapping.DestinationValue
|
||||
End Sub)
|
||||
SetValue(Sub(field) field.Value.SetExternalValue(oMapping.DestinationValue))
|
||||
|
||||
Else
|
||||
' don't do anything
|
||||
@@ -472,12 +607,12 @@ Namespace Documents
|
||||
Return pDocument
|
||||
End Function
|
||||
|
||||
Private Async Function SetPrice(pRow As DocumentRow, pPriceField As String, oFieldMap As Dictionary(Of String, String), pDocument As Document, pMandator As Mandator, pTemplate As Template) As Task
|
||||
Private Async Function SetPrice(pRow As DocumentRow, pPriceField As String, pParamMap As Dictionary(Of String, String), pDocument As Document, pMandator As Mandator, pTemplate As Template) As Task
|
||||
Dim oPriceItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(pPriceField)
|
||||
|
||||
' These fields are fetched from the current row
|
||||
Const PARAMETER_ARTICLE = "Article"
|
||||
Dim oArticleNumberField As String = oFieldMap.GetOrDefault(PARAMETER_ARTICLE, Nothing)
|
||||
Dim oArticleNumberField As String = pParamMap.GetOrDefault(PARAMETER_ARTICLE, Nothing)
|
||||
If oArticleNumberField Is Nothing Then
|
||||
Logger.Warn("Parameter '{0}' not found for Function PRICE", PARAMETER_ARTICLE)
|
||||
End If
|
||||
@@ -488,7 +623,7 @@ Namespace Documents
|
||||
Dim oArticleNumber As String = pRow.Fields.Item(oArticleNumberField).Final
|
||||
|
||||
Const PARAMETER_QUANTITY = "Quantity"
|
||||
Dim oQuantityField As String = oFieldMap.GetOrDefault(PARAMETER_QUANTITY, Nothing)
|
||||
Dim oQuantityField As String = pParamMap.GetOrDefault(PARAMETER_QUANTITY, Nothing)
|
||||
If oQuantityField Is Nothing Then
|
||||
Logger.Warn("Parameter '{0}' not found for Function PRICE", PARAMETER_QUANTITY)
|
||||
End If
|
||||
@@ -499,13 +634,13 @@ Namespace Documents
|
||||
End If
|
||||
|
||||
' These fields a fetched from the head row, ie. the first row
|
||||
Dim oAccountNumberField As String = oFieldMap.GetOrDefault("Account", Nothing)
|
||||
Dim oAccountNumberField As String = pParamMap.GetOrDefault("Account", Nothing)
|
||||
Dim oAccountNumber = pDocument.GetFieldValue(oAccountNumberField)
|
||||
|
||||
Dim oDocumentDateField As String = oFieldMap.GetOrDefault("DocumentDate", Nothing)
|
||||
Dim oDocumentDateField As String = pParamMap.GetOrDefault("DocumentDate", Nothing)
|
||||
Dim oDocumentDate = pDocument.GetFieldValue(oDocumentDateField)
|
||||
|
||||
Dim oDocumentKindField As String = oFieldMap.GetOrDefault("DocumentKind", Nothing)
|
||||
Dim oDocumentKindField As String = pParamMap.GetOrDefault("DocumentKind", Nothing)
|
||||
Dim oDocumentKind As Integer = 0
|
||||
If Integer.TryParse(pDocument.GetFieldValue(oDocumentKindField), oDocumentKind) = False Then
|
||||
Logger.Warn("Value for parameter DocumentKind could not be parsed. Setting to 0.")
|
||||
@@ -516,86 +651,165 @@ Namespace Documents
|
||||
|
||||
' TODO: This function should not be hardcoded, but be replaced with virtual field or something..
|
||||
' It is related to customer SCHAUM and nothing general
|
||||
Dim oWaitingDays As Integer = Await Winline.TryGetWaitingDays(oDocumentKind, pMandator)
|
||||
Dim oWaitingDays As Integer = Await Winline.TryGetWaitingDaysAsync(oDocumentKind, pMandator)
|
||||
' END TODO
|
||||
|
||||
Dim oArticlePrice As Double = Await Winline.TryGetArticlePrice(oArticleNumber, oAccountNumber, oQuantity, oDocumentDate, pMandator, pTemplate, oWaitingDays)
|
||||
Dim oArticlePrice As Double = Await Winline.TryGetArticlePriceAsync(oArticleNumber, oAccountNumber, oQuantity, oDocumentDate, pMandator, pTemplate, oWaitingDays)
|
||||
|
||||
If oArticlePrice > 0 Then
|
||||
oPriceItem.External = oArticlePrice
|
||||
oPriceItem.Final = oArticlePrice
|
||||
oPriceItem.SetExternalValue(oArticlePrice)
|
||||
Logger.Info("Price for Item [{0}] set to [{1}]", pPriceField, oArticlePrice)
|
||||
Else
|
||||
Logger.Warn("Price for Item [{0}] could not be found!", pPriceField)
|
||||
oPriceItem.AddFieldError(FieldErrorType.PriceNotCalculated, "Der Preis für diese Position konnte nicht ermittelt werden.")
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Sub SetArticleByEAN(pRow As DocumentRow, pMandator As Mandator, pArticleField As String)
|
||||
Dim oNumberItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(pArticleField)
|
||||
Dim oArticleNumber = Winline.TryGetArticleNumber(oNumberItem.Original, pMandator)
|
||||
If oArticleNumber IsNot Nothing Then
|
||||
oNumberItem.External = oArticleNumber
|
||||
oNumberItem.Final = oArticleNumber
|
||||
Else
|
||||
oNumberItem.Error = FieldError.ArticleNotFound
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SetAccountByGLN(oRow As DocumentRow, pMandator As Mandator, pNumberField As String, pNameField As String, pParams As Dictionary(Of String, String))
|
||||
' Try to read the Account number (which is a GLN really) and account Name
|
||||
Dim oNumberItem As DocumentRow.FieldValue = oRow.Fields.GetOrDefault(pNumberField)
|
||||
Dim oNameItem As DocumentRow.FieldValue = oRow.Fields.GetOrDefault(pNameField)
|
||||
Dim oContainsAccountName As Boolean = Not IsNothing(oNameItem)
|
||||
|
||||
If oNumberItem Is Nothing Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' Try to find an account that matches the GLN
|
||||
Dim oAlternateField = pParams.GetOrDefault("AltField", String.Empty)
|
||||
Dim oAccount = Winline.TryGetAccount(oNumberItem.Original, pMandator, "c260", oAlternateField)
|
||||
Dim oArticleNumber = Winline.TryGetArticleNumber(oNumberItem.Original, pMandator)
|
||||
|
||||
' If an account was found, set it for External and Final value
|
||||
If oAccount IsNot Nothing Then
|
||||
oNumberItem.External = oAccount.Id
|
||||
oNumberItem.Final = oAccount.Id
|
||||
|
||||
If oContainsAccountName Then
|
||||
oNameItem.External = oAccount.Name
|
||||
oNameItem.Final = oAccount.Name
|
||||
Else
|
||||
' TODO: What to to if name field is missing or not set?
|
||||
'oRow.Fields.Add(pNameField, New DocumentRow.FieldValue() With {
|
||||
' .External = oAccount.Name,
|
||||
' .Final = oAccount.Name
|
||||
'})
|
||||
End If
|
||||
If oArticleNumber IsNot Nothing Then
|
||||
oNumberItem.SetExternalValue(oArticleNumber)
|
||||
Logger.Info("EAN [{0}] resolved to ArticleNumber [{1}]", oNumberItem.Original, oArticleNumber)
|
||||
Else
|
||||
' If no account was found and the field is required,
|
||||
' mark it as error. Otherwise, do nothing.
|
||||
If oNumberItem.IsRequired Then
|
||||
oNumberItem.Error = FieldError.AccountNotFound
|
||||
End If
|
||||
oNumberItem.AddFieldError(FieldErrorType.ArticleNotFound, $"EAN in Attribut '{pArticleField}' konnte nicht aufgelöst werden.")
|
||||
Logger.Warn("EAN [{0}] could not be resolved ArticleNumber", oNumberItem.Original)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function WrapFileInfo(pFileInfo As FileInfo) As Document
|
||||
Return New Document With {.File = pFileInfo}
|
||||
Private Sub SetAccountByGLN(oRow As DocumentRow, pMandator As Mandator, pNumberField As String, pNameField As String, pParams As Dictionary(Of String, String))
|
||||
Try
|
||||
' Try to read the Account number (which is a GLN really) and account Name
|
||||
Dim oNumberItem As DocumentRow.FieldValue = oRow.Fields.GetOrDefault(pNumberField)
|
||||
Dim oNameItem As DocumentRow.FieldValue = oRow.Fields.GetOrDefault(pNameField)
|
||||
Dim oContainsAccountName As Boolean = Not IsNothing(oNameItem)
|
||||
|
||||
If oNumberItem Is Nothing Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' Try to find an account that matches the GLN
|
||||
Dim oAlternateField As String = pParams.GetOrDefault("AltField", String.Empty)
|
||||
Dim oAccount As Account = Winline.TryGetAccount(oNumberItem.Original, pMandator, "c260", oAlternateField)
|
||||
|
||||
' If an account was found, set it for External and Final value
|
||||
If oAccount IsNot Nothing Then
|
||||
oNumberItem.SetExternalValue(oAccount.Id)
|
||||
|
||||
If oContainsAccountName Then
|
||||
oNameItem.SetExternalValue(oAccount.Name)
|
||||
Else
|
||||
' TODO: What to to if name field is missing or not set?
|
||||
'oRow.Fields.Add(pNameField, New DocumentRow.FieldValue() With {
|
||||
' .External = oAccount.Name,
|
||||
' .Final = oAccount.Name
|
||||
'})
|
||||
End If
|
||||
Else
|
||||
' If no account was found, mark it as error.
|
||||
oNumberItem.AddFieldError(FieldErrorType.AccountNotFound, $"GLN in Attribut '{pNumberField}' konnte nicht aufgelöst werden.")
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Async Function SetVersionedRunningNumber(pDocument As Document, pRow As DocumentRow, pMandator As Mandator, pNumberField As String, pParams As Dictionary(Of String, String)) As Task
|
||||
Try
|
||||
Const PARAMETER_ACCOUNT = "Account"
|
||||
Dim oAccountField As String = pParams.GetOrDefault(PARAMETER_ACCOUNT, Nothing)
|
||||
If oAccountField Is Nothing Then
|
||||
Logger.Warn("Parameter '{0}' not found for Function RUNNINGNUMBER", PARAMETER_ACCOUNT)
|
||||
End If
|
||||
|
||||
Dim oRunningNumberItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(pNumberField)
|
||||
Dim oRunningNumber = oRunningNumberItem.Original
|
||||
|
||||
' We use the Final value to work with the actual account number, not the GLN
|
||||
Dim oAccountNumberItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(oAccountField)
|
||||
Dim oAccountNumber = oAccountNumberItem.Final
|
||||
|
||||
Dim oVersionedNumber = Await Winline.GetVersionedRunningNumberAsync(pDocument, pMandator, oAccountNumber, oRunningNumber)
|
||||
|
||||
If oVersionedNumber <> oRunningNumber Then
|
||||
oRunningNumberItem.SetExternalValue(oVersionedNumber)
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function ParseFunctionParamsAsDict(pParams As String) As Dictionary(Of String, String)
|
||||
Dim oParamsDict As New Dictionary(Of String, String)
|
||||
Public Function SetAddressByAccountNumber(pDocument As Document, pRow As DocumentRow, pMandator As Mandator, pAccountField As String, pParams As Dictionary(Of String, String)) As Task
|
||||
Try
|
||||
Const PARAMETER_NAME = "Name"
|
||||
Const PARAMETER_STREET = "Street"
|
||||
Const PARAMETER_ZIP = "Zip"
|
||||
Const PARAMETER_CITY = "City"
|
||||
|
||||
If pParams <> String.Empty Then
|
||||
Dim oParamList = pParams.Split("|").ToList()
|
||||
For Each oParam In oParamList
|
||||
Dim oParamSplit = oParam.Split("=")
|
||||
oParamsDict.Add(oParamSplit(0), oParamSplit(1))
|
||||
Next
|
||||
End If
|
||||
|
||||
Return oParamsDict
|
||||
Dim oAccountNumberItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(pAccountField)
|
||||
Dim oAccountNumber = oAccountNumberItem.Final
|
||||
|
||||
Dim oNameField As String = pParams.GetOrDefault(PARAMETER_NAME, Nothing)
|
||||
Dim oNameFieldItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(oNameField)
|
||||
If oNameField Is Nothing Then
|
||||
Logger.Warn("Parameter '{0}' not found for Function ADDRESS", PARAMETER_NAME)
|
||||
oAccountNumberItem.AddFieldError(FieldErrorType.MissingParameter, $"Parameter '{PARAMETER_NAME}' wurde nicht gefüllt.")
|
||||
End If
|
||||
|
||||
Dim oStreetField As String = pParams.GetOrDefault(PARAMETER_STREET, Nothing)
|
||||
Dim oStreetFieldItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(oStreetField)
|
||||
If oStreetField Is Nothing Then
|
||||
Logger.Warn("Parameter '{0}' not found for Function ADDRESS", PARAMETER_STREET)
|
||||
oAccountNumberItem.AddFieldError(FieldErrorType.MissingParameter, $"Parameter '{PARAMETER_STREET}' wurde nicht gefüllt.")
|
||||
|
||||
End If
|
||||
|
||||
Dim oZipField As String = pParams.GetOrDefault(PARAMETER_ZIP, Nothing)
|
||||
Dim oZipFieldItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(oZipField)
|
||||
If oZipField Is Nothing Then
|
||||
Logger.Warn("Parameter '{0}' not found for Function ADDRESS", PARAMETER_ZIP)
|
||||
oAccountNumberItem.AddFieldError(FieldErrorType.MissingParameter, $"Parameter '{PARAMETER_ZIP}' wurde nicht gefüllt.")
|
||||
|
||||
End If
|
||||
|
||||
Dim oCityField As String = pParams.GetOrDefault(PARAMETER_CITY, Nothing)
|
||||
Dim oCityFieldItem As DocumentRow.FieldValue = pRow.Fields.GetOrDefault(oCityField)
|
||||
If oCityField Is Nothing Then
|
||||
Logger.Warn("Parameter '{0}' not found for Function ADDRESS", PARAMETER_CITY)
|
||||
oAccountNumberItem.AddFieldError(FieldErrorType.MissingParameter, $"Parameter '{PARAMETER_CITY}' wurde nicht gefüllt.")
|
||||
|
||||
End If
|
||||
|
||||
Dim oAccount = Winline.Accounts.Where(Function(a) a.Id = oAccountNumber And a.Mandator.Equals(pMandator)).SingleOrDefault()
|
||||
If oAccount Is Nothing Then
|
||||
Logger.Warn("Account with Id [{0}] in Mandator [{1}] could not be found.", oAccountNumber, pMandator.Id)
|
||||
End If
|
||||
|
||||
oNameFieldItem.SetExternalValue(oAccount.Name)
|
||||
oStreetFieldItem.SetExternalValue(oAccount.StreetName)
|
||||
oZipFieldItem.SetExternalValue(oAccount.ZipCode)
|
||||
oCityFieldItem.SetExternalValue(oAccount.CityName)
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
End Try
|
||||
|
||||
Return Task.CompletedTask
|
||||
End Function
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports MultiTool.Common.Constants
|
||||
|
||||
Namespace Documents
|
||||
@@ -35,11 +36,11 @@ Namespace Documents
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Errors As List(Of String)
|
||||
Public ReadOnly Property Errors As List(Of FieldError)
|
||||
Get
|
||||
Return Fields.
|
||||
Where(Function(f) f.Value.HasError).
|
||||
Select(Function(f) $"{f.Key} has Error: {f.Value.Error}").ToList()
|
||||
SelectMany(Function(f) f.Value.Errors).ToList()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -51,50 +52,56 @@ Namespace Documents
|
||||
Return SortKey.CompareTo(DirectCast(other, DocumentRow).SortKey)
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' TODO: Use this class to
|
||||
''' </summary>
|
||||
Public Class Field
|
||||
Public ReadOnly Property Name
|
||||
Public Property Value As FieldValue
|
||||
|
||||
Public Sub New(pName As String)
|
||||
Name = pName
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Public Class FieldValue
|
||||
Private _Final As String = ""
|
||||
Private _External As String = ""
|
||||
Private _Original As String = ""
|
||||
Private Logger As Logger
|
||||
|
||||
Public Property DataType As ColumnType = ColumnType.String
|
||||
Public Property [Error] As FieldError = FieldError.None
|
||||
|
||||
Public Sub New()
|
||||
Public Property Errors As New List(Of FieldError)
|
||||
|
||||
End Sub
|
||||
|
||||
Public Property Original As String
|
||||
Public ReadOnly 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
|
||||
Public ReadOnly 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
|
||||
Public ReadOnly 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 IsVirtual As Boolean = False
|
||||
Public Property PreferExternalValue As Boolean = True
|
||||
Public Property SortKey As Integer = 0
|
||||
|
||||
Public Function GetValue(pValueType) As String
|
||||
Public Sub New(pLogConfig As LogConfig)
|
||||
Logger = pLogConfig.GetLogger()
|
||||
End Sub
|
||||
|
||||
Public Function GetValue(pValueType As String) As String
|
||||
Select Case pValueType
|
||||
Case "Original"
|
||||
Return Original
|
||||
@@ -107,9 +114,53 @@ Namespace Documents
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Public Sub SetValue(pValueType As String, pValue As String)
|
||||
Select Case pValueType
|
||||
Case "Original"
|
||||
_Original = pValue
|
||||
Case "External"
|
||||
_External = pValue
|
||||
Case "Final"
|
||||
_Final = pValue
|
||||
Case Else
|
||||
' Noop
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Public Sub AddFieldError(pType As FieldErrorType, pMessage As String)
|
||||
Errors.Add(New FieldError() With {
|
||||
.Type = pType,
|
||||
.Message = pMessage
|
||||
})
|
||||
End Sub
|
||||
|
||||
Public Sub SetExternalValue(pValue As String)
|
||||
_External = pValue
|
||||
|
||||
' Set the external value as the final value, overriding the original / previous external value
|
||||
' if the external value should be preferred
|
||||
If PreferExternalValue = True Then
|
||||
Logger.Debug("Setting Final value to [{0}] because PreferExternalValue is True", pValue)
|
||||
_Final = pValue
|
||||
End If
|
||||
|
||||
' If there is no Original value (because the field is virtual),
|
||||
' set the external value as the final value regardless of the PreferExternalValue setting
|
||||
If _Original = String.Empty Then
|
||||
Logger.Debug("Setting Final value to [{0}] because Original value is empty", pValue)
|
||||
_Final = pValue
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub SetOriginalValue(pValue As String)
|
||||
_Original = pValue
|
||||
_Final = pValue
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property HasError As Boolean
|
||||
Get
|
||||
Return [Error] <> FieldError.None Or (IsRequired And Final = String.Empty)
|
||||
' Required check was moved to DocumentLoader
|
||||
Return Errors.Count > 0 'Or (IsRequired And Final = String.Empty)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
@@ -57,18 +57,12 @@
|
||||
MyBase.New(message)
|
||||
End Sub
|
||||
End Class
|
||||
Public Class NoMandatorException
|
||||
|
||||
Public Class LengthExceededException
|
||||
Inherits MultiToolException
|
||||
|
||||
Public Sub New(message As String)
|
||||
MyBase.New(message)
|
||||
End Sub
|
||||
End Class
|
||||
Public Class MalformedXmlException
|
||||
Inherits MultiToolException
|
||||
|
||||
Public Sub New(message As String)
|
||||
MyBase.New(message)
|
||||
Public Sub New(attribute As String)
|
||||
MyBase.New(attribute)
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
@@ -1,146 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{DD1AC3B9-7595-4D3C-B9BB-97C46A480FA0}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>ImporterShared</RootNamespace>
|
||||
<AssemblyName>ImporterShared</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>Windows</MyType>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DocumentationFile>ImporterShared.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DocumentationFile>ImporterShared.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionCompare>Binary</OptionCompare>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionStrict>Off</OptionStrict>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AutoMapper, Version=10.0.0.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoMapper.10.1.1\lib\net461\AutoMapper.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.DataAccess.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DigitalData.Modules.Database">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Filesystem">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Language">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Language\bin\Release\DigitalData.Modules.Language.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Logging">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Logging\bin\Release\DigitalData.Modules.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Data" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Linq" />
|
||||
<Import Include="System.Xml.Linq" />
|
||||
<Import Include="System.Threading.Tasks" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BaseClass.vb" />
|
||||
<Compile Include="Config.vb" />
|
||||
<Compile Include="Documents\Document.vb" />
|
||||
<Compile Include="Documents\DocumentMatch.vb" />
|
||||
<Compile Include="Documents\DocumentType.vb" />
|
||||
<Compile Include="Documents\DocumentLoader.vb" />
|
||||
<Compile Include="IEnumerableEx.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Mapper.vb" />
|
||||
<Compile Include="Schemas\Orders\Input.vb" />
|
||||
<Compile Include="Schemas\Orders\Output.vb" />
|
||||
<Compile Include="Schemas\Orders\ReportSource.vb" />
|
||||
<Compile Include="Serializer.vb" />
|
||||
<Compile Include="Winline\Account.vb" />
|
||||
<Compile Include="Winline\Data.vb" />
|
||||
<Compile Include="Winline\Mandator.vb" />
|
||||
<Compile Include="Winline\WebService.vb" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<CustomToolNamespace>My</CustomToolNamespace>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
</Project>
|
||||
@@ -10,8 +10,9 @@
|
||||
<AssemblyName>MultiTool.Common</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>Windows</MyType>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -50,31 +51,29 @@
|
||||
<Reference Include="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.DataAccess.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Printing.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DigitalData.Modules.Base">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Base\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Config">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Database">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Filesystem">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Interfaces">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Language, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<Reference Include="DigitalData.Modules.Base, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDMonorepo\Modules.Language\bin\Debug\DigitalData.Modules.Language.dll</HintPath>
|
||||
<HintPath>..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Logging">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Logging\bin\Release\DigitalData.Modules.Logging.dll</HintPath>
|
||||
<Reference Include="DigitalData.Modules.Config, Version=1.1.4.1, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Database, Version=2.2.7.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Interfaces, Version=1.7.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Logging, Version=2.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.1.0\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
@@ -128,8 +127,11 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Parameters.vb" />
|
||||
<Compile Include="Patterns.vb" />
|
||||
<Compile Include="Report\ReportGenerator.vb" />
|
||||
<Compile Include="Templates\FilterConfig.vb" />
|
||||
<Compile Include="Templates\FilterConfigItem.vb" />
|
||||
<Compile Include="Templates\GeneralConfig.vb" />
|
||||
<Compile Include="Templates\MandatorConfig.vb" />
|
||||
<Compile Include="Templates\MandatorConfigItem.vb" />
|
||||
@@ -151,7 +153,7 @@
|
||||
<Compile Include="Winline\Entities\Contact.vb" />
|
||||
<Compile Include="Winline\Entities\DocumentKind.vb" />
|
||||
<Compile Include="Winline\Entities\Mandator.vb" />
|
||||
<Compile Include="Templates\TemplateConfigItem.vb" />
|
||||
<Compile Include="Templates\FieldConfig.vb" />
|
||||
<Compile Include="Winline\WebServiceData.vb" />
|
||||
<Compile Include="XmlData.vb" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -1,175 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{DD1AC3B9-7595-4D3C-B9BB-97C46A480FA0}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>MultiTool.Shared</RootNamespace>
|
||||
<AssemblyName>MultiTool.Shared</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>Windows</MyType>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DocumentationFile>MultiTool.Shared.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DocumentationFile>MultiTool.Shared.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionCompare>Binary</OptionCompare>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionStrict>Off</OptionStrict>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AutoMapper, Version=10.0.0.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoMapper.10.1.1\lib\net461\AutoMapper.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.DataAccess.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Printing.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DigitalData.Modules.Config">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Database">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Filesystem">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Interfaces">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Language">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Language\bin\Release\DigitalData.Modules.Language.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Logging">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Logging\bin\Release\DigitalData.Modules.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Data" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Linq" />
|
||||
<Import Include="System.Xml.Linq" />
|
||||
<Import Include="System.Threading.Tasks" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BaseClass.vb" />
|
||||
<Compile Include="Config.vb" />
|
||||
<Compile Include="Constants.vb" />
|
||||
<Compile Include="DataRowEx.vb" />
|
||||
<Compile Include="Documents\Document.vb" />
|
||||
<Compile Include="Documents\DocumentRow.vb" />
|
||||
<Compile Include="Documents\DocumentType.vb" />
|
||||
<Compile Include="Documents\DocumentLoader.vb" />
|
||||
<Compile Include="Exceptions.vb" />
|
||||
<Compile Include="Helpers.vb" />
|
||||
<Compile Include="IDictionaryEx.vb" />
|
||||
<Compile Include="IEnumerableEx.vb" />
|
||||
<Compile Include="Mapper.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Report\ReportGenerator.vb" />
|
||||
<Compile Include="Templates\GeneralConfig.vb" />
|
||||
<Compile Include="Templates\MandatorConfig.vb" />
|
||||
<Compile Include="Templates\MandatorConfigItem.vb" />
|
||||
<Compile Include="Templates\MappingConfig.vb" />
|
||||
<Compile Include="Templates\MappingConfigItem.vb" />
|
||||
<Compile Include="Report\ReportHead.vb" />
|
||||
<Compile Include="Report\ReportPosition.vb" />
|
||||
<Compile Include="Report\ReportSource.vb" />
|
||||
<Compile Include="Winline\Entities\Response.vb" />
|
||||
<Compile Include="Templates\Template.vb" />
|
||||
<Compile Include="Templates\TemplateLoader.vb" />
|
||||
<Compile Include="Serializer.vb" />
|
||||
<Compile Include="Templates\TemplateConfig.vb" />
|
||||
<Compile Include="Winline\Entities\Account.vb" />
|
||||
<Compile Include="Winline\WinlineData.vb" />
|
||||
<Compile Include="Winline\Entities\Article.vb" />
|
||||
<Compile Include="Winline\Entities\Contact.vb" />
|
||||
<Compile Include="Winline\Entities\DocumentKind.vb" />
|
||||
<Compile Include="Winline\Entities\Mandator.vb" />
|
||||
<Compile Include="Templates\TemplateConfigItem.vb" />
|
||||
<Compile Include="Winline\WebServiceData.vb" />
|
||||
<Compile Include="XmlData.vb" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<CustomToolNamespace>My</CustomToolNamespace>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
</Project>
|
||||
@@ -12,8 +12,8 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyDescription("")>
|
||||
<Assembly: AssemblyCompany("")>
|
||||
<Assembly: AssemblyProduct("MultiTool.Common")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2022")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2024")>
|
||||
<Assembly: AssemblyTrademark("1.0.0.0")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' indem Sie "*" wie unten gezeigt eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.2.0.0")>
|
||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
|
||||
@@ -22,7 +22,7 @@ Namespace My.Resources
|
||||
'''<summary>
|
||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||
|
||||
2
MultiTool.Common/My Project/Settings.Designer.vb
generated
2
MultiTool.Common/My Project/Settings.Designer.vb
generated
@@ -15,7 +15,7 @@ Option Explicit On
|
||||
Namespace My
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0"), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class MySettings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
|
||||
49
MultiTool.Common/Parameters.vb
Normal file
49
MultiTool.Common/Parameters.vb
Normal file
@@ -0,0 +1,49 @@
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Public Class Parameters
|
||||
''' <summary>
|
||||
''' Parse a list of parameters and return a directory of the parsed parameters.
|
||||
''' </summary>
|
||||
''' <remarks>The special case of SQL Parameters is NOT handled by this function.</remarks>
|
||||
Public Shared Function Parse(pParameters As String) As Dictionary(Of String, String)
|
||||
Try
|
||||
Dim oParamsDict As New Dictionary(Of String, String)
|
||||
|
||||
If pParameters <> String.Empty Then
|
||||
Dim oParamList = pParameters.Split("|").ToList()
|
||||
|
||||
For Each oParam In oParamList
|
||||
Dim oParamSplit = oParam.Split("=")
|
||||
|
||||
If oParamSplit.Count = 2 Then
|
||||
oParamsDict.Add(oParamSplit(0), oParamSplit(1))
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
Return oParamsDict
|
||||
Catch ex As Exception
|
||||
Return New Dictionary(Of String, String)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Shared Function TryGet(pParameters As String, pName As String) As Tuple(Of String, String)
|
||||
Try
|
||||
Dim pParamDict = Parse(pParameters)
|
||||
|
||||
If pParamDict.Count = 0 Then
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
If Not pParamDict.ContainsKey(pName) Then
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Dim oValue = pParamDict.Item(pName)
|
||||
Return New Tuple(Of String, String)(pName, oValue)
|
||||
|
||||
Catch ex As Exception
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
End Class
|
||||
@@ -2,21 +2,29 @@
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports MultiTool.Common.Documents
|
||||
Imports MultiTool.Common.Templates
|
||||
Imports MultiTool.Common.Constants
|
||||
Imports MultiTool.Common.Winline.Entities
|
||||
|
||||
Public Class Patterns
|
||||
Inherits BaseClass
|
||||
|
||||
Private ReadOnly GeneralConfig As GeneralConfig
|
||||
Private ReadOnly Regex As New Regex("{#(\w+)#([\w\s_-]+)}+")
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pGeneralConfig As GeneralConfig)
|
||||
MyBase.New(pLogConfig)
|
||||
GeneralConfig = pGeneralConfig
|
||||
End Sub
|
||||
|
||||
Public Function ReplaceForImport(pDocument As Documents.Document, pRow As DocumentRow, oString As String)
|
||||
Dim oRegex = New Regex("{#(\w+)#([\w\s_-]+)}+")
|
||||
Dim oMatches As MatchCollection = oRegex.Matches(oString)
|
||||
''' <summary>
|
||||
''' Replaces placeholders in an sql marked as final sql in the template.
|
||||
''' </summary>
|
||||
''' <remarks>
|
||||
''' This SQL does not replace field-value placeholders!
|
||||
''' This is a globally applied function!
|
||||
''' </remarks>
|
||||
Public Function ReplaceForImportFinalSQL(pDocument As Document, pReportFileName As String, pString As String) As String
|
||||
Dim oMatches As MatchCollection = Regex.Matches(pString)
|
||||
|
||||
For Each oMatch As Match In oMatches
|
||||
Dim oPlaceholderString As String = oMatch.Groups.Item(0)?.Value
|
||||
@@ -24,53 +32,77 @@ Public Class Patterns
|
||||
Dim oPlaceholderValue As String = oMatch.Groups.Item(2)?.Value
|
||||
|
||||
Select Case oPlaceholderType.ToUpper
|
||||
Case "FIELD"
|
||||
Case PLACEHOLDER_CONST
|
||||
Dim oValue = ""
|
||||
|
||||
Select Case oPlaceholderValue.ToUpper
|
||||
Case "FILENAME"
|
||||
oValue = pDocument.FileName
|
||||
|
||||
Case "FILENAME_REPORT"
|
||||
oValue = pReportFileName
|
||||
|
||||
Case Else
|
||||
oValue = ReplaceBasicValues(oPlaceholderValue, pDocument.Mandator)
|
||||
|
||||
End Select
|
||||
|
||||
If oValue <> "" Then
|
||||
pString = pString.Replace(oPlaceholderString, oValue)
|
||||
End If
|
||||
End Select
|
||||
Next
|
||||
|
||||
Return pString
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
'''
|
||||
''' </summary>
|
||||
''' <param name="pDocument"></param>
|
||||
''' <param name="pRow"></param>
|
||||
''' <param name="pString"></param>
|
||||
''' <returns></returns>
|
||||
Public Function ReplaceForImport(pDocument As Document, pRow As DocumentRow, pString As String)
|
||||
Dim oMatches As MatchCollection = Regex.Matches(pString)
|
||||
|
||||
For Each oMatch As Match In oMatches
|
||||
Dim oPlaceholderString As String = oMatch.Groups.Item(0)?.Value
|
||||
Dim oPlaceholderType As String = oMatch.Groups.Item(1)?.Value
|
||||
Dim oPlaceholderValue As String = oMatch.Groups.Item(2)?.Value
|
||||
|
||||
Select Case oPlaceholderType.ToUpper
|
||||
Case PLACEHOLDER_FIELD
|
||||
Dim oFieldName = oPlaceholderValue
|
||||
Dim oTargetField = pRow.Fields.
|
||||
Where(Function(field) field.Key = oFieldName).
|
||||
SingleOrDefault()
|
||||
|
||||
oString = oString.Replace(oPlaceholderString, oTargetField.Value.Final)
|
||||
pString = pString.Replace(oPlaceholderString, oTargetField.Value.Final)
|
||||
|
||||
Case "CONST"
|
||||
Case PLACEHOLDER_CONST
|
||||
Dim oValue = ""
|
||||
|
||||
Select Case oPlaceholderValue.ToUpper
|
||||
Case "MESOYEAR"
|
||||
oValue = GeneralConfig.GetWinLineYear()
|
||||
|
||||
Case "MESOCOMP"
|
||||
oValue = pDocument.Mandator.Id
|
||||
|
||||
Case "USERNAME"
|
||||
oValue = Environment.UserName
|
||||
|
||||
Case "CURRENTDATE"
|
||||
oValue = Now.ToString()
|
||||
|
||||
Case "FILENAME"
|
||||
oValue = pDocument.FileName
|
||||
|
||||
Case "MANDATORDB"
|
||||
oValue = pDocument.Mandator.Database
|
||||
|
||||
Case Else
|
||||
oValue = ""
|
||||
oValue = ReplaceBasicValues(oPlaceholderValue, pDocument.Mandator)
|
||||
|
||||
End Select
|
||||
|
||||
If oValue <> "" Then
|
||||
oString = oString.Replace(oPlaceholderString, oValue)
|
||||
pString = pString.Replace(oPlaceholderString, oValue)
|
||||
End If
|
||||
End Select
|
||||
Next
|
||||
|
||||
Return oString
|
||||
Return pString
|
||||
End Function
|
||||
|
||||
Public Function ReplaceForExport(pDocument As ExportDocument, pMandator As Mandator, oString As String)
|
||||
Dim oRegex = New Regex("{#(\w+)#([\w\s_-]+)}+")
|
||||
Dim oMatches As MatchCollection = oRegex.Matches(oString)
|
||||
Dim oMatches As MatchCollection = Regex.Matches(oString)
|
||||
|
||||
For Each oMatch As Match In oMatches
|
||||
Dim oPlaceholderString As String = oMatch.Groups.Item(0)?.Value
|
||||
@@ -78,22 +110,10 @@ Public Class Patterns
|
||||
Dim oPlaceholderValue As String = oMatch.Groups.Item(2)?.Value
|
||||
|
||||
Select Case oPlaceholderType.ToUpper
|
||||
Case "CONST"
|
||||
Case PLACEHOLDER_CONST
|
||||
Dim oValue = ""
|
||||
|
||||
Select Case oPlaceholderValue.ToUpper
|
||||
Case "MESOYEAR"
|
||||
oValue = GeneralConfig.GetWinLineYear()
|
||||
|
||||
Case "MESOCOMP"
|
||||
oValue = pMandator.Id
|
||||
|
||||
Case "USERNAME"
|
||||
oValue = Environment.UserName
|
||||
|
||||
Case "CURRENTDATE"
|
||||
oValue = Now.ToString()
|
||||
|
||||
Case "FILENAME"
|
||||
oValue = pDocument.FilenameExport
|
||||
|
||||
@@ -103,11 +123,9 @@ Public Class Patterns
|
||||
Case "RUNNINGNUMBER"
|
||||
oValue = pDocument.RunningNumber
|
||||
|
||||
Case "MANDATORDB"
|
||||
oValue = pMandator.Database
|
||||
|
||||
Case Else
|
||||
oValue = ""
|
||||
oValue = ReplaceBasicValues(oPlaceholderValue, pMandator)
|
||||
|
||||
End Select
|
||||
|
||||
@@ -119,4 +137,31 @@ Public Class Patterns
|
||||
|
||||
Return oString
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Replaces basic values in the CONST namespace that only depend on the current mandator
|
||||
''' </summary>
|
||||
''' <returns>Value that will be used to replaced the placeholder</returns>
|
||||
Public Function ReplaceBasicValues(pPlaceholderValue As String, pMandator As Mandator) As String
|
||||
Select Case pPlaceholderValue.ToUpper
|
||||
Case "MESOYEAR"
|
||||
Return GeneralConfig.GetWinLineYear()
|
||||
|
||||
Case "MESOCOMP"
|
||||
Return pMandator.Id
|
||||
|
||||
Case "USERNAME"
|
||||
Return Environment.UserName
|
||||
|
||||
Case "MANDATORDB"
|
||||
Return pMandator.Database
|
||||
|
||||
Case "CURRENTDATE"
|
||||
Return Now.ToString()
|
||||
|
||||
Case Else
|
||||
Return String.Empty
|
||||
|
||||
End Select
|
||||
End Function
|
||||
End Class
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports DevExpress.XtraReports
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports MultiTool.Common.Documents
|
||||
@@ -14,7 +15,7 @@ Public Class ReportGenerator(Of TReport As IReport)
|
||||
Private ReadOnly TemplateConfig As TemplateConfig
|
||||
Private ReadOnly GeneralConfig As GeneralConfig
|
||||
Private ReadOnly Patterns As Patterns
|
||||
Private ReadOnly FileEx As DigitalData.Modules.Filesystem.File
|
||||
Private ReadOnly FileEx As FilesystemEx
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pTemplateConfig As TemplateConfig, pGeneralConfig As GeneralConfig)
|
||||
MyBase.New(pLogConfig)
|
||||
@@ -22,7 +23,7 @@ Public Class ReportGenerator(Of TReport As IReport)
|
||||
GeneralConfig = pGeneralConfig
|
||||
TemplateConfig = pTemplateConfig
|
||||
Patterns = New Patterns(pLogConfig, pGeneralConfig)
|
||||
FileEx = New DigitalData.Modules.Filesystem.File(LogConfig)
|
||||
FileEx = New FilesystemEx(LogConfig)
|
||||
End Sub
|
||||
|
||||
Public Function GetReportFilePath(pDocument As Document, pTemplate As Template)
|
||||
@@ -32,8 +33,8 @@ Public Class ReportGenerator(Of TReport As IReport)
|
||||
Return oFilePath
|
||||
End Function
|
||||
|
||||
Public Function GenerateReport(pDocument As Document, pTemplate As Template) As TReport
|
||||
|
||||
Public Function GenerateReport(pDocument As Document, pTemplate As Template) As ReportResult(Of TReport)
|
||||
Dim oFilePath = GetReportFilePath(pDocument, pTemplate)
|
||||
Dim oMapperConfig As New Mapper(LogConfig)
|
||||
Dim oHeadMapper = oMapperConfig.GetMapper(Of ReportHead)(New Dictionary(Of String, String) From {
|
||||
{"Fakt_Kontoname", "Text1"},
|
||||
@@ -45,7 +46,7 @@ Public Class ReportGenerator(Of TReport As IReport)
|
||||
|
||||
Dim oPositionMapper = oMapperConfig.GetMapper(Of ReportPosition)(New Dictionary(Of String, String) From {
|
||||
{"Artikelnummer", "Text1"},
|
||||
{"Lieferantenartikelnummer", "Text2"},
|
||||
{"Positionstext", "Text2"},
|
||||
{"Bezeichnung", "Text3"},
|
||||
{"Menge_bestellt", "Text4"},
|
||||
{"Menge_geliefert", "Text5"},
|
||||
@@ -56,11 +57,7 @@ Public Class ReportGenerator(Of TReport As IReport)
|
||||
{"Lagerstand", "Text10"}
|
||||
})
|
||||
|
||||
Dim oSQLConfig = TemplateConfig.Items.
|
||||
Where(Function(item) item.Function.Name = Constants.FUNCTION_SQL).
|
||||
ToList()
|
||||
|
||||
FillFieldValuesFromSQL(pDocument, oSQLConfig)
|
||||
pDocument = FillFieldValuesFromSQL(pDocument, TemplateConfig.SqlItems, oFilePath)
|
||||
|
||||
Dim oHeadRow = pDocument.Rows.
|
||||
Where(Function(r) r.TableName.EndsWith("T025")).
|
||||
@@ -99,11 +96,16 @@ Public Class ReportGenerator(Of TReport As IReport)
|
||||
oDataSource.Fill()
|
||||
oReport.DataSource = oDataSource
|
||||
|
||||
Return oReport
|
||||
Dim oResult = New ReportResult(Of TReport) With {
|
||||
.Report = oReport,
|
||||
.FileName = oFilePath
|
||||
}
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Private Sub FillFieldValuesFromSQL(pDocument As Document, oSQLConfig As List(Of TemplateConfigItem))
|
||||
For Each oSQLConfigItem In oSQLConfig
|
||||
Private Function FillFieldValuesFromSQL(pDocument As Document, pSQLConfig As List(Of FieldConfig), pReportFileName As String) As Document
|
||||
For Each oSQLConfigItem In pSQLConfig
|
||||
' FieldList is a list of fields that will be changed
|
||||
' Example: Setting SQL for Article StorageLocation will invoke the sql for each row
|
||||
Dim oRowList = pDocument.Rows.
|
||||
@@ -111,19 +113,29 @@ Public Class ReportGenerator(Of TReport As IReport)
|
||||
ToList()
|
||||
|
||||
For Each oRow As DocumentRow In oRowList
|
||||
Dim oField = oRow.Fields.
|
||||
Where(Function(field) field.Key = oSQLConfigItem.Name).
|
||||
SingleOrDefault()
|
||||
For Each oFunction In oSQLConfigItem.Functions
|
||||
Dim oSQL = oFunction.Params
|
||||
Dim oField = oRow.Fields.
|
||||
Where(Function(field) field.Key = oSQLConfigItem.Name).
|
||||
SingleOrDefault()
|
||||
|
||||
Dim oSQL = oSQLConfigItem.Function.Params
|
||||
oSQL = Patterns.ReplaceForImport(pDocument, oRow, oSQL)
|
||||
oSQL = Patterns.ReplaceForImportFinalSQL(pDocument, pReportFileName, oSQL)
|
||||
|
||||
Dim oValue = Database.GetScalarValue(oSQL)
|
||||
Dim oValue = Database.GetScalarValue(oSQL)
|
||||
|
||||
If oValue IsNot Nothing Then
|
||||
oField.Value.Final = oValue
|
||||
End If
|
||||
If oValue IsNot Nothing Then
|
||||
oField.Value.SetExternalValue(oValue)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Return pDocument
|
||||
End Function
|
||||
|
||||
Public Structure ReportResult(Of T)
|
||||
Public Report As T
|
||||
Public FileName As String
|
||||
End Structure
|
||||
|
||||
End Class
|
||||
@@ -2,7 +2,8 @@
|
||||
Imports DigitalData.Modules.Language
|
||||
|
||||
Namespace Templates
|
||||
Public Class TemplateConfigItem
|
||||
Public Class FieldConfig
|
||||
Public Property Id As Integer
|
||||
Public Property Name As String
|
||||
Public Property Table As String
|
||||
Public Property Type As ColumnType
|
||||
@@ -14,20 +15,9 @@ Namespace Templates
|
||||
Public Property IsVisible As Boolean
|
||||
Public Property IsRequired As Boolean
|
||||
Public Property IsVirtual As Boolean
|
||||
Public Property PreferExternalValue As Boolean
|
||||
|
||||
Public Property [Function] As ColumnFunction
|
||||
|
||||
Public ReadOnly Property FunctionName As String
|
||||
Get
|
||||
Return Utils.NotNull([Function]?.Name, String.Empty)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property FunctionParams As String
|
||||
Get
|
||||
Return Utils.NotNull([Function]?.Params, String.Empty)
|
||||
End Get
|
||||
End Property
|
||||
Public Property Functions As New List(Of ColumnFunction)
|
||||
|
||||
Public Class ColumnFunction
|
||||
Public Id As XmlFunction
|
||||
5
MultiTool.Common/Templates/FilterConfig.vb
Normal file
5
MultiTool.Common/Templates/FilterConfig.vb
Normal file
@@ -0,0 +1,5 @@
|
||||
Namespace Templates
|
||||
Public Class FilterConfig
|
||||
Public Property Items As New List(Of FilterConfigItem)
|
||||
End Class
|
||||
End Namespace
|
||||
10
MultiTool.Common/Templates/FilterConfigItem.vb
Normal file
10
MultiTool.Common/Templates/FilterConfigItem.vb
Normal file
@@ -0,0 +1,10 @@
|
||||
Namespace Templates
|
||||
Public Class FilterConfigItem
|
||||
Public Property Guid As Integer
|
||||
Public Property SQLCommand As String
|
||||
Public Property TableId As Integer
|
||||
Public Property TableName As String
|
||||
Public Property ColumnId As Integer
|
||||
Public Property ColumnName As String
|
||||
End Class
|
||||
End Namespace
|
||||
@@ -1,4 +1,4 @@
|
||||
Imports DigitalData.Modules.Language
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports MultiTool.Common.Winline.WinlineData
|
||||
|
||||
Namespace Templates
|
||||
@@ -22,6 +22,11 @@ Namespace Templates
|
||||
Public Property OutputDirectory As String
|
||||
Public Property ArchiveDirectory As String
|
||||
|
||||
''' <summary>
|
||||
''' Last modified date of the template file
|
||||
''' </summary>
|
||||
Public Property LastModified As Date
|
||||
|
||||
Public ReadOnly Property DocType As DocumentType
|
||||
Get
|
||||
Dim oDocType As String = GetParameter("DOCTYPE")
|
||||
@@ -35,6 +40,19 @@ Namespace Templates
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property PrintDocument As Boolean
|
||||
Get
|
||||
Dim oPrintDocument = GetParameter("PRINT")
|
||||
Dim oDefaultValue = True
|
||||
|
||||
If oPrintDocument IsNot Nothing Then
|
||||
oDefaultValue = IIf(oPrintDocument = "0", False, True)
|
||||
End If
|
||||
|
||||
Return oDefaultValue
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property DocTypeCategory As DocumentTypeCategory
|
||||
Get
|
||||
Select Case DocType
|
||||
@@ -77,11 +95,11 @@ Namespace Templates
|
||||
|
||||
|
||||
Public Function GetParameter(pName As String) As String
|
||||
Dim oParam1 As String = Utils.NotNull(Parameter1, String.Empty)
|
||||
Dim oParam2 As String = Utils.NotNull(Parameter2, String.Empty)
|
||||
Dim oParam1 As String = ObjectEx.NotNull(Parameter1, String.Empty)
|
||||
Dim oParam2 As String = ObjectEx.NotNull(Parameter2, String.Empty)
|
||||
|
||||
Dim oParamValue1 = TryGetParameter(oParam1)
|
||||
Dim oParamValue2 = TryGetParameter(oParam2)
|
||||
Dim oParamValue1 = Parameters.TryGet(oParam1, pName)
|
||||
Dim oParamValue2 = Parameters.TryGet(oParam2, pName)
|
||||
|
||||
If oParamValue1 IsNot Nothing AndAlso oParamValue1.Item1 = pName Then
|
||||
Return oParamValue1.Item2
|
||||
@@ -94,20 +112,6 @@ Namespace Templates
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
Private Function TryGetParameter(pParameterString As String) As Tuple(Of String, String)
|
||||
If pParameterString <> String.Empty Then
|
||||
Dim oSplit = pParameterString.Split("=").ToList()
|
||||
|
||||
If oSplit.Count = 2 Then
|
||||
Return New Tuple(Of String, String)(oSplit.First, oSplit.Last)
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Table from XSD
|
||||
''' </summary>
|
||||
@@ -123,7 +127,7 @@ Namespace Templates
|
||||
''' Required value from Schema. This value will be written in the ColumnConfig and is not relevant from that point on.
|
||||
''' </summary>
|
||||
Public Property IsRequired As Boolean
|
||||
Public Property Config As TemplateConfigItem
|
||||
Public Property Config As FieldConfig
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return Name
|
||||
|
||||
@@ -6,9 +6,17 @@ Namespace Templates
|
||||
''' Class for loading column/field config from database
|
||||
''' </summary>
|
||||
Public Class TemplateConfig
|
||||
Public Property Items As List(Of TemplateConfigItem)
|
||||
Public Property Items As List(Of FieldConfig)
|
||||
|
||||
Public Function GetColumn(pName As String, pTable As String) As TemplateConfigItem
|
||||
Public ReadOnly Property SqlItems As List(Of FieldConfig)
|
||||
Get
|
||||
Return Items.
|
||||
Where(Function(item) item.Functions.Any(Function(f) f.Name = Constants.FUNCTION_SQL)).
|
||||
ToList()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Function GetColumn(pName As String, pTable As String) As FieldConfig
|
||||
Return Items.
|
||||
Where(Function(c) c.Name = pName And c.Table = pTable).
|
||||
FirstOrDefault()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Language
|
||||
Imports DigitalData.Modules.Base
|
||||
|
||||
Namespace Templates
|
||||
Public Class TemplateLoader
|
||||
@@ -10,12 +10,16 @@ Namespace Templates
|
||||
Private ReadOnly ns As XNamespace = "http://www.w3.org/2001/XMLSchema"
|
||||
|
||||
Public Property TemplateList As List(Of Template)
|
||||
|
||||
Public Property TemplateConfiguration As New TemplateConfig
|
||||
Public Property MappingConfiguration As New MappingConfig
|
||||
Public Property MandatorConfiguration As New MandatorConfig
|
||||
Public Property GeneralConfiguration As New GeneralConfig
|
||||
Public Property FilterConfiguration As New FilterConfig
|
||||
|
||||
Private Const SQL_VWMT_ITEMS = "SELECT * FROM [DD_ECM].[dbo].[VWMT_ITEMS]"
|
||||
Private Const SQL_TBMT_FILTERS = "SELECT * FROM [DD_ECM].[dbo].[VWMT_FILTERS]"
|
||||
Private Const SQL_VWMT_ITEMS = "SELECT * FROM [DD_ECM].[dbo].[VWMT_ITEMS] ORDER BY TEMPLATE_NAME, TABLE_NAME"
|
||||
Private Const SQL_VWMT_FUNCTIONS = "SELECT * FROM [DD_ECM].[dbo].[VWMT_FUNCTIONS] ORDER BY ITEM_ID, SEQUENCE"
|
||||
Private Const SQL_VWMT_MAPPING = "SELECT * FROM [DD_ECM].[dbo].[VWMT_MAPPING]"
|
||||
Private Const SQL_TBMT_MANDATORS = "SELECT * FROM [DD_ECM].[dbo].[TBMT_MANDATORS] ORDER BY ORDER_KEY"
|
||||
Private Const SQL_TBMT_CONFIG = "SELECT * FROM [DD_ECM].[dbo].[TBMT_CONFIG]"
|
||||
@@ -25,6 +29,34 @@ Namespace Templates
|
||||
MyBase.New(pLogConfig, pMSSQL)
|
||||
End Sub
|
||||
|
||||
Public Async Function LoadFilterConfiguration() As Task(Of Boolean)
|
||||
Try
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(SQL_TBMT_FILTERS)
|
||||
Dim oFilters As New List(Of FilterConfigItem)
|
||||
|
||||
For Each oRow As DataRow In oTable.Rows
|
||||
Dim oFilter As New FilterConfigItem With {
|
||||
.Guid = oRow.Item("GUID"),
|
||||
.SQLCommand = oRow.ItemEx("SQL_COMMAND", String.Empty),
|
||||
.TableId = oRow.ItemEx("TABLE_ID", 0),
|
||||
.TableName = oRow.ItemEx("TABLE_NAME", String.Empty),
|
||||
.ColumnId = oRow.ItemEx("ITEM_ID", 0),
|
||||
.ColumnName = oRow.ItemEx("ITEM_NAME", String.Empty)
|
||||
}
|
||||
|
||||
oFilters.Add(oFilter)
|
||||
Next
|
||||
|
||||
FilterConfiguration.Items = oFilters
|
||||
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function LoadTemplates() As Task(Of Boolean)
|
||||
Try
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(SQL_TBMT_TEMPLATES)
|
||||
@@ -42,6 +74,8 @@ Namespace Templates
|
||||
.Parameter2 = oRow.ItemEx("PARAMETER_2", String.Empty)
|
||||
}
|
||||
|
||||
Logger.Debug("Loading Template [{0}]", oTemplate.Name)
|
||||
|
||||
oTemplates.Add(oTemplate)
|
||||
Next
|
||||
|
||||
@@ -154,27 +188,27 @@ Namespace Templates
|
||||
Public Async Function LoadTemplateConfiguration() As Task(Of Boolean)
|
||||
Try
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(SQL_VWMT_ITEMS)
|
||||
Dim oItems As New List(Of TemplateConfigItem)
|
||||
Dim oItems As New List(Of FieldConfig)
|
||||
|
||||
For Each oRow As DataRow In oTable.Rows
|
||||
Dim oColumn As New TemplateConfigItem() With {
|
||||
Dim oColumn As New FieldConfig() With {
|
||||
.Id = oRow.ItemEx("ITEM_ID", 0),
|
||||
.Template = oRow.ItemEx("TEMPLATE_NAME", String.Empty),
|
||||
.Table = oRow.ItemEx("XML_TABLE", String.Empty),
|
||||
.Name = oRow.ItemEx("XML_ITEM", String.Empty),
|
||||
.Type = TemplateConfigItem.ConvertType(ItemEx(oRow, "DATA_TYPE", String.Empty)),
|
||||
.Table = oRow.ItemEx("TABLE_NAME", String.Empty),
|
||||
.Name = oRow.ItemEx("ITEM_NAME", String.Empty),
|
||||
.Type = FieldConfig.ConvertType(ItemEx(oRow, "DATA_TYPE", String.Empty)),
|
||||
.OrderKey = oRow.ItemEx("ORDER_KEY", 0),
|
||||
.IsReadOnly = oRow.ItemEx("IS_READ_ONLY", False),
|
||||
.IsVisible = oRow.ItemEx("IS_VISIBLE", True),
|
||||
.IsRequired = oRow.ItemEx("IS_REQUIRED", False),
|
||||
.IsVirtual = oRow.ItemEx("IS_VIRTUAL", False),
|
||||
.IsHead = oRow.ItemEx("IS_HEAD", True),
|
||||
.[Function] = New TemplateConfigItem.ColumnFunction With {
|
||||
.Id = oRow.ItemEx("FUNCTION_ID", 0),
|
||||
.Name = oRow.ItemEx("FUNCTION_NAME", String.Empty),
|
||||
.Params = oRow.ItemEx("FUNCTION_PARAMETERS", String.Empty)
|
||||
}
|
||||
.PreferExternalValue = oRow.ItemEx("PREFER_EXTERNAL", True),
|
||||
.Functions = New List(Of FieldConfig.ColumnFunction)
|
||||
}
|
||||
|
||||
Logger.Debug("Creating Template Item for Table [{0}]: [{1}]", oColumn.Table, oColumn.Name)
|
||||
|
||||
oItems.Add(oColumn)
|
||||
Next
|
||||
|
||||
@@ -191,6 +225,37 @@ Namespace Templates
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function LoadTemplateFunctions() As Task(Of Boolean)
|
||||
Try
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(SQL_VWMT_FUNCTIONS)
|
||||
Dim oItems As New List(Of FieldConfig)
|
||||
|
||||
For Each oRow As DataRow In oTable.Rows
|
||||
Dim oTemplateItemId = oRow.ItemEx("ITEM_ID", 0)
|
||||
Dim oTemplateItem = TemplateConfiguration.Items.SingleOrDefault(Function(i) i.Id = oTemplateItemId)
|
||||
|
||||
If oTemplateItem Is Nothing Then
|
||||
Logger.Warn("Function configuration could not be assigned to an existing template item, item id was [{0}]", oTemplateItemId)
|
||||
Continue For
|
||||
End If
|
||||
|
||||
oTemplateItem.Functions.Add(New FieldConfig.ColumnFunction With {
|
||||
.Id = oRow.ItemEx("FUNCTION_ID", 0),
|
||||
.Name = oRow.ItemEx("FUNCTION_NAME", String.Empty),
|
||||
.Params = oRow.ItemEx("FUNCTION_PARAMETERS", String.Empty)
|
||||
})
|
||||
Next
|
||||
|
||||
Return True
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Function UpdateTemplateFromFile(pTemplate As Template, pInputDirectory As String) As Template
|
||||
Dim oFullPath = Path.Combine(pInputDirectory, pTemplate.FileName)
|
||||
|
||||
@@ -235,6 +300,7 @@ Namespace Templates
|
||||
|
||||
Public Function UpdateTemplateTablesFromDatabase(pTemplate As Template, pTemplateConfig As TemplateConfig) As Template
|
||||
If pTemplateConfig Is Nothing Then
|
||||
Logger.Warn("Template config is empty. Skipping.")
|
||||
Return pTemplate
|
||||
End If
|
||||
|
||||
@@ -242,10 +308,10 @@ Namespace Templates
|
||||
|
||||
For Each oTable In oTemplate.Tables
|
||||
For Each oColumn As Template.Column In oTable.Columns
|
||||
Dim oConfig As TemplateConfigItem = pTemplateConfig.GetColumn(oColumn.Name, oTable.Name)
|
||||
Dim oConfig As FieldConfig = pTemplateConfig.GetColumn(oColumn.Name, oTable.Name)
|
||||
|
||||
If oConfig Is Nothing Then
|
||||
oConfig = New TemplateConfigItem With {
|
||||
oConfig = New FieldConfig With {
|
||||
.IsRequired = oColumn.IsRequired,
|
||||
.Name = oColumn.Name
|
||||
}
|
||||
@@ -268,7 +334,7 @@ Namespace Templates
|
||||
Dim oTable = pTemplate.Tables.Where(Function(table) table.Name = oItem.Table).FirstOrDefault()
|
||||
|
||||
If oTable Is Nothing Then
|
||||
Logger.Warn("Table [{0}] for item [{1}] does exist in this Template!", oItem.Table, oItem.Name)
|
||||
Logger.Warn("Table [{0}] for item [{1}] does not exist in this Template!", oItem.Table, oItem.Name)
|
||||
Continue For
|
||||
End If
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
Namespace Winline.Entities
|
||||
Imports MultiTool.Common.Winline.WinlineData
|
||||
|
||||
Namespace Winline.Entities
|
||||
Public Class ExportDocument
|
||||
Public Property Schema As Templates.Template
|
||||
|
||||
@@ -18,7 +20,7 @@
|
||||
Public Property GrossAmount As Double
|
||||
|
||||
Public Property IsSelected As Boolean = False
|
||||
Public Property IsExported As Boolean = False
|
||||
Public Property IsExported As Boolean
|
||||
|
||||
Public Property FilenameExport As String
|
||||
Public Property ExportedWhen As Date
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
Imports System.Net.Http
|
||||
Imports System.Collections.Specialized
|
||||
Imports System.Net.Http
|
||||
Imports System.Text
|
||||
Imports System.Xml
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Filesystem
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports MultiTool.Common.Documents
|
||||
Imports MultiTool.Common.Exceptions
|
||||
@@ -15,19 +16,21 @@ Namespace Winline
|
||||
Inherits BaseClass
|
||||
|
||||
Private ReadOnly Config As WebServiceConfig
|
||||
Private ReadOnly Filters As FilterConfig
|
||||
Private ReadOnly Serializer As Serializer
|
||||
Private ReadOnly Winline As WinlineData
|
||||
Private ReadOnly FileEx As File
|
||||
Private ReadOnly FileEx As FilesystemEx
|
||||
Private ReadOnly Patterns As Patterns
|
||||
|
||||
Public Event WebServiceProgress As EventHandler(Of String)
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pWinline As WinlineData, pWebserviceConfig As WebServiceConfig, pGeneralConfig As GeneralConfig)
|
||||
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pWinline As WinlineData, pWebserviceConfig As WebServiceConfig, pGeneralConfig As GeneralConfig, pFilterConfig As FilterConfig)
|
||||
MyBase.New(pLogConfig, pDatabase)
|
||||
Serializer = New Serializer(pLogConfig)
|
||||
Config = pWebserviceConfig
|
||||
Filters = pFilterConfig
|
||||
Patterns = New Patterns(pLogConfig, pGeneralConfig)
|
||||
FileEx = New File(LogConfig)
|
||||
FileEx = New FilesystemEx(LogConfig)
|
||||
Winline = pWinline
|
||||
End Sub
|
||||
|
||||
@@ -48,10 +51,10 @@ Namespace Winline
|
||||
''' <exception cref="TaskCanceledException"></exception>
|
||||
''' <returns>True if request was successful.</returns>
|
||||
Public Async Function TransferDocumentToWinline(pDocument As Documents.Document, pTemplate As Template, pMandator As Mandator, Optional pIsTest As Boolean = False) As Task(Of Boolean)
|
||||
Dim oBytes As Byte() = GetBytesFromDocument(pDocument)
|
||||
Dim oWS = Config
|
||||
|
||||
RaiseEvent WebServiceProgress(Me, "Einstellungen laden")
|
||||
Logger.Debug("Loading setting and creating directories")
|
||||
|
||||
' --- Build all teh filenamez and pathz
|
||||
Dim oBaseFileName As String = FileEx.GetDateTimeString()
|
||||
@@ -72,12 +75,20 @@ Namespace Winline
|
||||
Dim oImportRelativeFilePath = IO.Path.Combine(oRelativePath, oFileName)
|
||||
|
||||
RaiseEvent WebServiceProgress(Me, "Dateien schreiben")
|
||||
Logger.Debug("Writing request file to [{oOutputFilePath}]")
|
||||
|
||||
' If configured, prevent printing the document and instead create it as a draft in the "Nicht gedruckt" section
|
||||
If pTemplate.PrintDocument = False Then
|
||||
pDocument.PrintVoucher = 0
|
||||
End If
|
||||
|
||||
' --- Serialize Data into XML string
|
||||
Dim oBytes As Byte() = GetBytesFromDocument(pDocument)
|
||||
IO.File.WriteAllBytes(oOutputFilePath, oBytes)
|
||||
|
||||
' --- Copy file to Winline Import Directory
|
||||
Try
|
||||
Logger.Debug("Copying request file to [{oImportAbsoluteFilePath}]")
|
||||
IO.File.Copy(oOutputFilePath, oImportAbsoluteFilePath, True)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
@@ -87,6 +98,7 @@ Namespace Winline
|
||||
' --- Prepare URL and HTTP Client
|
||||
Dim oTemplateType = pDocument.TemplateType
|
||||
Dim oTemplateName = pDocument.TemplateName
|
||||
Logger.Debug("Using Template [{0}/{1}]", oTemplateName, oTemplateType)
|
||||
|
||||
' ActionCode: Should this be a test or not?
|
||||
' 0 = Test call
|
||||
@@ -95,13 +107,26 @@ Namespace Winline
|
||||
If pIsTest = True Then
|
||||
oActionCode = 0
|
||||
End If
|
||||
Logger.Debug("Using ActionCode [{0}]", oActionCode)
|
||||
|
||||
' Byref: Should data be supplied as file or as string?
|
||||
' 0 = As String
|
||||
' 1 = As File (relative to Winline Server directory)
|
||||
Dim oByref = 1
|
||||
|
||||
Dim oURL As String = $"{oWS.BaseUrl}/ewlservice/import?User={oWS.Username}&Password={oWS.Password}&Company={pMandator.Id}&Type={oTemplateType}&Vorlage={oTemplateName}&ActionCode={oActionCode}&Byref={oByref}&Data={oImportRelativeFilePath}"
|
||||
Dim oParams As New NameValueCollection() From {
|
||||
{"User", oWS.Username},
|
||||
{"Password", oWS.Password},
|
||||
{"Company", pMandator.Id},
|
||||
{"Type", oTemplateType},
|
||||
{"Vorlage", oTemplateName},
|
||||
{"ActionCode", oActionCode},
|
||||
{"Byref", oByref},
|
||||
{"Data", oImportRelativeFilePath}
|
||||
}
|
||||
|
||||
Dim oURL As String = $"{oWS.BaseUrl}/ewlservice/import{ToQueryString(oParams)}"
|
||||
'Dim oURL As String = $"{oWS.BaseUrl}/ewlservice/import?User={oWS.Username}&Password={oWS.Password}&Company={pMandator.Id}&Type={oTemplateType}&Vorlage={oTemplateName}&ActionCode={oActionCode}&Byref={oByref}&Data={oImportRelativeFilePath}"
|
||||
Dim oClient As New HttpClient With {
|
||||
.Timeout = TimeSpan.FromSeconds(Constants.HTTP_REQUEST_TIMEOUT_IN_SECONDS)
|
||||
}
|
||||
@@ -113,6 +138,8 @@ Namespace Winline
|
||||
' --- Bring the action!
|
||||
Try
|
||||
Dim oResponse As HttpResponseMessage = Await oClient.GetAsync(oURL)
|
||||
Logger.Debug("HTTP Response recevied!")
|
||||
|
||||
Await HandleImportResponse(oResponse, pTemplate, oBaseFileName)
|
||||
|
||||
Return True
|
||||
@@ -133,8 +160,12 @@ Namespace Winline
|
||||
|
||||
RaiseEvent WebServiceProgress(Me, "Antwort verarbeiten")
|
||||
|
||||
Logger.Debug("Response ContentType: [{0}]", oContentType)
|
||||
|
||||
Select Case oContentType
|
||||
Case "text/xml"
|
||||
Logger.Debug("Got XML Response. Checking.")
|
||||
|
||||
WriteResponseFile(oOutputDirectory, oResponseBody, $"{pTemplate.Name}-{pBaseFileName}-Response.xml")
|
||||
|
||||
Dim oBytes As Byte() = Encoding.UTF8.GetBytes(oResponseBody)
|
||||
@@ -146,8 +177,8 @@ Namespace Winline
|
||||
For Each oDetails As Templates.Entities.MESOWebServiceResultResultDetails In oResponseObject.ResultDetails
|
||||
|
||||
If oDetails.Success = True Then
|
||||
Logger.Info("KeyValue: [{0}]", oDetails.KeyValue)
|
||||
Logger.Info("VoucherNumber: [{0}]", oDetails.VoucherNumber)
|
||||
Logger.Debug("KeyValue: [{0}]", oDetails.KeyValue)
|
||||
Logger.Debug("VoucherNumber: [{0}]", oDetails.VoucherNumber)
|
||||
Else
|
||||
Logger.Warn("ErrorCode: [{0}]", oDetails.ErrorCode)
|
||||
Logger.Warn("ErrorText: [{0}]", oDetails.ErrorText)
|
||||
@@ -159,17 +190,23 @@ Namespace Winline
|
||||
If oResponseObject.OverallSuccess = False Then
|
||||
Dim oMessage = $"Request to Webservice was unsuccessful:{vbNewLine}{vbNewLine}{String.Join(vbNewLine, oErrorStrings.ToArray)}"
|
||||
|
||||
Logger.Warn("Overall Success was [false]")
|
||||
|
||||
Throw New WebServiceException(oMessage)
|
||||
End If
|
||||
End Using
|
||||
|
||||
Case "text/html"
|
||||
Logger.Debug("Got TEXT/HTML Response. Throwing.")
|
||||
WriteResponseFile(oOutputDirectory, oResponseBody, $"{pTemplate.Name}-{pBaseFileName}-Response.xml")
|
||||
|
||||
Throw New WebServiceException(oResponseBody)
|
||||
|
||||
Case Else
|
||||
Logger.Debug("Unknown Response ContentType: [{0}]", oContentType)
|
||||
|
||||
Throw New WebServiceException(oResponseBody)
|
||||
|
||||
End Select
|
||||
End Function
|
||||
|
||||
@@ -216,18 +253,24 @@ Namespace Winline
|
||||
#End Region
|
||||
|
||||
#Region "Export"
|
||||
Async Function ExportDocumentFromWinline(pDocument As Entities.ExportDocument, pTemplate As Template, pMandator As Mandator, Optional pIsTest As Boolean = False) As Task(Of Boolean)
|
||||
Async Function ExportDocumentFromWinline(pDocument As ExportDocument, pTemplate As Template, pMandator As Mandator, Optional pIsTest As Boolean = False) As Task(Of Boolean)
|
||||
Dim oWS = Config
|
||||
|
||||
Logger.Info("Exporting document from Winline")
|
||||
|
||||
' --- Build all teh filenamez and pathz
|
||||
Dim oBaseFileName As String = FileEx.GetDateTimeString()
|
||||
Dim oFileName = $"{pTemplate.Name}-{oBaseFileName}.xml"
|
||||
'Dim oFileName = FileEx.GetFilenameWithPrefix(oBaseFileName, pTemplate.Name, "xml")
|
||||
|
||||
Logger.Info("Filename will be [{0}]", oFileName)
|
||||
|
||||
' Save the filename to the document
|
||||
pDocument.FilenameExport = oFileName
|
||||
|
||||
RaiseEvent WebServiceProgress(Me, "Dateien schreiben")
|
||||
RaiseEvent WebServiceProgress(Me, "Abfrage vorbereiten")
|
||||
|
||||
Logger.Debug("Preparing WebService call")
|
||||
|
||||
' --- Prepare URL and HTTP Client
|
||||
Dim oTemplateType = 30
|
||||
@@ -242,6 +285,8 @@ Namespace Winline
|
||||
oActionCode = 0
|
||||
End If
|
||||
|
||||
Logger.Debug("This is a test: [{0}]", pIsTest)
|
||||
|
||||
Dim oURL As String = $"{oWS.BaseUrl}/ewlservice/export?User={oWS.Username}&Password={oWS.Password}&Company={pMandator.Id}&Type={oTemplateType}&Vorlage={oTemplateName}&ActionCode={oActionCode}&Key={oKey}"
|
||||
Dim oClient As New HttpClient()
|
||||
|
||||
@@ -252,6 +297,8 @@ Namespace Winline
|
||||
' --- Bring the action!
|
||||
Try
|
||||
Dim oResponse As HttpResponseMessage = Await oClient.GetAsync(oURL)
|
||||
Logger.Info("Request ended with code: [{0}]", oResponse.StatusCode)
|
||||
|
||||
Await HandleExportResponse(oResponse, pDocument, pTemplate, pMandator, oBaseFileName)
|
||||
|
||||
Return True
|
||||
@@ -268,22 +315,34 @@ Namespace Winline
|
||||
|
||||
Private Async Function HandleExportResponse(pResponse As HttpResponseMessage, pDocument As Entities.ExportDocument, pTemplate As Template, pMandator As Mandator, pBaseFileName As String) As Task
|
||||
pResponse.EnsureSuccessStatusCode()
|
||||
|
||||
Dim oResponseBody As String = Await pResponse.Content.ReadAsStringAsync()
|
||||
Dim oContentType = pResponse.Content.Headers.ContentType.MediaType
|
||||
Dim oSerializer = Serializer.GetSerializer(GetType(Templates.Entities.MESOWebServiceResult))
|
||||
|
||||
RaiseEvent WebServiceProgress(Me, "Antwort verarbeiten")
|
||||
|
||||
oResponseBody = ApplyItemFunctionsForExport(pDocument, pTemplate, pMandator, oResponseBody)
|
||||
Logger.Debug("Processing response with type '{0}'", oContentType)
|
||||
|
||||
Select Case oContentType
|
||||
Case "text/xml"
|
||||
Dim oXmlResponse = oResponseBody
|
||||
Dim oDoc = ConvertStringToDocument(oXmlResponse)
|
||||
|
||||
Logger.Debug("Applying Item Filters")
|
||||
oDoc = ApplyItemFiltersForExport(pDocument, pTemplate, pMandator, oDoc)
|
||||
|
||||
Logger.Debug("Applying Item Functions")
|
||||
oDoc = ApplyItemFunctionsForExport(pDocument, pTemplate, pMandator, oDoc)
|
||||
|
||||
Dim oXml = ConvertDocumentToString(oDoc)
|
||||
|
||||
' Webservice
|
||||
WriteResponseFile(pTemplate.OutputWebserviceDirectory, oResponseBody, $"{pTemplate.Name}-{pBaseFileName}-Response.xml")
|
||||
WriteResponseFile(pTemplate.OutputWebserviceDirectory, oXml, $"{pTemplate.Name}-{pBaseFileName}-Response.xml")
|
||||
' XML
|
||||
WriteResponseFile(pTemplate.OutputXmlFileDirectory, oResponseBody, $"{pTemplate.Name}-{pBaseFileName}.xml")
|
||||
WriteResponseFile(pTemplate.OutputXmlFileDirectory, oXml, $"{pTemplate.Name}-{pBaseFileName}.xml")
|
||||
' Archive
|
||||
WriteResponseFile(FileEx.CreateDateDirectory(pTemplate.ArchiveDirectory), oResponseBody, $"{pTemplate.Name}-{pBaseFileName}.xml")
|
||||
WriteResponseFile(FileEx.CreateDateDirectory(pTemplate.ArchiveDirectory), oXml, $"{pTemplate.Name}-{pBaseFileName}.xml")
|
||||
|
||||
Case "text/html"
|
||||
WriteResponseFile(pTemplate.OutputWebserviceDirectory, oResponseBody, $"{pTemplate.Name}-{pBaseFileName}-Response.txt")
|
||||
@@ -295,67 +354,149 @@ Namespace Winline
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Private Function ApplyItemFunctionsForExport(pDocument As Entities.ExportDocument, pTemplate As Template, pMandator As Mandator, oResponseBody As String) As String
|
||||
Private Function ConvertStringToDocument(pXmlString As String) As XmlDocument
|
||||
Dim oDoc As New XmlDocument()
|
||||
oDoc.LoadXml(oResponseBody)
|
||||
|
||||
For Each oTable In pTemplate.Tables
|
||||
For Each oItem As Template.Column In oTable.Columns
|
||||
Dim oTableName As String = oTable.Name
|
||||
Dim oItemName As String = oItem.Name
|
||||
|
||||
If oItem.Config.Function Is Nothing Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim oFunction = oItem.Config.Function.Name
|
||||
|
||||
Dim oPath = $"//MESOWebService/{oTableName}/{oItemName}"
|
||||
Dim oNodes As XmlNodeList = oDoc.SelectNodes(oPath)
|
||||
|
||||
For Each oNode As XmlNode In oNodes
|
||||
If oItem.Config.Function.Name = "GLN" Then
|
||||
Dim oGLN = Winline.TryGetGLN(oNode.InnerText, pMandator)
|
||||
|
||||
If oGLN Is Nothing Then
|
||||
Throw New Exceptions.MissingAttributeException("GLN")
|
||||
End If
|
||||
|
||||
oNode.InnerText = oGLN
|
||||
|
||||
ElseIf oItem.Config.Function.Name = "EAN" Then
|
||||
Dim oEAN = Winline.TryGetEAN(oNode.InnerText, pMandator)
|
||||
|
||||
If oEAN Is Nothing Then
|
||||
Throw New Exceptions.MissingAttributeException("EAN")
|
||||
End If
|
||||
|
||||
oNode.InnerText = oEAN
|
||||
|
||||
ElseIf oItem.Config.Function.Name = "SQL" Then
|
||||
Dim oSQL = Patterns.ReplaceForExport(pDocument, pMandator, oItem.Config.Function.Params)
|
||||
Dim oValue = Database.GetScalarValue(oSQL)
|
||||
|
||||
If oValue Is Nothing Then
|
||||
Throw New Exceptions.MissingAttributeException("SQL")
|
||||
End If
|
||||
|
||||
oNode.InnerText = oValue
|
||||
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Next
|
||||
oDoc.LoadXml(pXmlString)
|
||||
Return oDoc
|
||||
End Function
|
||||
|
||||
Private Function ConvertDocumentToString(pXmlDocument As XmlDocument) As String
|
||||
Dim oArray As Byte()
|
||||
Using oStream As New IO.MemoryStream
|
||||
oDoc.Save(oStream)
|
||||
pXmlDocument.Save(oStream)
|
||||
oArray = oStream.ToArray()
|
||||
End Using
|
||||
|
||||
Dim oXml = Text.Encoding.UTF8.GetString(oArray)
|
||||
oResponseBody = oXml
|
||||
Return oResponseBody
|
||||
Return System.Text.Encoding.UTF8.GetString(oArray)
|
||||
End Function
|
||||
|
||||
Private Function ApplyItemFunctionsForExport(pDocument As Entities.ExportDocument, pTemplate As Template, pMandator As Mandator, oXMLDocument As XmlDocument) As XmlDocument
|
||||
For Each oTable In pTemplate.Tables
|
||||
Logger.Debug("Processing Table [{0}]", oTable.Name)
|
||||
|
||||
For Each oColumn As Template.Column In oTable.Columns
|
||||
Dim oTableName As String = oTable.Name
|
||||
Dim oItemName As String = oColumn.Name
|
||||
|
||||
Logger.Debug("Processing item [{0}]", oItemName)
|
||||
|
||||
For Each oFunction As FieldConfig.ColumnFunction In oColumn.Config.Functions
|
||||
|
||||
Dim oFunctionName = oFunction.Name
|
||||
Dim oFunctionParams = oFunction.Params
|
||||
|
||||
Dim oPath = $"//MESOWebService/{oTableName}/{oItemName}"
|
||||
Dim oNodes As XmlNodeList = oXMLDocument.SelectNodes(oPath)
|
||||
|
||||
Logger.Debug("Calling function [{0}] on node [{1}]", oFunctionName, oPath)
|
||||
|
||||
For Each oNode As XmlNode In oNodes
|
||||
If oFunctionName = Constants.FUNCTION_GLN Then
|
||||
Dim oGLN = Winline.TryGetGLN(oNode.InnerText, pMandator)
|
||||
|
||||
If oGLN Is Nothing Then
|
||||
Throw New MissingAttributeException(Constants.FUNCTION_GLN)
|
||||
End If
|
||||
|
||||
oNode.InnerText = oGLN
|
||||
|
||||
ElseIf oFunctionName = Constants.FUNCTION_EAN Then
|
||||
Dim oEAN = Winline.TryGetEAN(oNode.InnerText, pMandator)
|
||||
|
||||
If oEAN Is Nothing Then
|
||||
' 21.04.2022: Relax the EAN Check
|
||||
' Since it is possible to have articles without a proper EAN in export,
|
||||
' we dont throw here, but leave the original value in case of a failure.
|
||||
' Throw New Exceptions.MissingAttributeException("EAN")
|
||||
Logger.Warn("EAN could not be retrieved for Node {0}. Skipping.", oNode.Name)
|
||||
Continue For
|
||||
End If
|
||||
|
||||
oNode.InnerText = oEAN
|
||||
|
||||
ElseIf oFunctionName = Constants.FUNCTION_SQL Then
|
||||
Dim oSQL = Patterns.ReplaceForExport(pDocument, pMandator, oFunctionParams)
|
||||
Dim oValue = Database.GetScalarValue(oSQL)
|
||||
|
||||
If oValue Is Nothing Then
|
||||
Throw New MissingAttributeException(Constants.FUNCTION_SQL)
|
||||
End If
|
||||
|
||||
oNode.InnerText = oValue
|
||||
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
|
||||
Next
|
||||
Next
|
||||
|
||||
Return oXMLDocument
|
||||
End Function
|
||||
|
||||
Private Function ApplyItemFiltersForExport(pDocument As ExportDocument, pTemplate As Template, pMandator As Mandator, oXMLDocument As XmlDocument) As XmlDocument
|
||||
Dim oTableNames = pDocument.Schema.Tables.
|
||||
Select(Function(table) table.Name).
|
||||
ToList()
|
||||
Dim oFilters = Filters.Items.
|
||||
Where(Function(filter) oTableNames.Contains(filter.TableName)).
|
||||
ToList()
|
||||
|
||||
Logger.Info("Applying [{0}] filters before exporting.", oFilters.Count)
|
||||
|
||||
For Each oFilter As FilterConfigItem In oFilters
|
||||
Dim oTableName = oFilter.TableName
|
||||
|
||||
Logger.Debug("Applying filter for Table [{0}]", oTableName)
|
||||
|
||||
If String.IsNullOrEmpty(oFilter.SQLCommand) Then
|
||||
Logger.Warn("SQL Command for filter is empty. Continuing.")
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Logger.Debug("Executing SQL Command: [{0}]", oFilter.SQLCommand)
|
||||
|
||||
Dim oSQLResult = Database.GetDatatable(oFilter.SQLCommand)
|
||||
|
||||
If oSQLResult Is Nothing Then
|
||||
Logger.Warn("SQL Command for filter returned nothing: {0}. Continuing.", oFilter.SQLCommand)
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim oResultList = oSQLResult.AsEnumerable.
|
||||
Select(Function(row) row.ItemEx(0, String.Empty).Trim).
|
||||
ToList()
|
||||
|
||||
Logger.Debug("Filterlist contains [{0}] items", oResultList.Count)
|
||||
|
||||
Dim oTableNodes = oXMLDocument.SelectNodes($"//{oTableName}")
|
||||
|
||||
Logger.Debug("Table contains [{0}] elements", oTableNodes.Count)
|
||||
|
||||
For Each oElementNode As XmlNode In oTableNodes
|
||||
Dim oPath As String = $"./{oFilter.ColumnName}"
|
||||
Dim oSubNode = oElementNode.SelectSingleNode(oPath)
|
||||
|
||||
If oSubNode Is Nothing Then
|
||||
Logger.Warn("Column [{0}] was not found in element.", oFilter.ColumnName)
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim oNodeValue = oSubNode.InnerText.Trim
|
||||
Logger.Debug("Element Value is [{0}]", oNodeValue)
|
||||
|
||||
If Not oResultList.Contains(oNodeValue) Then
|
||||
Logger.Warn("Element for Column [{0}] was not found in filterlist.", oFilter.ColumnName)
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Logger.Info("Removing node [{0}] containing value [{1}]", oPath, oNodeValue)
|
||||
oElementNode.ParentNode.RemoveChild(oElementNode)
|
||||
Next
|
||||
Next
|
||||
|
||||
Return oXMLDocument
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
@@ -397,6 +538,27 @@ Namespace Winline
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function ToQueryString(ByVal nvc As NameValueCollection) As String
|
||||
Dim sb As StringBuilder = New StringBuilder("?")
|
||||
Dim first As Boolean = True
|
||||
|
||||
For Each key As String In nvc.AllKeys
|
||||
|
||||
For Each value As String In nvc.GetValues(key)
|
||||
|
||||
If Not first Then
|
||||
sb.Append("&")
|
||||
End If
|
||||
|
||||
sb.AppendFormat("{0}={1}", Uri.EscapeDataString(key), Uri.EscapeDataString(value))
|
||||
first = False
|
||||
Next
|
||||
Next
|
||||
|
||||
Return sb.ToString()
|
||||
End Function
|
||||
End Class
|
||||
|
||||
|
||||
End Namespace
|
||||
@@ -1,10 +1,13 @@
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports MultiTool.Common.Winline.Entities
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports MultiTool.Common.Templates
|
||||
Imports MultiTool.Common.Constants
|
||||
Imports DigitalData.Modules.Language
|
||||
Imports MultiTool.Common.Templates
|
||||
Imports MultiTool.Common.Exceptions
|
||||
Imports MultiTool.Common.Documents
|
||||
Imports System.Data.SqlClient
|
||||
|
||||
Namespace Winline
|
||||
Public Class WinlineData
|
||||
@@ -14,6 +17,7 @@ Namespace Winline
|
||||
Private ReadOnly Property MandatorConfig As MandatorConfig
|
||||
Private ReadOnly Property MappingConfig As MappingConfig
|
||||
Private ReadOnly Property Patterns As Patterns
|
||||
Private ReadOnly Property FileEx As FilesystemEx
|
||||
|
||||
Public Property Articles As New List(Of Article)
|
||||
Public Property Accounts As New List(Of Account)
|
||||
@@ -29,6 +33,8 @@ Namespace Winline
|
||||
Config = pConfig
|
||||
MandatorConfig = pMandatorConfig
|
||||
MappingConfig = pMappingConfig
|
||||
FileEx = New FilesystemEx(pLogConfig)
|
||||
Years = LoadEconomicYears()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
@@ -65,8 +71,14 @@ Namespace Winline
|
||||
Public Property Year As Integer
|
||||
End Class
|
||||
|
||||
Private Function LoadEconomicYears() As IEnumerable(Of Integer)
|
||||
Dim oCurrentYear = Now.Year
|
||||
Dim oRange As IEnumerable(Of Integer) = Enumerable.Range(oCurrentYear - 10, 12).ToList()
|
||||
Return oRange
|
||||
End Function
|
||||
|
||||
Public Async Function LoadArticles(pMandator As Mandator) As Task
|
||||
|
||||
Public Async Function LoadArticlesAsync(pMandator As Mandator) As Task
|
||||
Logger.Info("Loading Articles for Mandator [{0}]", pMandator)
|
||||
Dim oYear = Config.GetWinLineYear()
|
||||
|
||||
@@ -78,8 +90,8 @@ Namespace Winline
|
||||
[c075] -- EAN
|
||||
FROM [{pMandator.Server}].[{pMandator.Database}].[dbo].[v021]
|
||||
WHERE
|
||||
mesocomp = '{pMandator.Id}'
|
||||
AND mesoyear = {oYear}"
|
||||
c038 IS NULL -- Nur Aktive Artikel
|
||||
AND mesocomp = '{pMandator.Id}' AND mesoyear = {oYear}"
|
||||
|
||||
Dim oTable = Await Database.GetDatatableAsync(oSQL)
|
||||
Dim oArticles As New List(Of Article)
|
||||
@@ -105,7 +117,7 @@ Namespace Winline
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function LoadPackingUnits(pMandator As Mandator) As Task
|
||||
Public Async Function LoadPackingUnitsAsync(pMandator As Mandator) As Task
|
||||
Logger.Info("Loading Packing Units for Mandator [{0}]", pMandator)
|
||||
Dim oYear = Config.GetWinLineYear()
|
||||
|
||||
@@ -156,7 +168,7 @@ Namespace Winline
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function LoadAccounts(pMandator As Mandator) As Task
|
||||
Public Async Function LoadAccountsAsync(pMandator As Mandator) As Task
|
||||
Logger.Info("Loading Accounts for Mandator [{0}]", pMandator)
|
||||
Dim oYear = Config.GetWinLineYear()
|
||||
|
||||
@@ -171,7 +183,8 @@ Namespace Winline
|
||||
[c260] -- GLN
|
||||
FROM [{pMandator.Server}].[{pMandator.Database}].[dbo].[v050]
|
||||
WHERE
|
||||
c139 IS NULL
|
||||
c139 IS NULL -- Kontentyp
|
||||
AND c105 IS NULL -- Inaktiv
|
||||
AND mesocomp = '{pMandator.Id}'
|
||||
AND mesoyear = {oYear}"
|
||||
Dim oTable = Await Database.GetDatatableAsync(oSQL)
|
||||
@@ -208,7 +221,7 @@ Namespace Winline
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function LoadMandators() As Task
|
||||
Public Async Function LoadMandatorsAsync() As Task
|
||||
Try
|
||||
Dim oSQL = "SELECT [c000], [c003], [c004] FROM [cwlsystem].[dbo].[T001SRV] (NOLOCK)"
|
||||
Dim oTable = Await Database.GetDatatableAsync(oSQL)
|
||||
@@ -242,13 +255,9 @@ Namespace Winline
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Sub LoadEconomicYears()
|
||||
Dim oCurrentYear = Now.Year
|
||||
Dim oRange As IEnumerable(Of Integer) = Enumerable.Range(oCurrentYear - 10, 12).ToList()
|
||||
Years = oRange
|
||||
End Sub
|
||||
|
||||
Public Async Function LoadDocumentKinds(pMandator As Mandator) As Task
|
||||
|
||||
Public Async Function LoadDocumentKindsAsync(pMandator As Mandator) As Task
|
||||
Dim oYear As Integer = Config.GetWinLineYear()
|
||||
|
||||
Try
|
||||
@@ -263,6 +272,7 @@ Namespace Winline
|
||||
[c001] LIKE 'Werk%(VK)' OR
|
||||
[c001] LIKE 'Werk%(WK)'
|
||||
)
|
||||
AND c129 IS NULL -- Inaktiv
|
||||
AND [mesocomp] = '{pMandator.Id}' AND [mesoyear] = {oYear}"
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSQL)
|
||||
Dim oKinds As New List(Of DocumentKind)
|
||||
@@ -389,11 +399,11 @@ Namespace Winline
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function TryGetArticlePrice(pArticle As String, pAccountNumber As String, pQuantity As String, pDocumentDate As Date, pMandator As Mandator, pTemplate As Template) As Task(Of Double)
|
||||
Return Await TryGetArticlePrice(pArticle, pAccountNumber, pQuantity, pDocumentDate, pMandator, pTemplate, 0)
|
||||
Public Async Function TryGetArticlePriceAsync(pArticle As String, pAccountNumber As String, pQuantity As String, pDocumentDate As Date, pMandator As Mandator, pTemplate As Template) As Task(Of Double)
|
||||
Return Await TryGetArticlePriceAsync(pArticle, pAccountNumber, pQuantity, pDocumentDate, pMandator, pTemplate, 0)
|
||||
End Function
|
||||
|
||||
Public Async Function TryGetArticlePrice(pArticle As String, pAccountNumber As String, pQuantity As String, pDocumentDate As Date, pMandator As Mandator, pTemplate As Template, pWaitingDays As Integer) As Task(Of Double)
|
||||
Public Async Function TryGetArticlePriceAsync(pArticle As String, pAccountNumber As String, pQuantity As String, pDocumentDate As Date, pMandator As Mandator, pTemplate As Template, pWaitingDays As Integer) As Task(Of Double)
|
||||
Try
|
||||
Dim oUserName = Environment.UserName
|
||||
Dim oYear As Integer = Config.GetWinLineYear()
|
||||
@@ -406,6 +416,9 @@ Namespace Winline
|
||||
Dim oDateTo = pDocumentDate
|
||||
|
||||
Dim oSQL As String = $"
|
||||
SET SHOWPLAN_ALL OFF;
|
||||
SET NOCOUNT ON;
|
||||
SET ARITHABORT ON;
|
||||
EXEC [{pMandator.Database}].[dbo].[PRCUST_GET_ACCOUNT_PRICE_CONDITION_VALUES]
|
||||
@pAccountNr = '{pAccountNumber}',
|
||||
@pGroupNr = '*',
|
||||
@@ -421,9 +434,14 @@ Namespace Winline
|
||||
@pPrintDebug = 0,
|
||||
@pLog2DB = {oDebug},
|
||||
@pComment = 'Multitool/{pTemplate.Name}',
|
||||
@pResultType = 'CalcPricing'
|
||||
@pResultType = 'CalcPricing';
|
||||
SET NOCOUNT OFF;
|
||||
"
|
||||
Dim oTable As DataTable = Await Database.GetDatatableAsync(oSQL)
|
||||
|
||||
Dim oTable As DataTable
|
||||
Using oConnection As SqlConnection = Database.GetConnection()
|
||||
oTable = Await Database.GetDatatableWithConnectionObjectAsync(oSQL, oConnection, MSSQLServer.TransactionMode.NoTransaction)
|
||||
End Using
|
||||
|
||||
If oTable.Rows.Count = 0 Then
|
||||
Logger.Debug("Price for article [{0}] and Account [{1}] was not found in Mandator: [{2}]", pArticle, pAccountNumber, pMandator.Id)
|
||||
@@ -476,7 +494,7 @@ Namespace Winline
|
||||
''' <summary>
|
||||
''' This function is completely SCHAUM related.
|
||||
''' </summary>
|
||||
Public Async Function TryGetWaitingDays(pDocumentKind As Integer, pMandator As Mandator) As Task(Of Integer)
|
||||
Public Async Function TryGetWaitingDaysAsync(pDocumentKind As Integer, pMandator As Mandator) As Task(Of Integer)
|
||||
Try
|
||||
Dim oSql = $"
|
||||
SELECT [Karenztage].[u012] FROM [{pMandator.Database}].[dbo].[t670] As [Werksdefinition]
|
||||
@@ -503,6 +521,12 @@ Namespace Winline
|
||||
|
||||
Public Function TryGetArticleNumber(pEAN As String, pMandator As Mandator) As String
|
||||
Try
|
||||
If pEAN = String.Empty Then
|
||||
Logger.Warn("Could not get ArticleNumber, EAN is empty.")
|
||||
Return Nothing
|
||||
|
||||
End If
|
||||
|
||||
Dim oYear As Integer = Config.GetWinLineYear()
|
||||
Dim oSQL As String = $"
|
||||
SELECT
|
||||
@@ -511,11 +535,13 @@ Namespace Winline
|
||||
[c075], -- EAN-Nummer
|
||||
[c123] -- Ersatzartikelnummer
|
||||
FROM [{pMandator.Database}].[dbo].[v021]
|
||||
WHERE [c075] = '{pEAN}'
|
||||
WHERE
|
||||
[c075] = '{pEAN}'
|
||||
AND [c038] IS NULL -- Nur Aktive Artikel
|
||||
AND [mesocomp] = '{pMandator.Id}' AND [mesoyear] = {oYear}"
|
||||
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
||||
|
||||
' EAN not found in this Mandator, continue to next one
|
||||
' EAN not found in this Mandator
|
||||
If oTable.Rows.Count = 0 Then
|
||||
Logger.Debug("EAN [{0}] was not found in Mandator: [{1}]", pEAN, pMandator.Id)
|
||||
Return Nothing
|
||||
@@ -531,6 +557,8 @@ Namespace Winline
|
||||
|
||||
Dim oRow As DataRow = oTable.Rows.Item(0)
|
||||
Dim oArticleNumber As String = ItemEx(oRow, V21_MAINARTICLENUMBER, String.Empty)
|
||||
Logger.Info("Found ArticleNumber [{0}] in Column [{1}]", oArticleNumber, V21_MAINARTICLENUMBER)
|
||||
|
||||
Return oArticleNumber
|
||||
|
||||
Catch ex As Exception
|
||||
@@ -549,7 +577,7 @@ Namespace Winline
|
||||
FROM [{pMandator.Database}].[dbo].[v021]
|
||||
WHERE [c011] = '{pArticleNumber}'
|
||||
AND [mesocomp] = '{pMandator.Id}' AND [mesoyear] = {oYear}"
|
||||
Dim oEAN As String = Database.GetScalarValue(oSQL)
|
||||
Dim oEAN As String = ObjectEx.NotNull(Database.GetScalarValue(oSQL), Nothing)
|
||||
|
||||
' EAN not found in this Mandator, continue to next one
|
||||
If oEAN Is Nothing Then
|
||||
@@ -614,6 +642,7 @@ Namespace Winline
|
||||
[c123] -- Ersatzartikelnummer
|
||||
FROM [{pMandator.Database}].[dbo].[v021]
|
||||
WHERE [c011] = '{pArticleNumber}'
|
||||
AND c038 IS NULL -- Nur Aktive Artikel
|
||||
AND [mesocomp] = '{pMandator.Id}' AND [mesoyear] = {oYear}"
|
||||
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
||||
|
||||
@@ -678,6 +707,7 @@ Namespace Winline
|
||||
[c123] -- Ersatzartikelnummer
|
||||
FROM [{oMandator.Database}].[dbo].[v021]
|
||||
WHERE [c075] = '{oEANNumber}'
|
||||
AND [c038] IS NULL
|
||||
AND [mesocomp] = '{oMandator.Id}' AND [mesoyear] = {oYear}"
|
||||
Dim oTable As DataTable = Database.GetDatatable(oSQL)
|
||||
|
||||
@@ -872,7 +902,7 @@ Namespace Winline
|
||||
|
||||
For Each oRow As DataRow In oTable.Rows
|
||||
Try
|
||||
Dim oDocument = GetDocumentFromDataRow(oRow)
|
||||
Dim oDocument = GetDocumentFromDataRow(oRow, pDocumentType)
|
||||
oDocument.Schema = pTemplate
|
||||
oDocuments.Add(oDocument)
|
||||
|
||||
@@ -892,7 +922,70 @@ Namespace Winline
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function ExecuteFinalSQL(pDocument As ExportDocument, pTemplate As Template, pMandator As Mandator) As Task(Of Boolean)
|
||||
Private ReadOnly RunningNumberVersionRegex As Regex = New Regex("~\d{1,3}$")
|
||||
Private ReadOnly RunningNumberMaximumLength As Integer = 20
|
||||
|
||||
Public Async Function GetVersionedRunningNumberAsync(pDocument As Document, pMandator As Mandator, pAccountNumber As String, pRunningNumber As String) As Task(Of String)
|
||||
Try
|
||||
Dim oYear As Integer = Config.GetWinLineYear()
|
||||
Dim oSql As String = $"
|
||||
SELECT COUNT(*) FROM [{pMandator.Database}].[dbo].[v250]
|
||||
WHERE
|
||||
[c021] = '{pAccountNumber}' AND -- Account '
|
||||
[c022] = '{pRunningNumber}' AND -- Running Number '
|
||||
--[c035] = '4711' -- Belegart, needed?
|
||||
[c144] IS NULL AND -- Stornonummer Angebot
|
||||
[c145] IS NULL AND -- Stornonummer Auftrag
|
||||
[c146] IS NULL AND -- Stornonummer Lieferschein
|
||||
[c147] IS NULL AND -- Stornonummer Faktura
|
||||
[mesocomp] = '{pMandator.Id}' --AND [mesoyear] = {oYear}
|
||||
"
|
||||
|
||||
Dim oExistingCount = Await Database.GetScalarValueAsync(oSql)
|
||||
|
||||
If oExistingCount = 0 Then
|
||||
Logger.Debug("Running number [{0}] does not exist yet. Returning.", pRunningNumber)
|
||||
Return pRunningNumber
|
||||
Else
|
||||
Logger.Debug("Running number [{0}] already exists. Checking again.", pRunningNumber)
|
||||
Dim oVersionResult = FileEx.GetVersionedString(pRunningNumber)
|
||||
Dim oNewVersion = oVersionResult.Item2 + 1
|
||||
Dim oFinalLength As Integer = oVersionResult.Item1.Count + oNewVersion.ToString.Count + 1
|
||||
|
||||
If oFinalLength > RunningNumberMaximumLength Then
|
||||
Logger.Warn("Running number is too long ({0} chars total) and cannot be versioned. Versioning needs at least 2 characters.", oFinalLength)
|
||||
pDocument.AddDocumentError(DocumentErrorType.AttributeValidationFailed, "Das Feld Laufnummer hat die zulässige Länge überschritten.")
|
||||
Return pRunningNumber
|
||||
End If
|
||||
|
||||
Return Await GetVersionedRunningNumberAsync(pDocument, pMandator, pAccountNumber, $"{oVersionResult.Item1}~{oNewVersion}")
|
||||
End If
|
||||
|
||||
Catch ex As MultiToolException
|
||||
Logger.Error(ex)
|
||||
Throw ex
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Error while getting versioned running number for mandator [{0}] and running number [{1}]", pMandator, pRunningNumber)
|
||||
Logger.Error(ex)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function VersionNumber(pNumber As String) As String
|
||||
Dim oRunningNumberBase As String
|
||||
|
||||
If RunningNumberVersionRegex.IsMatch(pNumber) Then
|
||||
Dim oSplitNumber = pNumber.Split("~")
|
||||
oRunningNumberBase = oSplitNumber.First()
|
||||
Dim oRunningNumberVersion As Integer = Integer.Parse(oSplitNumber.Last())
|
||||
Return $"{oRunningNumberBase}~{oRunningNumberVersion + 1}"
|
||||
Else
|
||||
Return $"{pNumber}~2"
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Async Function ExecuteFinalSQLForExport(pDocument As ExportDocument, pTemplate As Template, pMandator As Mandator) As Task(Of Boolean)
|
||||
Try
|
||||
Dim oSql As String = Patterns.ReplaceForExport(pDocument, pMandator, pTemplate.FinalSQL)
|
||||
Return Await Database.ExecuteNonQueryAsync(oSql)
|
||||
@@ -903,17 +996,30 @@ Namespace Winline
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function GetDocumentFromDataRow(pDataRow As DataRow) As ExportDocument
|
||||
Public Async Function ExecuteFinalSQLForImport(pDocument As Document, pTemplate As Template, pReportFilename As String) As Task(Of Boolean)
|
||||
Try
|
||||
Dim oSql As String = Patterns.ReplaceForImportFinalSQL(pDocument, pReportFilename, pTemplate.FinalSQL)
|
||||
Return Await Database.ExecuteNonQueryAsync(oSql)
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function GetDocumentFromDataRow(pDataRow As DataRow, pDocumentType As DocumentType) As ExportDocument
|
||||
Dim oAccountNumber = pDataRow.Item("ACCOUNT_NUMBER")
|
||||
Dim oRunningNumber As String = pDataRow.Item("RUNNING_NUMBER")
|
||||
Dim oDocumentType As Integer = pDataRow.Item("DOCUMENT_TYPE")
|
||||
Dim oDocumentKind As Integer = pDataRow.Item("DOCUMENT_KIND")
|
||||
Dim oGrossAmount As Double = pDataRow.Item("GROSS_AMOUNT")
|
||||
Dim oNetAmount As Double = pDataRow.Item("NET_AMOUNT")
|
||||
Dim oExported As Boolean = pDataRow.ItemEx("ALREADY_EXPORTED", False)
|
||||
|
||||
Dim oExportedType As Integer = pDataRow.ItemEx("ALREADY_EXPORTED", 0)
|
||||
Dim oExportedWho As String = pDataRow.ItemEx("EXPORTED_WHO", "")
|
||||
Dim oExportedWhen As Date = pDataRow.ItemEx(Of Date)("EXPORTED_WHEN", Nothing)
|
||||
Dim oExportFile As String = pDataRow.ItemEx("EXPORTED_FILE", "")
|
||||
Dim oExportedFile As String = pDataRow.ItemEx("EXPORTED_FILE", "")
|
||||
Dim oIsExported As Boolean = GetIsExported(oExportedType, pDocumentType)
|
||||
|
||||
Dim oDocumentNumber As String = Nothing
|
||||
Dim oDocumentDate As Date = Nothing
|
||||
@@ -928,19 +1034,22 @@ Namespace Winline
|
||||
FirstOrDefault()
|
||||
|
||||
Select Case oDocumentType
|
||||
Case 1
|
||||
Case 1, -1
|
||||
oDocumentNumber = pDataRow.Item("OFFER_NUMBER")
|
||||
oDocumentDate = pDataRow.Item("OFFER_DATE")
|
||||
oDocumentDateColumn = "c027"
|
||||
Case 2
|
||||
|
||||
Case 2, -2
|
||||
oDocumentNumber = pDataRow.Item("ORDER_NUMBER")
|
||||
oDocumentDate = pDataRow.Item("ORDER_DATE")
|
||||
oDocumentDateColumn = "c028"
|
||||
Case 3
|
||||
|
||||
Case 3, -3
|
||||
oDocumentNumber = pDataRow.Item("DELIVERY_NUMBER")
|
||||
oDocumentDate = pDataRow.Item("DELIVERY_DATE")
|
||||
oDocumentDateColumn = "c029"
|
||||
Case 4
|
||||
|
||||
Case 4, -4
|
||||
oDocumentNumber = pDataRow.Item("INVOICE_NUMBER")
|
||||
oDocumentDate = pDataRow.Item("INVOICE_DATE")
|
||||
oDocumentDateColumn = "c032"
|
||||
@@ -956,15 +1065,31 @@ Namespace Winline
|
||||
.Kind = oKind,
|
||||
.GrossAmount = oGrossAmount,
|
||||
.NetAmount = oNetAmount,
|
||||
.IsExported = oExported,
|
||||
.ExportedWhen = oExportedWhen,
|
||||
.ExportedWho = oExportedWho,
|
||||
.FilenameExport = oExportFile
|
||||
.FilenameExport = oExportedFile,
|
||||
.IsExported = oIsExported
|
||||
}
|
||||
|
||||
Return oDocument
|
||||
End Function
|
||||
|
||||
Private Function GetIsExported(pExportedType As Integer, pDocumentType As DocumentType) As Boolean
|
||||
Dim oIsExported = False
|
||||
|
||||
If pExportedType = 1 AndAlso (pDocumentType = DocumentType.IncomingOffer Or pDocumentType = DocumentType.OutgoingOffer) Then
|
||||
oIsExported = True
|
||||
ElseIf pExportedType = 2 AndAlso (pDocumentType = DocumentType.IncomingOrder Or pDocumentType = DocumentType.OutgoingOrder) Then
|
||||
oIsExported = True
|
||||
ElseIf pExportedType = 3 AndAlso (pDocumentType = DocumentType.IncomingDeliveryNote Or pDocumentType = DocumentType.OutgoingDeliveryNote) Then
|
||||
oIsExported = True
|
||||
ElseIf pExportedType = 4 AndAlso (pDocumentType = DocumentType.IncomingInvoice Or pDocumentType = DocumentType.OutgoingInvoice) Then
|
||||
oIsExported = True
|
||||
End If
|
||||
|
||||
Return oIsExported
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Turns a database info like "SQLCWLDATEN on SERVER\INSTANCE" into a Tuple of two strings
|
||||
''' </summary>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AutoMapper" version="10.1.1" targetFramework="net461" />
|
||||
<package id="NLog" version="4.7.10" targetFramework="net461" />
|
||||
<package id="NLog" version="5.1.0" targetFramework="net461" />
|
||||
</packages>
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System">
|
||||
<section name="DevExpress.LookAndFeel.Design.AppSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
<section name="DevExpress.LookAndFeel.Design.AppSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<applicationSettings>
|
||||
@@ -41,14 +41,22 @@
|
||||
<value>PerMonitorV2</value>
|
||||
</setting>
|
||||
<setting name="CustomPaletteCollection" serializeAs="Xml">
|
||||
<value />
|
||||
<value/>
|
||||
</setting>
|
||||
</DevExpress.LookAndFeel.Design.AppSettings>
|
||||
</applicationSettings>
|
||||
<connectionStrings>
|
||||
<add name="MultiTool.Form.My.MySettings.DD_ECMConnectionString" connectionString="Data Source=SDD-VMP04-SQL17\SCHAUM;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd" providerName="System.Data.SqlClient" />
|
||||
<add name="MultiTool.Form.My.MySettings.DD_ECMConnectionString" connectionString="Data Source=SDD-VMP04-SQL17\SCHAUM;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd" providerName="System.Data.SqlClient"/>
|
||||
</connectionStrings>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
15
MultiTool.Form/ApplicationEvents.vb
Normal file
15
MultiTool.Form/ApplicationEvents.vb
Normal file
@@ -0,0 +1,15 @@
|
||||
Imports Microsoft.VisualBasic.ApplicationServices
|
||||
|
||||
Namespace My
|
||||
' Für MyApplication sind folgende Ereignisse verfügbar:
|
||||
' Startup: Wird beim Starten der Anwendung noch vor dem Erstellen des Startformulars ausgelöst.
|
||||
' Shutdown: Wird nach dem Schließen aller Anwendungsformulare ausgelöst. Dieses Ereignis wird nicht ausgelöst, wenn die Anwendung mit einem Fehler beendet wird.
|
||||
' UnhandledException: Wird bei einem Ausnahmefehler ausgelöst.
|
||||
' StartupNextInstance: Wird beim Starten einer Einzelinstanzanwendung ausgelöst, wenn die Anwendung bereits aktiv ist.
|
||||
' NetworkAvailabilityChanged: Wird beim Herstellen oder Trennen der Netzwerkverbindung ausgelöst.
|
||||
Partial Friend Class MyApplication
|
||||
Protected Overrides Function OnUnhandledException(e As UnhandledExceptionEventArgs) As Boolean
|
||||
Return MyBase.OnUnhandledException(e)
|
||||
End Function
|
||||
End Class
|
||||
End Namespace
|
||||
4087
MultiTool.Form/DS_DD_ECM.Designer.vb
generated
4087
MultiTool.Form/DS_DD_ECM.Designer.vb
generated
File diff suppressed because it is too large
Load Diff
@@ -9,68 +9,76 @@
|
||||
<Tables>
|
||||
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="TBMT_TEMPLATE_ITEMSTableAdapter" GeneratorDataComponentClassName="TBMT_TEMPLATE_ITEMSTableAdapter" Name="TBMT_TEMPLATE_ITEMS" UserDataComponentName="TBMT_TEMPLATE_ITEMSTableAdapter">
|
||||
<MainSource>
|
||||
<DbSource ConnectionRef="DD_ECMConnectionString (MySettings)" DbObjectName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
<DbSource ConnectionRef="DD_ECMConnectionString (MySettings)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
<DeleteCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>DELETE FROM TBMT_TEMPLATE_ITEMS
|
||||
WHERE (GUID = @Original_GUID)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</DeleteCommand>
|
||||
<InsertCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>INSERT INTO [TBMT_TEMPLATE_ITEMS] ([ORDER_KEY], [XML_NAME], [XML_TABLE_ID], [XML_TYPE_ID], [IS_READ_ONLY], [IS_VISIBLE], [IS_REQUIRED], [IS_VIRTUAL], [FUNCTION_ID], [FUNCTION_PARAMETERS], [ADDED_WHO], [ADDED_WHEN], [CHANGED_WHO], [CHANGED_WHEN]) VALUES (@ORDER_KEY, @XML_NAME, @XML_TABLE_ID, @XML_TYPE_ID, @IS_READ_ONLY, @IS_VISIBLE, @IS_REQUIRED, @IS_VIRTUAL, @FUNCTION_ID, @FUNCTION_PARAMETERS, @ADDED_WHO, @ADDED_WHEN, @CHANGED_WHO, @CHANGED_WHEN);
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<CommandText>INSERT INTO TBMT_TEMPLATE_ITEMS
|
||||
(ORDER_KEY, NAME, TABLE_ID, TYPE_ID, IS_READ_ONLY, IS_VISIBLE, IS_REQUIRED, IS_VIRTUAL, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN)
|
||||
VALUES (@ORDER_KEY,@NAME,@TABLE_ID,@TYPE_ID,@IS_READ_ONLY,@IS_VISIBLE,@IS_REQUIRED,@IS_VIRTUAL,@ADDED_WHO,@ADDED_WHEN,@CHANGED_WHO,@CHANGED_WHEN);
|
||||
SELECT GUID, ORDER_KEY, XML_NAME, XML_TABLE_ID, XML_TYPE_ID, IS_READ_ONLY, IS_VISIBLE, IS_REQUIRED, IS_VIRTUAL, FUNCTION_ID, FUNCTION_PARAMETERS, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM TBMT_TEMPLATE_ITEMS WHERE (GUID = SCOPE_IDENTITY())</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@ORDER_KEY" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ORDER_KEY" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@XML_NAME" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="XML_NAME" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@XML_TABLE_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="XML_TABLE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@XML_TYPE_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="XML_TYPE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@IS_READ_ONLY" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="IS_READ_ONLY" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@IS_VISIBLE" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="IS_VISIBLE" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@IS_REQUIRED" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="IS_REQUIRED" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@IS_VIRTUAL" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="IS_VIRTUAL" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@FUNCTION_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="FUNCTION_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@FUNCTION_PARAMETERS" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="FUNCTION_PARAMETERS" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="ORDER_KEY" ColumnName="ORDER_KEY" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@ORDER_KEY" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="ORDER_KEY" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="NAME" ColumnName="NAME" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="nvarchar(50)" DbType="String" Direction="Input" ParameterName="@NAME" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumn="NAME" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="TABLE_ID" ColumnName="TABLE_ID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@TABLE_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="TABLE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="TYPE_ID" ColumnName="TYPE_ID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@TYPE_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="TYPE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="IS_READ_ONLY" ColumnName="IS_READ_ONLY" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@IS_READ_ONLY" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="IS_READ_ONLY" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="IS_VISIBLE" ColumnName="IS_VISIBLE" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@IS_VISIBLE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="IS_VISIBLE" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="IS_REQUIRED" ColumnName="IS_REQUIRED" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@IS_REQUIRED" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="IS_REQUIRED" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="IS_VIRTUAL" ColumnName="IS_VIRTUAL" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@IS_VIRTUAL" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="IS_VIRTUAL" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="ADDED_WHO" ColumnName="ADDED_WHO" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="nvarchar(50)" DbType="String" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="ADDED_WHEN" ColumnName="ADDED_WHEN" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="datetime" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="8" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="CHANGED_WHO" ColumnName="CHANGED_WHO" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="nvarchar(50)" DbType="String" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="CHANGED_WHEN" ColumnName="CHANGED_WHEN" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="datetime" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="8" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</InsertCommand>
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<CommandText>SELECT TBMT_TEMPLATE_ITEMS.*
|
||||
FROM TBMT_TEMPLATE_ITEMS</CommandText>
|
||||
<Parameters />
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>SELECT TBMT_TEMPLATE_ITEMS.GUID, TBMT_TEMPLATE_ITEMS.ORDER_KEY, TBMT_TEMPLATE_ITEMS.NAME, TBMT_TEMPLATE_ITEMS.TABLE_ID, TBMT_TEMPLATE_ITEMS.TYPE_ID, TBMT_TEMPLATE_ITEMS.IS_READ_ONLY,
|
||||
TBMT_TEMPLATE_ITEMS.IS_VISIBLE, TBMT_TEMPLATE_ITEMS.IS_REQUIRED, TBMT_TEMPLATE_ITEMS.IS_VIRTUAL, TBMT_TEMPLATE_ITEMS.ACTIVE, TBMT_TEMPLATE_ITEMS.COMMENT,
|
||||
TBMT_TEMPLATE_ITEMS.ADDED_WHO, TBMT_TEMPLATE_ITEMS.ADDED_WHEN, TBMT_TEMPLATE_ITEMS.CHANGED_WHO, TBMT_TEMPLATE_ITEMS.CHANGED_WHEN, TBTEMPLATES.NAME AS TEMPLATE_NAME,
|
||||
TBTABLES.NAME AS TABLE_NAME, TBMT_TEMPLATE_ITEMS.PREFER_EXTERNAL
|
||||
FROM TBMT_TEMPLATE_ITEMS INNER JOIN
|
||||
TBMT_TABLES AS TBTABLES ON TBMT_TEMPLATE_ITEMS.TABLE_ID = TBTABLES.GUID INNER JOIN
|
||||
TBMT_TEMPLATES AS TBTEMPLATES ON TBTABLES.TEMPLATE_ID = TBTEMPLATES.GUID
|
||||
WHERE (TBMT_TEMPLATE_ITEMS.TABLE_ID = @TABLE_ID)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="TABLE_ID" ColumnName="TABLE_ID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@TABLE_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="TABLE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
<UpdateCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<CommandText>UPDATE TBMT_TEMPLATE_ITEMS
|
||||
SET ORDER_KEY = @ORDER_KEY, XML_NAME = @XML_NAME, XML_TABLE_ID = @XML_TABLE_ID, XML_TYPE_ID = @XML_TYPE_ID, IS_READ_ONLY = @IS_READ_ONLY, IS_VISIBLE = @IS_VISIBLE,
|
||||
IS_REQUIRED = @IS_REQUIRED, IS_VIRTUAL = @IS_VIRTUAL, FUNCTION_ID = @FUNCTION_ID, FUNCTION_PARAMETERS = @FUNCTION_PARAMETERS, ADDED_WHO = @ADDED_WHO, ADDED_WHEN = @ADDED_WHEN,
|
||||
CHANGED_WHO = @CHANGED_WHO, CHANGED_WHEN = @CHANGED_WHEN
|
||||
SET ORDER_KEY = @ORDER_KEY, NAME = @XML_NAME, TABLE_ID = @XML_TABLE_ID, TYPE_ID = @XML_TYPE_ID, IS_READ_ONLY = @IS_READ_ONLY, IS_VISIBLE = @IS_VISIBLE, IS_REQUIRED = @IS_REQUIRED,
|
||||
IS_VIRTUAL = @IS_VIRTUAL, ADDED_WHO = @ADDED_WHO, ADDED_WHEN = @ADDED_WHEN, CHANGED_WHO = @CHANGED_WHO, CHANGED_WHEN = @CHANGED_WHEN, PREFER_EXTERNAL = @PREFER_EXTERNAL,
|
||||
ACTIVE = @ACTIVE
|
||||
WHERE (GUID = @Original_GUID);
|
||||
SELECT GUID, ORDER_KEY, XML_NAME, XML_TABLE_ID, XML_TYPE_ID, IS_READ_ONLY, IS_VISIBLE, IS_REQUIRED, IS_VIRTUAL, FUNCTION_ID, FUNCTION_PARAMETERS, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM TBMT_TEMPLATE_ITEMS WHERE (GUID = @GUID)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="ORDER_KEY" ColumnName="ORDER_KEY" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@ORDER_KEY" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="ORDER_KEY" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="XML_NAME" ColumnName="XML_NAME" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="nvarchar(50)" DbType="String" Direction="Input" ParameterName="@XML_NAME" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumn="XML_NAME" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="XML_TABLE_ID" ColumnName="XML_TABLE_ID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@XML_TABLE_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="XML_TABLE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="XML_TYPE_ID" ColumnName="XML_TYPE_ID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@XML_TYPE_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="XML_TYPE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="XML_NAME" ColumnName="NAME" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="nvarchar(50)" DbType="String" Direction="Input" ParameterName="@XML_NAME" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumn="NAME" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="XML_TABLE_ID" ColumnName="TABLE_ID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@XML_TABLE_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="TABLE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="XML_TYPE_ID" ColumnName="TYPE_ID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@XML_TYPE_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="TYPE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="IS_READ_ONLY" ColumnName="IS_READ_ONLY" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@IS_READ_ONLY" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="IS_READ_ONLY" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="IS_VISIBLE" ColumnName="IS_VISIBLE" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@IS_VISIBLE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="IS_VISIBLE" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="IS_REQUIRED" ColumnName="IS_REQUIRED" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@IS_REQUIRED" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="IS_REQUIRED" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="IS_VIRTUAL" ColumnName="IS_VIRTUAL" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@IS_VIRTUAL" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="IS_VIRTUAL" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="FUNCTION_ID" ColumnName="FUNCTION_ID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@FUNCTION_ID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="FUNCTION_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="FUNCTION_PARAMETERS" ColumnName="FUNCTION_PARAMETERS" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="nvarchar(MAX)" DbType="String" Direction="Input" ParameterName="@FUNCTION_PARAMETERS" Precision="0" ProviderType="NVarChar" Scale="0" Size="2147483647" SourceColumn="FUNCTION_PARAMETERS" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="ADDED_WHO" ColumnName="ADDED_WHO" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="nvarchar(50)" DbType="String" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="ADDED_WHEN" ColumnName="ADDED_WHEN" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="datetime" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="8" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="CHANGED_WHO" ColumnName="CHANGED_WHO" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="nvarchar(50)" DbType="String" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="50" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="CHANGED_WHEN" ColumnName="CHANGED_WHEN" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="datetime" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="8" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="PREFER_EXTERNAL" ColumnName="PREFER_EXTERNAL" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@PREFER_EXTERNAL" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="PREFER_EXTERNAL" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="ACTIVE" ColumnName="ACTIVE" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="bit" DbType="Boolean" Direction="Input" ParameterName="@ACTIVE" Precision="0" ProviderType="Bit" Scale="0" Size="1" SourceColumn="ACTIVE" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="Original_GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBMT_TEMPLATE_ITEMS" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
</Parameters>
|
||||
@@ -80,20 +88,26 @@ SELECT GUID, ORDER_KEY, XML_NAME, XML_TABLE_ID, XML_TYPE_ID, IS_READ_ONLY, IS_VI
|
||||
</MainSource>
|
||||
<Mappings>
|
||||
<Mapping SourceColumn="GUID" DataSetColumn="GUID" />
|
||||
<Mapping SourceColumn="XML_NAME" DataSetColumn="XML_NAME" />
|
||||
<Mapping SourceColumn="XML_TYPE_ID" DataSetColumn="XML_TYPE_ID" />
|
||||
<Mapping SourceColumn="XML_NAME" DataSetColumn="NAME" />
|
||||
<Mapping SourceColumn="XML_TYPE_ID" DataSetColumn="TYPE_ID" />
|
||||
<Mapping SourceColumn="IS_READ_ONLY" DataSetColumn="IS_READ_ONLY" />
|
||||
<Mapping SourceColumn="IS_VISIBLE" DataSetColumn="IS_VISIBLE" />
|
||||
<Mapping SourceColumn="ORDER_KEY" DataSetColumn="ORDER_KEY" />
|
||||
<Mapping SourceColumn="FUNCTION_ID" DataSetColumn="FUNCTION_ID" />
|
||||
<Mapping SourceColumn="IS_REQUIRED" DataSetColumn="IS_REQUIRED" />
|
||||
<Mapping SourceColumn="XML_TABLE_ID" DataSetColumn="XML_TABLE_ID" />
|
||||
<Mapping SourceColumn="XML_TABLE_ID" DataSetColumn="TABLE_ID" />
|
||||
<Mapping SourceColumn="IS_VIRTUAL" DataSetColumn="IS_VIRTUAL" />
|
||||
<Mapping SourceColumn="FUNCTION_PARAMETERS" DataSetColumn="FUNCTION_PARAMETERS" />
|
||||
<Mapping SourceColumn="ADDED_WHO" DataSetColumn="ADDED_WHO" />
|
||||
<Mapping SourceColumn="ADDED_WHEN" DataSetColumn="ADDED_WHEN" />
|
||||
<Mapping SourceColumn="CHANGED_WHO" DataSetColumn="CHANGED_WHO" />
|
||||
<Mapping SourceColumn="CHANGED_WHEN" DataSetColumn="CHANGED_WHEN" />
|
||||
<Mapping SourceColumn="ACTIVE" DataSetColumn="ACTIVE" />
|
||||
<Mapping SourceColumn="COMMENT" DataSetColumn="COMMENT" />
|
||||
<Mapping SourceColumn="TEMPLATE_NAME" DataSetColumn="TEMPLATE_NAME" />
|
||||
<Mapping SourceColumn="TABLE_NAME" DataSetColumn="TABLE_NAME" />
|
||||
<Mapping SourceColumn="PREFER_EXTERNAL" DataSetColumn="PREFER_EXTERNAL" />
|
||||
<Mapping SourceColumn="NAME" DataSetColumn="NAME" />
|
||||
<Mapping SourceColumn="TABLE_ID" DataSetColumn="TABLE_ID" />
|
||||
<Mapping SourceColumn="TYPE_ID" DataSetColumn="TYPE_ID" />
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
@@ -385,175 +399,284 @@ WHERE (TEMPLATE_ID IS NULL)</CommandText>
|
||||
</DbSource>
|
||||
</Sources>
|
||||
</TableAdapter>
|
||||
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="TBMT_TABLESTableAdapter" GeneratorDataComponentClassName="TBMT_TABLESTableAdapter" Name="TBMT_TABLES" UserDataComponentName="TBMT_TABLESTableAdapter">
|
||||
<MainSource>
|
||||
<DbSource ConnectionRef="DD_ECMConnectionString (MySettings)" DbObjectName="DD_ECM.dbo.TBMT_TABLES" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
|
||||
<DeleteCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>DELETE FROM [TBMT_TABLES] WHERE (([GUID] = @Original_GUID) AND ([TEMPLATE_ID] = @Original_TEMPLATE_ID) AND ([IS_HEAD] = @Original_IS_HEAD) AND ([ACTIVE] = @Original_ACTIVE) AND ((@IsNull_COMMENT = 1 AND [COMMENT] IS NULL) OR ([COMMENT] = @Original_COMMENT)) AND ([ADDED_WHO] = @Original_ADDED_WHO) AND ((@IsNull_ADDED_WHEN = 1 AND [ADDED_WHEN] IS NULL) OR ([ADDED_WHEN] = @Original_ADDED_WHEN)) AND ((@IsNull_CHANGED_WHO = 1 AND [CHANGED_WHO] IS NULL) OR ([CHANGED_WHO] = @Original_CHANGED_WHO)) AND ((@IsNull_CHANGED_WHEN = 1 AND [CHANGED_WHEN] IS NULL) OR ([CHANGED_WHEN] = @Original_CHANGED_WHEN)))</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_TEMPLATE_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="TEMPLATE_ID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_IS_HEAD" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="IS_HEAD" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_ACTIVE" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="ACTIVE" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_COMMENT" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="COMMENT" SourceColumnNullMapping="true" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_COMMENT" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="COMMENT" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_ADDED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ADDED_WHEN" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="true" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHO" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="true" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_CHANGED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHEN" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="true" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</DeleteCommand>
|
||||
<InsertCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>INSERT INTO [TBMT_TABLES] ([NAME], [TEMPLATE_ID], [IS_HEAD], [ACTIVE], [COMMENT], [ADDED_WHO], [ADDED_WHEN], [CHANGED_WHO], [CHANGED_WHEN]) VALUES (@NAME, @TEMPLATE_ID, @IS_HEAD, @ACTIVE, @COMMENT, @ADDED_WHO, @ADDED_WHEN, @CHANGED_WHO, @CHANGED_WHEN);
|
||||
SELECT GUID, NAME, TEMPLATE_ID, IS_HEAD, ACTIVE, COMMENT, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM TBMT_TABLES WHERE (GUID = SCOPE_IDENTITY())</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@NAME" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="NAME" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@TEMPLATE_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="TEMPLATE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@IS_HEAD" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="IS_HEAD" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@ACTIVE" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="ACTIVE" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@COMMENT" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="COMMENT" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</InsertCommand>
|
||||
<SelectCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="true">
|
||||
<CommandText>SELECT TBMT_TABLES.*
|
||||
FROM TBMT_TABLES</CommandText>
|
||||
<Parameters />
|
||||
</DbCommand>
|
||||
</SelectCommand>
|
||||
<UpdateCommand>
|
||||
<DbCommand CommandType="Text" ModifiedByUser="false">
|
||||
<CommandText>UPDATE [TBMT_TABLES] SET [NAME] = @NAME, [TEMPLATE_ID] = @TEMPLATE_ID, [IS_HEAD] = @IS_HEAD, [ACTIVE] = @ACTIVE, [COMMENT] = @COMMENT, [ADDED_WHO] = @ADDED_WHO, [ADDED_WHEN] = @ADDED_WHEN, [CHANGED_WHO] = @CHANGED_WHO, [CHANGED_WHEN] = @CHANGED_WHEN WHERE (([GUID] = @Original_GUID) AND ([TEMPLATE_ID] = @Original_TEMPLATE_ID) AND ([IS_HEAD] = @Original_IS_HEAD) AND ([ACTIVE] = @Original_ACTIVE) AND ((@IsNull_COMMENT = 1 AND [COMMENT] IS NULL) OR ([COMMENT] = @Original_COMMENT)) AND ([ADDED_WHO] = @Original_ADDED_WHO) AND ((@IsNull_ADDED_WHEN = 1 AND [ADDED_WHEN] IS NULL) OR ([ADDED_WHEN] = @Original_ADDED_WHEN)) AND ((@IsNull_CHANGED_WHO = 1 AND [CHANGED_WHO] IS NULL) OR ([CHANGED_WHO] = @Original_CHANGED_WHO)) AND ((@IsNull_CHANGED_WHEN = 1 AND [CHANGED_WHEN] IS NULL) OR ([CHANGED_WHEN] = @Original_CHANGED_WHEN)));
|
||||
SELECT GUID, NAME, TEMPLATE_ID, IS_HEAD, ACTIVE, COMMENT, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN FROM TBMT_TABLES WHERE (GUID = @GUID)</CommandText>
|
||||
<Parameters>
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@NAME" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="NAME" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@TEMPLATE_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="TEMPLATE_ID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@IS_HEAD" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="IS_HEAD" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@ACTIVE" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="ACTIVE" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@COMMENT" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="COMMENT" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@ADDED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@CHANGED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_GUID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_TEMPLATE_ID" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="TEMPLATE_ID" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_IS_HEAD" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="IS_HEAD" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_ACTIVE" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="ACTIVE" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_COMMENT" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="COMMENT" SourceColumnNullMapping="true" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_COMMENT" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="COMMENT" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_ADDED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="ADDED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_ADDED_WHEN" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="true" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_ADDED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="ADDED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHO" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="true" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_CHANGED_WHO" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="CHANGED_WHO" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_CHANGED_WHEN" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="true" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_CHANGED_WHEN" Precision="0" ProviderType="DateTime" Scale="0" Size="0" SourceColumn="CHANGED_WHEN" SourceColumnNullMapping="false" SourceVersion="Original" />
|
||||
<Parameter AllowDbNull="false" AutogeneratedName="GUID" ColumnName="GUID" DataSourceName="DD_ECM.dbo.TBMT_TABLES" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@GUID" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="GUID" SourceColumnNullMapping="false" SourceVersion="Current" />
|
||||
</Parameters>
|
||||
</DbCommand>
|
||||
</UpdateCommand>
|
||||
</DbSource>
|
||||
</MainSource>
|
||||
<Mappings>
|
||||
<Mapping SourceColumn="GUID" DataSetColumn="GUID" />
|
||||
<Mapping SourceColumn="NAME" DataSetColumn="NAME" />
|
||||
<Mapping SourceColumn="TEMPLATE_ID" DataSetColumn="TEMPLATE_ID" />
|
||||
<Mapping SourceColumn="IS_HEAD" DataSetColumn="IS_HEAD" />
|
||||
<Mapping SourceColumn="ACTIVE" DataSetColumn="ACTIVE" />
|
||||
<Mapping SourceColumn="COMMENT" DataSetColumn="COMMENT" />
|
||||
<Mapping SourceColumn="ADDED_WHO" DataSetColumn="ADDED_WHO" />
|
||||
<Mapping SourceColumn="ADDED_WHEN" DataSetColumn="ADDED_WHEN" />
|
||||
<Mapping SourceColumn="CHANGED_WHO" DataSetColumn="CHANGED_WHO" />
|
||||
<Mapping SourceColumn="CHANGED_WHEN" DataSetColumn="CHANGED_WHEN" />
|
||||
</Mappings>
|
||||
<Sources />
|
||||
</TableAdapter>
|
||||
</Tables>
|
||||
<Sources />
|
||||
</DataSource>
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
<xs:element name="DS_DD_ECM" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DS_DD_ECM" msprop:Generator_UserDSName="DS_DD_ECM">
|
||||
<xs:element name="DS_DD_ECM" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_UserDSName="DS_DD_ECM" msprop:Generator_DataSetName="DS_DD_ECM">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="TBMT_TEMPLATE_ITEMS" msprop:Generator_TableClassName="TBMT_TEMPLATE_ITEMSDataTable" msprop:Generator_TableVarName="tableTBMT_TEMPLATE_ITEMS" msprop:Generator_TablePropName="TBMT_TEMPLATE_ITEMS" msprop:Generator_RowDeletingName="TBMT_TEMPLATE_ITEMSRowDeleting" msprop:Generator_RowChangingName="TBMT_TEMPLATE_ITEMSRowChanging" msprop:Generator_RowEvHandlerName="TBMT_TEMPLATE_ITEMSRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_TEMPLATE_ITEMSRowDeleted" msprop:Generator_UserTableName="TBMT_TEMPLATE_ITEMS" msprop:Generator_RowChangedName="TBMT_TEMPLATE_ITEMSRowChanged" msprop:Generator_RowEvArgName="TBMT_TEMPLATE_ITEMSRowChangeEvent" msprop:Generator_RowClassName="TBMT_TEMPLATE_ITEMSRow">
|
||||
<xs:element name="TBMT_TEMPLATE_ITEMS" msprop:Generator_RowEvHandlerName="TBMT_TEMPLATE_ITEMSRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_TEMPLATE_ITEMSRowDeleted" msprop:Generator_RowDeletingName="TBMT_TEMPLATE_ITEMSRowDeleting" msprop:Generator_RowEvArgName="TBMT_TEMPLATE_ITEMSRowChangeEvent" msprop:Generator_TablePropName="TBMT_TEMPLATE_ITEMS" msprop:Generator_RowChangedName="TBMT_TEMPLATE_ITEMSRowChanged" msprop:Generator_RowChangingName="TBMT_TEMPLATE_ITEMSRowChanging" msprop:Generator_TableClassName="TBMT_TEMPLATE_ITEMSDataTable" msprop:Generator_RowClassName="TBMT_TEMPLATE_ITEMSRow" msprop:Generator_TableVarName="tableTBMT_TEMPLATE_ITEMS" msprop:Generator_UserTableName="TBMT_TEMPLATE_ITEMS">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="XML_NAME" msprop:Generator_ColumnVarNameInTable="columnXML_NAME" msprop:Generator_ColumnPropNameInRow="XML_NAME" msprop:Generator_ColumnPropNameInTable="XML_NAMEColumn" msprop:Generator_UserColumnName="XML_NAME">
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="XML_TYPE_ID" msprop:Generator_ColumnVarNameInTable="columnXML_TYPE_ID" msprop:Generator_ColumnPropNameInRow="XML_TYPE_ID" msprop:Generator_ColumnPropNameInTable="XML_TYPE_IDColumn" msprop:Generator_UserColumnName="XML_TYPE_ID" type="xs:int" />
|
||||
<xs:element name="IS_READ_ONLY" msprop:Generator_ColumnVarNameInTable="columnIS_READ_ONLY" msprop:Generator_ColumnPropNameInRow="IS_READ_ONLY" msprop:Generator_ColumnPropNameInTable="IS_READ_ONLYColumn" msprop:Generator_UserColumnName="IS_READ_ONLY" type="xs:boolean" />
|
||||
<xs:element name="IS_VISIBLE" msprop:Generator_ColumnVarNameInTable="columnIS_VISIBLE" msprop:Generator_ColumnPropNameInRow="IS_VISIBLE" msprop:Generator_ColumnPropNameInTable="IS_VISIBLEColumn" msprop:Generator_UserColumnName="IS_VISIBLE" type="xs:boolean" />
|
||||
<xs:element name="ORDER_KEY" msprop:Generator_ColumnVarNameInTable="columnORDER_KEY" msprop:Generator_ColumnPropNameInRow="ORDER_KEY" msprop:Generator_ColumnPropNameInTable="ORDER_KEYColumn" msprop:Generator_UserColumnName="ORDER_KEY" type="xs:int" />
|
||||
<xs:element name="FUNCTION_ID" msprop:Generator_ColumnVarNameInTable="columnFUNCTION_ID" msprop:Generator_ColumnPropNameInRow="FUNCTION_ID" msprop:Generator_ColumnPropNameInTable="FUNCTION_IDColumn" msprop:Generator_UserColumnName="FUNCTION_ID" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="IS_REQUIRED" msprop:Generator_ColumnVarNameInTable="columnIS_REQUIRED" msprop:Generator_ColumnPropNameInRow="IS_REQUIRED" msprop:Generator_ColumnPropNameInTable="IS_REQUIREDColumn" msprop:Generator_UserColumnName="IS_REQUIRED" type="xs:boolean" />
|
||||
<xs:element name="XML_TABLE_ID" msprop:Generator_ColumnVarNameInTable="columnXML_TABLE_ID" msprop:Generator_ColumnPropNameInRow="XML_TABLE_ID" msprop:Generator_ColumnPropNameInTable="XML_TABLE_IDColumn" msprop:Generator_UserColumnName="XML_TABLE_ID" type="xs:int" />
|
||||
<xs:element name="IS_VIRTUAL" msprop:Generator_ColumnVarNameInTable="columnIS_VIRTUAL" msprop:Generator_ColumnPropNameInRow="IS_VIRTUAL" msprop:Generator_ColumnPropNameInTable="IS_VIRTUALColumn" msprop:Generator_UserColumnName="IS_VIRTUAL" type="xs:boolean" />
|
||||
<xs:element name="FUNCTION_PARAMETERS" msprop:Generator_ColumnVarNameInTable="columnFUNCTION_PARAMETERS" msprop:Generator_ColumnPropNameInRow="FUNCTION_PARAMETERS" msprop:Generator_ColumnPropNameInTable="FUNCTION_PARAMETERSColumn" msprop:Generator_UserColumnName="FUNCTION_PARAMETERS" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ADDED_WHO" msprop:Generator_ColumnVarNameInTable="columnADDED_WHO" msprop:Generator_ColumnPropNameInRow="ADDED_WHO" msprop:Generator_ColumnPropNameInTable="ADDED_WHOColumn" msprop:Generator_UserColumnName="ADDED_WHO">
|
||||
<xs:element name="TYPE_ID" msprop:Generator_ColumnPropNameInRow="TYPE_ID" msprop:Generator_ColumnPropNameInTable="TYPE_IDColumn" msprop:Generator_ColumnVarNameInTable="columnTYPE_ID" msprop:Generator_UserColumnName="TYPE_ID" type="xs:int" />
|
||||
<xs:element name="IS_READ_ONLY" msprop:Generator_ColumnPropNameInRow="IS_READ_ONLY" msprop:Generator_ColumnPropNameInTable="IS_READ_ONLYColumn" msprop:Generator_ColumnVarNameInTable="columnIS_READ_ONLY" msprop:Generator_UserColumnName="IS_READ_ONLY" type="xs:boolean" />
|
||||
<xs:element name="IS_VISIBLE" msprop:Generator_ColumnPropNameInRow="IS_VISIBLE" msprop:Generator_ColumnPropNameInTable="IS_VISIBLEColumn" msprop:Generator_ColumnVarNameInTable="columnIS_VISIBLE" msprop:Generator_UserColumnName="IS_VISIBLE" type="xs:boolean" />
|
||||
<xs:element name="ORDER_KEY" msprop:Generator_ColumnPropNameInRow="ORDER_KEY" msprop:Generator_ColumnPropNameInTable="ORDER_KEYColumn" msprop:Generator_ColumnVarNameInTable="columnORDER_KEY" msprop:Generator_UserColumnName="ORDER_KEY" type="xs:int" />
|
||||
<xs:element name="IS_REQUIRED" msprop:Generator_ColumnPropNameInRow="IS_REQUIRED" msprop:Generator_ColumnPropNameInTable="IS_REQUIREDColumn" msprop:Generator_ColumnVarNameInTable="columnIS_REQUIRED" msprop:Generator_UserColumnName="IS_REQUIRED" type="xs:boolean" />
|
||||
<xs:element name="TABLE_ID" msprop:Generator_ColumnPropNameInRow="TABLE_ID" msprop:Generator_ColumnPropNameInTable="TABLE_IDColumn" msprop:Generator_ColumnVarNameInTable="columnTABLE_ID" msprop:Generator_UserColumnName="TABLE_ID" type="xs:int" />
|
||||
<xs:element name="IS_VIRTUAL" msprop:Generator_ColumnPropNameInRow="IS_VIRTUAL" msprop:Generator_ColumnPropNameInTable="IS_VIRTUALColumn" msprop:Generator_ColumnVarNameInTable="columnIS_VIRTUAL" msprop:Generator_UserColumnName="IS_VIRTUAL" type="xs:boolean" />
|
||||
<xs:element name="ADDED_WHO" msprop:Generator_ColumnPropNameInRow="ADDED_WHO" msprop:Generator_ColumnPropNameInTable="ADDED_WHOColumn" msprop:Generator_ColumnVarNameInTable="columnADDED_WHO" msprop:Generator_UserColumnName="ADDED_WHO">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ADDED_WHEN" msprop:Generator_ColumnVarNameInTable="columnADDED_WHEN" msprop:Generator_ColumnPropNameInRow="ADDED_WHEN" msprop:Generator_ColumnPropNameInTable="ADDED_WHENColumn" msprop:Generator_UserColumnName="ADDED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="CHANGED_WHO" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHO" msprop:Generator_ColumnPropNameInRow="CHANGED_WHO" msprop:Generator_ColumnPropNameInTable="CHANGED_WHOColumn" msprop:Generator_UserColumnName="CHANGED_WHO" minOccurs="0">
|
||||
<xs:element name="ADDED_WHEN" msprop:Generator_ColumnPropNameInRow="ADDED_WHEN" msprop:Generator_ColumnPropNameInTable="ADDED_WHENColumn" msprop:Generator_ColumnVarNameInTable="columnADDED_WHEN" msprop:Generator_UserColumnName="ADDED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="CHANGED_WHO" msprop:Generator_ColumnPropNameInRow="CHANGED_WHO" msprop:Generator_ColumnPropNameInTable="CHANGED_WHOColumn" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHO" msprop:Generator_UserColumnName="CHANGED_WHO" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="CHANGED_WHEN" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHEN" msprop:Generator_ColumnPropNameInRow="CHANGED_WHEN" msprop:Generator_ColumnPropNameInTable="CHANGED_WHENColumn" msprop:Generator_UserColumnName="CHANGED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBEDI_XML_TYPES" msprop:Generator_TableClassName="TBEDI_XML_TYPESDataTable" msprop:Generator_TableVarName="tableTBEDI_XML_TYPES" msprop:Generator_TablePropName="TBEDI_XML_TYPES" msprop:Generator_RowDeletingName="TBEDI_XML_TYPESRowDeleting" msprop:Generator_RowChangingName="TBEDI_XML_TYPESRowChanging" msprop:Generator_RowEvHandlerName="TBEDI_XML_TYPESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBEDI_XML_TYPESRowDeleted" msprop:Generator_UserTableName="TBEDI_XML_TYPES" msprop:Generator_RowChangedName="TBEDI_XML_TYPESRowChanged" msprop:Generator_RowEvArgName="TBEDI_XML_TYPESRowChangeEvent" msprop:Generator_RowClassName="TBEDI_XML_TYPESRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBMT_TEMPLATES" msprop:Generator_TableClassName="TBMT_TEMPLATESDataTable" msprop:Generator_TableVarName="tableTBMT_TEMPLATES" msprop:Generator_TablePropName="TBMT_TEMPLATES" msprop:Generator_RowDeletingName="TBMT_TEMPLATESRowDeleting" msprop:Generator_RowChangingName="TBMT_TEMPLATESRowChanging" msprop:Generator_RowEvHandlerName="TBMT_TEMPLATESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_TEMPLATESRowDeleted" msprop:Generator_UserTableName="TBMT_TEMPLATES" msprop:Generator_RowChangedName="TBMT_TEMPLATESRowChanged" msprop:Generator_RowEvArgName="TBMT_TEMPLATESRowChangeEvent" msprop:Generator_RowClassName="TBMT_TEMPLATESRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DESCRIPTION" msprop:Generator_ColumnVarNameInTable="columnDESCRIPTION" msprop:Generator_ColumnPropNameInRow="DESCRIPTION" msprop:Generator_ColumnPropNameInTable="DESCRIPTIONColumn" msprop:Generator_UserColumnName="DESCRIPTION" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBEDI_XML_NODES" msprop:Generator_TableClassName="TBEDI_XML_NODESDataTable" msprop:Generator_TableVarName="tableTBEDI_XML_NODES" msprop:Generator_TablePropName="TBEDI_XML_NODES" msprop:Generator_RowDeletingName="TBEDI_XML_NODESRowDeleting" msprop:Generator_RowChangingName="TBEDI_XML_NODESRowChanging" msprop:Generator_RowEvHandlerName="TBEDI_XML_NODESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBEDI_XML_NODESRowDeleted" msprop:Generator_UserTableName="TBEDI_XML_NODES" msprop:Generator_RowChangedName="TBEDI_XML_NODESRowChanged" msprop:Generator_RowEvArgName="TBEDI_XML_NODESRowChangeEvent" msprop:Generator_RowClassName="TBEDI_XML_NODESRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="TEMPLATE_ID" msprop:Generator_ColumnVarNameInTable="columnTEMPLATE_ID" msprop:Generator_ColumnPropNameInRow="TEMPLATE_ID" msprop:Generator_ColumnPropNameInTable="TEMPLATE_IDColumn" msprop:Generator_UserColumnName="TEMPLATE_ID" type="xs:int" />
|
||||
<xs:element name="IS_HEAD" msprop:Generator_ColumnVarNameInTable="columnIS_HEAD" msprop:Generator_ColumnPropNameInRow="IS_HEAD" msprop:Generator_ColumnPropNameInTable="IS_HEADColumn" msprop:Generator_UserColumnName="IS_HEAD" type="xs:boolean" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBMT_FUNCTIONS" msprop:Generator_TableClassName="TBMT_FUNCTIONSDataTable" msprop:Generator_TableVarName="tableTBMT_FUNCTIONS" msprop:Generator_TablePropName="TBMT_FUNCTIONS" msprop:Generator_RowDeletingName="TBMT_FUNCTIONSRowDeleting" msprop:Generator_RowChangingName="TBMT_FUNCTIONSRowChanging" msprop:Generator_RowEvHandlerName="TBMT_FUNCTIONSRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_FUNCTIONSRowDeleted" msprop:Generator_UserTableName="TBMT_FUNCTIONS" msprop:Generator_RowChangedName="TBMT_FUNCTIONSRowChanged" msprop:Generator_RowEvArgName="TBMT_FUNCTIONSRowChangeEvent" msprop:Generator_RowClassName="TBMT_FUNCTIONSRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DESCRIPTION" msprop:Generator_ColumnVarNameInTable="columnDESCRIPTION" msprop:Generator_ColumnPropNameInRow="DESCRIPTION" msprop:Generator_ColumnPropNameInTable="DESCRIPTIONColumn" msprop:Generator_UserColumnName="DESCRIPTION">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="PARAMETERS" msprop:Generator_ColumnVarNameInTable="columnPARAMETERS" msprop:Generator_ColumnPropNameInRow="PARAMETERS" msprop:Generator_ColumnPropNameInTable="PARAMETERSColumn" msprop:Generator_UserColumnName="PARAMETERS" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBMT_CONFIG" msprop:Generator_TableClassName="TBMT_CONFIGDataTable" msprop:Generator_TableVarName="tableTBMT_CONFIG" msprop:Generator_TablePropName="TBMT_CONFIG" msprop:Generator_RowDeletingName="TBMT_CONFIGRowDeleting" msprop:Generator_RowChangingName="TBMT_CONFIGRowChanging" msprop:Generator_RowEvHandlerName="TBMT_CONFIGRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_CONFIGRowDeleted" msprop:Generator_UserTableName="TBMT_CONFIG" msprop:Generator_RowChangedName="TBMT_CONFIGRowChanged" msprop:Generator_RowEvArgName="TBMT_CONFIGRowChangeEvent" msprop:Generator_RowClassName="TBMT_CONFIGRow">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="KEY" msprop:Generator_ColumnVarNameInTable="columnKEY" msprop:Generator_ColumnPropNameInRow="KEY" msprop:Generator_ColumnPropNameInTable="KEYColumn" msprop:Generator_UserColumnName="KEY">
|
||||
<xs:element name="CHANGED_WHEN" msprop:Generator_ColumnPropNameInRow="CHANGED_WHEN" msprop:Generator_ColumnPropNameInTable="CHANGED_WHENColumn" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHEN" msprop:Generator_UserColumnName="CHANGED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="ACTIVE" msprop:Generator_ColumnPropNameInRow="ACTIVE" msprop:Generator_ColumnPropNameInTable="ACTIVEColumn" msprop:Generator_ColumnVarNameInTable="columnACTIVE" msprop:Generator_UserColumnName="ACTIVE" type="xs:boolean" />
|
||||
<xs:element name="COMMENT" msprop:Generator_ColumnPropNameInRow="COMMENT" msprop:Generator_ColumnPropNameInTable="COMMENTColumn" msprop:Generator_ColumnVarNameInTable="columnCOMMENT" msprop:Generator_UserColumnName="COMMENT" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="100" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="VALUE" msprop:Generator_ColumnVarNameInTable="columnVALUE" msprop:Generator_ColumnPropNameInRow="VALUE" msprop:Generator_ColumnPropNameInTable="VALUEColumn" msprop:Generator_UserColumnName="VALUE">
|
||||
<xs:element name="TEMPLATE_NAME" msprop:Generator_ColumnPropNameInRow="TEMPLATE_NAME" msprop:Generator_ColumnPropNameInTable="TEMPLATE_NAMEColumn" msprop:Generator_ColumnVarNameInTable="columnTEMPLATE_NAME" msprop:Generator_UserColumnName="TEMPLATE_NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="TABLE_NAME" msprop:Generator_ColumnPropNameInRow="TABLE_NAME" msprop:Generator_ColumnPropNameInTable="TABLE_NAMEColumn" msprop:Generator_ColumnVarNameInTable="columnTABLE_NAME" msprop:Generator_UserColumnName="TABLE_NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="PREFER_EXTERNAL" msprop:Generator_ColumnPropNameInRow="PREFER_EXTERNAL" msprop:Generator_ColumnPropNameInTable="PREFER_EXTERNALColumn" msprop:Generator_ColumnVarNameInTable="columnPREFER_EXTERNAL" msprop:Generator_UserColumnName="PREFER_EXTERNAL" type="xs:boolean" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBEDI_XML_TYPES" msprop:Generator_RowEvHandlerName="TBEDI_XML_TYPESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBEDI_XML_TYPESRowDeleted" msprop:Generator_RowDeletingName="TBEDI_XML_TYPESRowDeleting" msprop:Generator_RowEvArgName="TBEDI_XML_TYPESRowChangeEvent" msprop:Generator_TablePropName="TBEDI_XML_TYPES" msprop:Generator_RowChangedName="TBEDI_XML_TYPESRowChanged" msprop:Generator_RowChangingName="TBEDI_XML_TYPESRowChanging" msprop:Generator_TableClassName="TBEDI_XML_TYPESDataTable" msprop:Generator_RowClassName="TBEDI_XML_TYPESRow" msprop:Generator_TableVarName="tableTBEDI_XML_TYPES" msprop:Generator_UserTableName="TBEDI_XML_TYPES">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBMT_TEMPLATES" msprop:Generator_RowEvHandlerName="TBMT_TEMPLATESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_TEMPLATESRowDeleted" msprop:Generator_RowDeletingName="TBMT_TEMPLATESRowDeleting" msprop:Generator_RowEvArgName="TBMT_TEMPLATESRowChangeEvent" msprop:Generator_TablePropName="TBMT_TEMPLATES" msprop:Generator_RowChangedName="TBMT_TEMPLATESRowChanged" msprop:Generator_RowChangingName="TBMT_TEMPLATESRowChanging" msprop:Generator_TableClassName="TBMT_TEMPLATESDataTable" msprop:Generator_RowClassName="TBMT_TEMPLATESRow" msprop:Generator_TableVarName="tableTBMT_TEMPLATES" msprop:Generator_UserTableName="TBMT_TEMPLATES">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="20" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DESCRIPTION" msprop:Generator_ColumnPropNameInRow="DESCRIPTION" msprop:Generator_ColumnPropNameInTable="DESCRIPTIONColumn" msprop:Generator_ColumnVarNameInTable="columnDESCRIPTION" msprop:Generator_UserColumnName="DESCRIPTION" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBEDI_XML_NODES" msprop:Generator_RowEvHandlerName="TBEDI_XML_NODESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBEDI_XML_NODESRowDeleted" msprop:Generator_RowDeletingName="TBEDI_XML_NODESRowDeleting" msprop:Generator_RowEvArgName="TBEDI_XML_NODESRowChangeEvent" msprop:Generator_TablePropName="TBEDI_XML_NODES" msprop:Generator_RowChangedName="TBEDI_XML_NODESRowChanged" msprop:Generator_RowChangingName="TBEDI_XML_NODESRowChanging" msprop:Generator_TableClassName="TBEDI_XML_NODESDataTable" msprop:Generator_RowClassName="TBEDI_XML_NODESRow" msprop:Generator_TableVarName="tableTBEDI_XML_NODES" msprop:Generator_UserTableName="TBEDI_XML_NODES">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="TEMPLATE_ID" msprop:Generator_ColumnPropNameInRow="TEMPLATE_ID" msprop:Generator_ColumnPropNameInTable="TEMPLATE_IDColumn" msprop:Generator_ColumnVarNameInTable="columnTEMPLATE_ID" msprop:Generator_UserColumnName="TEMPLATE_ID" type="xs:int" />
|
||||
<xs:element name="IS_HEAD" msprop:Generator_ColumnPropNameInRow="IS_HEAD" msprop:Generator_ColumnPropNameInTable="IS_HEADColumn" msprop:Generator_ColumnVarNameInTable="columnIS_HEAD" msprop:Generator_UserColumnName="IS_HEAD" type="xs:boolean" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBMT_FUNCTIONS" msprop:Generator_RowEvHandlerName="TBMT_FUNCTIONSRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_FUNCTIONSRowDeleted" msprop:Generator_RowDeletingName="TBMT_FUNCTIONSRowDeleting" msprop:Generator_RowEvArgName="TBMT_FUNCTIONSRowChangeEvent" msprop:Generator_TablePropName="TBMT_FUNCTIONS" msprop:Generator_RowChangedName="TBMT_FUNCTIONSRowChanged" msprop:Generator_RowChangingName="TBMT_FUNCTIONSRowChanging" msprop:Generator_TableClassName="TBMT_FUNCTIONSDataTable" msprop:Generator_RowClassName="TBMT_FUNCTIONSRow" msprop:Generator_TableVarName="tableTBMT_FUNCTIONS" msprop:Generator_UserTableName="TBMT_FUNCTIONS">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="DESCRIPTION" msprop:Generator_ColumnPropNameInRow="DESCRIPTION" msprop:Generator_ColumnPropNameInTable="DESCRIPTIONColumn" msprop:Generator_ColumnVarNameInTable="columnDESCRIPTION" msprop:Generator_UserColumnName="DESCRIPTION">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="PARAMETERS" msprop:Generator_ColumnPropNameInRow="PARAMETERS" msprop:Generator_ColumnPropNameInTable="PARAMETERSColumn" msprop:Generator_ColumnVarNameInTable="columnPARAMETERS" msprop:Generator_UserColumnName="PARAMETERS" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBMT_CONFIG" msprop:Generator_RowEvHandlerName="TBMT_CONFIGRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_CONFIGRowDeleted" msprop:Generator_RowDeletingName="TBMT_CONFIGRowDeleting" msprop:Generator_RowEvArgName="TBMT_CONFIGRowChangeEvent" msprop:Generator_TablePropName="TBMT_CONFIG" msprop:Generator_RowChangedName="TBMT_CONFIGRowChanged" msprop:Generator_RowChangingName="TBMT_CONFIGRowChanging" msprop:Generator_TableClassName="TBMT_CONFIGDataTable" msprop:Generator_RowClassName="TBMT_CONFIGRow" msprop:Generator_TableVarName="tableTBMT_CONFIG" msprop:Generator_UserTableName="TBMT_CONFIG">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="KEY" msprop:Generator_ColumnPropNameInRow="KEY" msprop:Generator_ColumnPropNameInTable="KEYColumn" msprop:Generator_ColumnVarNameInTable="columnKEY" msprop:Generator_UserColumnName="KEY">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="100" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="VALUE" msprop:Generator_ColumnPropNameInRow="VALUE" msprop:Generator_ColumnPropNameInTable="VALUEColumn" msprop:Generator_ColumnVarNameInTable="columnVALUE" msprop:Generator_UserColumnName="VALUE">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="500" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ADDED_WHO" msprop:Generator_ColumnVarNameInTable="columnADDED_WHO" msprop:Generator_ColumnPropNameInRow="ADDED_WHO" msprop:Generator_ColumnPropNameInTable="ADDED_WHOColumn" msprop:Generator_UserColumnName="ADDED_WHO">
|
||||
<xs:element name="ADDED_WHO" msprop:Generator_ColumnPropNameInRow="ADDED_WHO" msprop:Generator_ColumnPropNameInTable="ADDED_WHOColumn" msprop:Generator_ColumnVarNameInTable="columnADDED_WHO" msprop:Generator_UserColumnName="ADDED_WHO">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ADDED_WHEN" msprop:Generator_ColumnVarNameInTable="columnADDED_WHEN" msprop:Generator_ColumnPropNameInRow="ADDED_WHEN" msprop:Generator_ColumnPropNameInTable="ADDED_WHENColumn" msprop:Generator_UserColumnName="ADDED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="CHANGED_WHO" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHO" msprop:Generator_ColumnPropNameInRow="CHANGED_WHO" msprop:Generator_ColumnPropNameInTable="CHANGED_WHOColumn" msprop:Generator_UserColumnName="CHANGED_WHO" minOccurs="0">
|
||||
<xs:element name="ADDED_WHEN" msprop:Generator_ColumnPropNameInRow="ADDED_WHEN" msprop:Generator_ColumnPropNameInTable="ADDED_WHENColumn" msprop:Generator_ColumnVarNameInTable="columnADDED_WHEN" msprop:Generator_UserColumnName="ADDED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="CHANGED_WHO" msprop:Generator_ColumnPropNameInRow="CHANGED_WHO" msprop:Generator_ColumnPropNameInTable="CHANGED_WHOColumn" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHO" msprop:Generator_UserColumnName="CHANGED_WHO" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="CHANGED_WHEN" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHEN" msprop:Generator_ColumnPropNameInRow="CHANGED_WHEN" msprop:Generator_ColumnPropNameInTable="CHANGED_WHENColumn" msprop:Generator_UserColumnName="CHANGED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="ACTIVE" msprop:Generator_ColumnVarNameInTable="columnACTIVE" msprop:Generator_ColumnPropNameInRow="ACTIVE" msprop:Generator_ColumnPropNameInTable="ACTIVEColumn" msprop:Generator_UserColumnName="ACTIVE" type="xs:boolean" default="false" />
|
||||
<xs:element name="TEMPLATE_ID" msprop:Generator_ColumnVarNameInTable="columnTEMPLATE_ID" msprop:Generator_ColumnPropNameInRow="TEMPLATE_ID" msprop:Generator_ColumnPropNameInTable="TEMPLATE_IDColumn" msprop:Generator_UserColumnName="TEMPLATE_ID" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="COMMENT" msprop:Generator_ColumnVarNameInTable="columnCOMMENT" msprop:Generator_ColumnPropNameInRow="COMMENT" msprop:Generator_ColumnPropNameInTable="COMMENTColumn" msprop:Generator_UserColumnName="COMMENT" minOccurs="0">
|
||||
<xs:element name="CHANGED_WHEN" msprop:Generator_ColumnPropNameInRow="CHANGED_WHEN" msprop:Generator_ColumnPropNameInTable="CHANGED_WHENColumn" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHEN" msprop:Generator_UserColumnName="CHANGED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="ACTIVE" msprop:Generator_ColumnPropNameInRow="ACTIVE" msprop:Generator_ColumnPropNameInTable="ACTIVEColumn" msprop:Generator_ColumnVarNameInTable="columnACTIVE" msprop:Generator_UserColumnName="ACTIVE" type="xs:boolean" default="false" />
|
||||
<xs:element name="TEMPLATE_ID" msprop:Generator_ColumnPropNameInRow="TEMPLATE_ID" msprop:Generator_ColumnPropNameInTable="TEMPLATE_IDColumn" msprop:Generator_ColumnVarNameInTable="columnTEMPLATE_ID" msprop:Generator_UserColumnName="TEMPLATE_ID" type="xs:int" minOccurs="0" />
|
||||
<xs:element name="COMMENT" msprop:Generator_ColumnPropNameInRow="COMMENT" msprop:Generator_ColumnPropNameInTable="COMMENTColumn" msprop:Generator_ColumnVarNameInTable="columnCOMMENT" msprop:Generator_UserColumnName="COMMENT" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="100" />
|
||||
@@ -563,6 +686,46 @@ WHERE (TEMPLATE_ID IS NULL)</CommandText>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="TBMT_TABLES" msprop:Generator_RowClassName="TBMT_TABLESRow" msprop:Generator_RowEvHandlerName="TBMT_TABLESRowChangeEventHandler" msprop:Generator_RowDeletedName="TBMT_TABLESRowDeleted" msprop:Generator_RowDeletingName="TBMT_TABLESRowDeleting" msprop:Generator_RowEvArgName="TBMT_TABLESRowChangeEvent" msprop:Generator_TablePropName="TBMT_TABLES" msprop:Generator_RowChangedName="TBMT_TABLESRowChanged" msprop:Generator_RowChangingName="TBMT_TABLESRowChanging" msprop:Generator_TableClassName="TBMT_TABLESDataTable" msprop:Generator_UserTableName="TBMT_TABLES" msprop:Generator_TableVarName="tableTBMT_TABLES">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="GUID" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="GUID" msprop:Generator_ColumnPropNameInTable="GUIDColumn" msprop:Generator_ColumnVarNameInTable="columnGUID" msprop:Generator_UserColumnName="GUID" type="xs:int" />
|
||||
<xs:element name="NAME" msprop:Generator_ColumnPropNameInRow="NAME" msprop:Generator_ColumnPropNameInTable="NAMEColumn" msprop:Generator_ColumnVarNameInTable="columnNAME" msprop:Generator_UserColumnName="NAME">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="2147483647" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="TEMPLATE_ID" msprop:Generator_ColumnPropNameInRow="TEMPLATE_ID" msprop:Generator_ColumnPropNameInTable="TEMPLATE_IDColumn" msprop:Generator_ColumnVarNameInTable="columnTEMPLATE_ID" msprop:Generator_UserColumnName="TEMPLATE_ID" type="xs:int" />
|
||||
<xs:element name="IS_HEAD" msprop:Generator_ColumnPropNameInRow="IS_HEAD" msprop:Generator_ColumnPropNameInTable="IS_HEADColumn" msprop:Generator_ColumnVarNameInTable="columnIS_HEAD" msprop:Generator_UserColumnName="IS_HEAD" type="xs:boolean" />
|
||||
<xs:element name="ACTIVE" msprop:Generator_ColumnPropNameInRow="ACTIVE" msprop:Generator_ColumnPropNameInTable="ACTIVEColumn" msprop:Generator_ColumnVarNameInTable="columnACTIVE" msprop:Generator_UserColumnName="ACTIVE" type="xs:boolean" />
|
||||
<xs:element name="COMMENT" msprop:Generator_ColumnPropNameInRow="COMMENT" msprop:Generator_ColumnPropNameInTable="COMMENTColumn" msprop:Generator_ColumnVarNameInTable="columnCOMMENT" msprop:Generator_UserColumnName="COMMENT" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="100" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ADDED_WHO" msprop:Generator_ColumnPropNameInRow="ADDED_WHO" msprop:Generator_ColumnPropNameInTable="ADDED_WHOColumn" msprop:Generator_ColumnVarNameInTable="columnADDED_WHO" msprop:Generator_UserColumnName="ADDED_WHO">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="ADDED_WHEN" msprop:Generator_ColumnPropNameInRow="ADDED_WHEN" msprop:Generator_ColumnPropNameInTable="ADDED_WHENColumn" msprop:Generator_ColumnVarNameInTable="columnADDED_WHEN" msprop:Generator_UserColumnName="ADDED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
<xs:element name="CHANGED_WHO" msprop:Generator_ColumnPropNameInRow="CHANGED_WHO" msprop:Generator_ColumnPropNameInTable="CHANGED_WHOColumn" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHO" msprop:Generator_UserColumnName="CHANGED_WHO" minOccurs="0">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="50" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="CHANGED_WHEN" msprop:Generator_ColumnPropNameInRow="CHANGED_WHEN" msprop:Generator_ColumnPropNameInTable="CHANGED_WHENColumn" msprop:Generator_ColumnVarNameInTable="columnCHANGED_WHEN" msprop:Generator_UserColumnName="CHANGED_WHEN" type="xs:dateTime" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
|
||||
@@ -589,12 +752,15 @@ WHERE (TEMPLATE_ID IS NULL)</CommandText>
|
||||
<xs:selector xpath=".//mstns:TBMT_CONFIG" />
|
||||
<xs:field xpath="mstns:GUID" />
|
||||
</xs:unique>
|
||||
<xs:unique name="TBMT_TABLES_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
|
||||
<xs:selector xpath=".//mstns:TBMT_TABLES" />
|
||||
<xs:field xpath="mstns:GUID" />
|
||||
</xs:unique>
|
||||
</xs:element>
|
||||
<xs:annotation>
|
||||
<xs:appinfo>
|
||||
<msdata:Relationship name="TBMT_TEMPLATE_ITEMS_TBMT_FUNCTIONS" msdata:parent="TBMT_TEMPLATE_ITEMS" msdata:child="TBMT_FUNCTIONS" msdata:parentkey="FUNCTION_ID" msdata:childkey="GUID" msprop:Generator_UserChildTable="TBMT_FUNCTIONS" msprop:Generator_ChildPropName="GetTBMT_FUNCTIONSRows" msprop:Generator_UserRelationName="TBMT_TEMPLATE_ITEMS_TBMT_FUNCTIONS" msprop:Generator_ParentPropName="TBMT_TEMPLATE_ITEMSRow" msprop:Generator_RelationVarName="relationTBMT_TEMPLATE_ITEMS_TBMT_FUNCTIONS" msprop:Generator_UserParentTable="TBMT_TEMPLATE_ITEMS" />
|
||||
<msdata:Relationship name="TBMT_TEMPLATE_ITEMS_TBEDI_XML_TYPES" msdata:parent="TBMT_TEMPLATE_ITEMS" msdata:child="TBEDI_XML_TYPES" msdata:parentkey="XML_TYPE_ID" msdata:childkey="GUID" msprop:Generator_UserChildTable="TBEDI_XML_TYPES" msprop:Generator_ChildPropName="GetTBEDI_XML_TYPESRows" msprop:Generator_UserRelationName="TBMT_TEMPLATE_ITEMS_TBEDI_XML_TYPES" msprop:Generator_ParentPropName="TBMT_TEMPLATE_ITEMSRow" msprop:Generator_RelationVarName="relationTBMT_TEMPLATE_ITEMS_TBEDI_XML_TYPES" msprop:Generator_UserParentTable="TBMT_TEMPLATE_ITEMS" />
|
||||
<msdata:Relationship name="TBEDI_XML_NODES_TBMT_TEMPLATES" msdata:parent="TBEDI_XML_NODES" msdata:child="TBMT_TEMPLATES" msdata:parentkey="TEMPLATE_ID" msdata:childkey="GUID" msprop:Generator_UserChildTable="TBMT_TEMPLATES" msprop:Generator_ChildPropName="GetTBMT_TEMPLATESRows" msprop:Generator_UserRelationName="TBEDI_XML_NODES_TBMT_TEMPLATES" msprop:Generator_RelationVarName="relationTBEDI_XML_NODES_TBMT_TEMPLATES" msprop:Generator_UserParentTable="TBEDI_XML_NODES" msprop:Generator_ParentPropName="TBEDI_XML_NODESRow" />
|
||||
<msdata:Relationship name="TBMT_TEMPLATE_ITEMS_TBEDI_XML_TYPES" msdata:parent="TBMT_TEMPLATE_ITEMS" msdata:child="TBEDI_XML_TYPES" msdata:parentkey="TYPE_ID" msdata:childkey="GUID" msprop:Generator_UserParentTable="TBMT_TEMPLATE_ITEMS" msprop:Generator_UserChildTable="TBEDI_XML_TYPES" msprop:Generator_RelationVarName="relationTBMT_TEMPLATE_ITEMS_TBEDI_XML_TYPES" msprop:Generator_ChildPropName="GetTBEDI_XML_TYPESRows" msprop:Generator_ParentPropName="TBMT_TEMPLATE_ITEMSRow" msprop:Generator_UserRelationName="TBMT_TEMPLATE_ITEMS_TBEDI_XML_TYPES" />
|
||||
<msdata:Relationship name="TBEDI_XML_NODES_TBMT_TEMPLATES" msdata:parent="TBEDI_XML_NODES" msdata:child="TBMT_TEMPLATES" msdata:parentkey="TEMPLATE_ID" msdata:childkey="GUID" msprop:Generator_ChildPropName="GetTBMT_TEMPLATESRows" msprop:Generator_UserChildTable="TBMT_TEMPLATES" msprop:Generator_RelationVarName="relationTBEDI_XML_NODES_TBMT_TEMPLATES" msprop:Generator_UserRelationName="TBEDI_XML_NODES_TBMT_TEMPLATES" msprop:Generator_UserParentTable="TBEDI_XML_NODES" msprop:Generator_ParentPropName="TBEDI_XML_NODESRow" />
|
||||
</xs:appinfo>
|
||||
</xs:annotation>
|
||||
</xs:schema>
|
||||
@@ -4,33 +4,18 @@
|
||||
Changes to this file may cause incorrect behavior and will be lost if
|
||||
the code is regenerated.
|
||||
</autogenerated>-->
|
||||
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-60" ViewPortY="-55" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-51" ViewPortY="-55" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
|
||||
<Shapes>
|
||||
<Shape ID="DesignTable:TBMT_TEMPLATE_ITEMS" ZOrder="1" X="5" Y="8" Height="305" Width="252" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:TBMT_TEMPLATE_ITEMS" ZOrder="2" X="5" Y="8" Height="305" Width="252" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
|
||||
<Shape ID="DesignTable:TBEDI_XML_TYPES" ZOrder="9" X="525" Y="204" Height="115" Width="251" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
|
||||
<Shape ID="DesignTable:TBMT_TEMPLATES" ZOrder="7" X="1069" Y="27" Height="134" Width="285" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
|
||||
<Shape ID="DesignTable:TBEDI_XML_NODES" ZOrder="5" X="513" Y="22" Height="153" Width="257" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:TBEDI_XML_NODES" ZOrder="6" X="513" Y="22" Height="153" Width="257" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:TBMT_FUNCTIONS" ZOrder="8" X="472" Y="347" Height="153" Width="286" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
|
||||
<Shape ID="DesignTable:TBMT_CONFIG" ZOrder="2" X="-25" Y="383" Height="286" Width="230" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
<Shape ID="DesignTable:TBMT_CONFIG" ZOrder="3" X="-25" Y="383" Height="286" Width="230" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
<Shape ID="DesignTable:TBMT_TABLES" ZOrder="1" X="884" Y="396" Height="267" Width="227" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
|
||||
</Shapes>
|
||||
<Connectors>
|
||||
<Connector ID="DesignRelation:TBMT_TEMPLATE_ITEMS_TBMT_FUNCTIONS" ZOrder="6" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>240</X>
|
||||
<Y>313</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>240</X>
|
||||
<Y>364</Y>
|
||||
</Point>
|
||||
<Point>
|
||||
<X>472</X>
|
||||
<Y>364</Y>
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:TBMT_TEMPLATE_ITEMS_TBEDI_XML_TYPES" ZOrder="3" LineWidth="11">
|
||||
<Connector ID="DesignRelation:TBMT_TEMPLATE_ITEMS_TBEDI_XML_TYPES" ZOrder="4" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>257</X>
|
||||
@@ -42,7 +27,7 @@
|
||||
</Point>
|
||||
</RoutePoints>
|
||||
</Connector>
|
||||
<Connector ID="DesignRelation:TBEDI_XML_NODES_TBMT_TEMPLATES" ZOrder="4" LineWidth="11">
|
||||
<Connector ID="DesignRelation:TBEDI_XML_NODES_TBMT_TEMPLATES" ZOrder="5" LineWidth="11">
|
||||
<RoutePoints>
|
||||
<Point>
|
||||
<X>770</X>
|
||||
|
||||
@@ -39,6 +39,7 @@ Public Class FormHelper
|
||||
MsgBox(oMessage, MsgBoxStyle.Exclamation, Form.Text)
|
||||
End Sub
|
||||
|
||||
|
||||
Public Sub TryOpenDirectory(pPath As String, pDisplayName As String)
|
||||
If IO.Directory.Exists(pPath) Then
|
||||
Process.Start(pPath)
|
||||
|
||||
@@ -48,6 +48,12 @@ Public Class GridLoader
|
||||
.VisibleIndex = oVisibleIndex
|
||||
}
|
||||
|
||||
' TODO: Correclty format all values, but especially currency and numbers
|
||||
'If oCol.DataType = ColumnType.Decimal Then
|
||||
' oColumn.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric
|
||||
' oColumn.DisplayFormat.FormatString = "c2"
|
||||
'End If
|
||||
|
||||
oView.Columns.Add(oColumn)
|
||||
Next
|
||||
|
||||
|
||||
@@ -11,9 +11,10 @@
|
||||
<AssemblyName>MultiTool.Form</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>WindowsForms</MyType>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
@@ -96,35 +97,28 @@
|
||||
<Reference Include="DevExpress.XtraRichEdit.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraVerticalGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DigitalData.Controls.SQLConfig">
|
||||
<HintPath>..\..\DDMonorepo\SQLConfig\bin\Debug\DigitalData.Controls.SQLConfig.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.GUIs.Common">
|
||||
<HintPath>..\..\DDMonorepo\GUIs.Common\bin\Debug\DigitalData.GUIs.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Base">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Base\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Config">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Database">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Filesystem, Version=1.0.7.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<Reference Include="DigitalData.Modules.Base, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll</HintPath>
|
||||
<HintPath>..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Language, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<Reference Include="DigitalData.Modules.Config, Version=1.1.4.1, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDMonorepo\Modules.Language\bin\Debug\DigitalData.Modules.Language.dll</HintPath>
|
||||
<HintPath>..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Logging">
|
||||
<HintPath>..\..\DDMonorepo\Modules.Logging\bin\Release\DigitalData.Modules.Logging.dll</HintPath>
|
||||
<Reference Include="DigitalData.Modules.Database, Version=2.2.7.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Logging, Version=2.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.1.0\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
@@ -158,6 +152,7 @@
|
||||
<Import Include="System.Threading.Tasks" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ApplicationEvents.vb" />
|
||||
<Compile Include="DS_DD_ECM.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
@@ -246,9 +241,14 @@
|
||||
<DependentUpon>frmImportMainExtra.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Strings\frmShared.Designer.vb">
|
||||
<DependentUpon>frmShared.resx</DependentUpon>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>frmShared.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Strings\frmShared.en.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>frmShared.en.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -305,9 +305,14 @@
|
||||
<LastGenOutput>frmImportMainExtra.Designer.vb</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Strings\frmShared.resx">
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>frmShared.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Strings\frmShared.en.resx">
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>frmShared.en.Designer.vb</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -338,6 +343,7 @@
|
||||
<ItemGroup>
|
||||
<Content Include="CREATE_DATABASE.sql" />
|
||||
<Content Include="MultiTool.ico" />
|
||||
<None Include="Resources\highimportance1.svg" />
|
||||
<None Include="Resources\highimportance.svg" />
|
||||
<None Include="Resources\refreshpivottable.svg" />
|
||||
<None Include="Resources\update.svg" />
|
||||
|
||||
@@ -12,8 +12,8 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyDescription("WebService Multitool für WinLine")>
|
||||
<Assembly: AssemblyCompany("Digital Data")>
|
||||
<Assembly: AssemblyProduct("WebService Multitool")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2022")>
|
||||
<Assembly: AssemblyTrademark("1.2.9.1")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2024")>
|
||||
<Assembly: AssemblyTrademark("1.4.4.3")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' indem Sie "*" wie unten gezeigt eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.2.9.1")>
|
||||
<Assembly: AssemblyVersion("1.4.4.3")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
|
||||
12
MultiTool.Form/My Project/Resources.Designer.vb
generated
12
MultiTool.Form/My Project/Resources.Designer.vb
generated
@@ -22,7 +22,7 @@ Namespace My.Resources
|
||||
'''<summary>
|
||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||
@@ -370,6 +370,16 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property highimportance1() As DevExpress.Utils.Svg.SvgImage
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("highimportance1", resourceCulture)
|
||||
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
|
||||
'''</summary>
|
||||
|
||||
@@ -187,9 +187,6 @@
|
||||
<data name="actions_arrow4down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_arrow4down.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="open1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\open1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="bo_unknown1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\bo_unknown1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
@@ -199,6 +196,9 @@
|
||||
<data name="open3" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\open3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="bo_sale" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\bo_sale.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="actions_checkcircled" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_checkcircled.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
@@ -220,9 +220,6 @@
|
||||
<data name="actions_send1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_send1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="actions_send4" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_send4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="actions_send2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_send2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
@@ -238,9 +235,6 @@
|
||||
<data name="open23" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\open23.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="insertpagecount" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\insertpagecount.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="actions_reload1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_reload1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
@@ -274,6 +268,9 @@
|
||||
<data name="paymentrefund" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\paymentrefund.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="squarified" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\squarified.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="support" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\support.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
@@ -289,8 +286,8 @@
|
||||
<data name="preview" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\preview.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="bo_sale" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\bo_sale.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<data name="insertpagecount" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\insertpagecount.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="exporttopdf" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\exporttopdf.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
@@ -310,14 +307,20 @@
|
||||
<data name="showallfieldcodes" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\showallfieldcodes.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="actions_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_delete.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<data name="open1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\open1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="highimportance" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\highimportance.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="actions_addcircled" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_addcircled.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="squarified" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\squarified.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<data name="actions_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_delete.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="actions_send4" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_send4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="logical2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\logical2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
@@ -334,7 +337,7 @@
|
||||
<data name="actions_checkcircled2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\actions_checkcircled2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="highimportance" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\highimportance.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<data name="highimportance1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\highimportance1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
</root>
|
||||
2
MultiTool.Form/My Project/Settings.Designer.vb
generated
2
MultiTool.Form/My Project/Settings.Designer.vb
generated
@@ -15,7 +15,7 @@ Option Explicit On
|
||||
Namespace My
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0"), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class MySettings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
|
||||
@@ -9,6 +9,7 @@ Namespace My
|
||||
Friend Property MappingConfiguration As MappingConfig
|
||||
Friend Property MandatorConfiguration As MandatorConfig
|
||||
Friend Property GeneralConfiguration As GeneralConfig
|
||||
Friend Property FilterConfiguration As FilterConfig
|
||||
Friend Property Winline As WinlineData
|
||||
End Module
|
||||
End Namespace
|
||||
|
||||
14
MultiTool.Form/Reports/OrderReport.Designer.vb
generated
14
MultiTool.Form/Reports/OrderReport.Designer.vb
generated
@@ -87,9 +87,9 @@ Partial Public Class OrderReport
|
||||
Me.XrTableCell18 = New DevExpress.XtraReports.UI.XRTableCell()
|
||||
Me.tableCell46 = New DevExpress.XtraReports.UI.XRTableCell()
|
||||
Me.XrTableCell8 = New DevExpress.XtraReports.UI.XRTableCell()
|
||||
Me.ObjectDataSource1 = New DevExpress.DataAccess.ObjectBinding.ObjectDataSource(Me.components)
|
||||
Me.GroupFooter1 = New DevExpress.XtraReports.UI.GroupFooterBand()
|
||||
Me.label2 = New DevExpress.XtraReports.UI.XRLabel()
|
||||
Me.ObjectDataSource1 = New DevExpress.DataAccess.ObjectBinding.ObjectDataSource(Me.components)
|
||||
CType(Me.XrTable2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.XrTable1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.table3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@@ -488,7 +488,7 @@ Partial Public Class OrderReport
|
||||
Me.tableCell31.Multiline = True
|
||||
Me.tableCell31.Name = "tableCell31"
|
||||
Me.tableCell31.StyleName = "DetailCaption2"
|
||||
Me.tableCell31.Text = "Artikelnummer" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Lieferant"
|
||||
Me.tableCell31.Text = "Positionstext"
|
||||
Me.tableCell31.Weight = 0.13529574805877542R
|
||||
'
|
||||
'XrTableCell13
|
||||
@@ -688,11 +688,6 @@ Partial Public Class OrderReport
|
||||
Me.XrTableCell8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight
|
||||
Me.XrTableCell8.Weight = 0.089263976911086243R
|
||||
'
|
||||
'ObjectDataSource1
|
||||
'
|
||||
Me.ObjectDataSource1.DataSource = GetType(MultiTool.Common.Report.ReportSource)
|
||||
Me.ObjectDataSource1.Name = "ObjectDataSource1"
|
||||
'
|
||||
'GroupFooter1
|
||||
'
|
||||
Me.GroupFooter1.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.label2})
|
||||
@@ -711,6 +706,11 @@ Partial Public Class OrderReport
|
||||
Me.label2.StylePriority.UseBackColor = False
|
||||
Me.label2.StylePriority.UseBorders = False
|
||||
'
|
||||
'ObjectDataSource1
|
||||
'
|
||||
Me.ObjectDataSource1.DataSource = GetType(MultiTool.Common.Report.ReportSource)
|
||||
Me.ObjectDataSource1.Name = "ObjectDataSource1"
|
||||
'
|
||||
'OrderReport
|
||||
'
|
||||
Me.Bands.AddRange(New DevExpress.XtraReports.UI.Band() {Me.TopMargin, Me.BottomMargin, Me.ReportHeader, Me.Detail, Me.DetailReport})
|
||||
|
||||
19
MultiTool.Form/Resources/highimportance1.svg
Normal file
19
MultiTool.Form/Resources/highimportance1.svg
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
|
||||
<style type="text/css">
|
||||
.Yellow{fill:#FFB115;}
|
||||
.Red{fill:#D11C1C;}
|
||||
.Blue{fill:#1177D7;}
|
||||
.Green{fill:#039C23;}
|
||||
.Black{fill:#727272;}
|
||||
.White{fill:#FFFFFF;}
|
||||
.st0{opacity:0.5;}
|
||||
.st1{display:none;}
|
||||
.st2{display:inline;fill:#039C23;}
|
||||
.st3{display:inline;fill:#D11C1C;}
|
||||
.st4{display:inline;fill:#727272;}
|
||||
</style>
|
||||
<g id="HighImportance">
|
||||
<path d="M16,2C8.3,2,2,8.3,2,16s6.3,14,14,14s14-6.3,14-14S23.7,2,16,2z M16,24c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2 S17.1,24,16,24z M18,18h-4V8h4V18z" class="Red" />
|
||||
</g>
|
||||
</svg>
|
||||
@@ -22,7 +22,7 @@ Namespace My.Resources
|
||||
'''<summary>
|
||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Class frmImportMainExtra
|
||||
|
||||
2
MultiTool.Form/Strings/frmMainExtra.Designer.vb
generated
2
MultiTool.Form/Strings/frmMainExtra.Designer.vb
generated
@@ -22,7 +22,7 @@ Namespace My.Resources
|
||||
'''<summary>
|
||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Class frmMainExtra
|
||||
|
||||
@@ -22,7 +22,7 @@ Namespace My.Resources
|
||||
'''<summary>
|
||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Class frmRowEditorExtra
|
||||
@@ -65,7 +65,7 @@ Namespace My.Resources
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Zeichenfolge, die Datumswert für '{oField.Key}' enthält einen ungüligen Wert. Bitte benutzen Sie das Format 'YYYY-MM-DD'. ähnelt.
|
||||
''' Sucht eine lokalisierte Zeichenfolge, die Datumswert für '{0}' enthält einen ungüligen Wert. Bitte benutzen Sie das Format 'YYYY-MM-DD'. ähnelt.
|
||||
'''</summary>
|
||||
Friend Shared ReadOnly Property Datumswert_für___0___enthält_einen_ungüligen_Wert() As String
|
||||
Get
|
||||
|
||||
@@ -118,6 +118,6 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Datumswert für '{0}' enthält einen ungüligen Wert" xml:space="preserve">
|
||||
<value>Datumswert für '{oField.Key}' enthält einen ungüligen Wert. Bitte benutzen Sie das Format 'YYYY-MM-DD'.</value>
|
||||
<value>Datumswert für '{0}' enthält einen ungüligen Wert. Bitte benutzen Sie das Format 'YYYY-MM-DD'.</value>
|
||||
</data>
|
||||
</root>
|
||||
2
MultiTool.Form/Strings/frmShared.Designer.vb
generated
2
MultiTool.Form/Strings/frmShared.Designer.vb
generated
@@ -22,7 +22,7 @@ Namespace My.Resources
|
||||
'''<summary>
|
||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Class frmShared
|
||||
|
||||
0
MultiTool.Form/Strings/frmShared.en.Designer.vb
generated
Normal file
0
MultiTool.Form/Strings/frmShared.en.Designer.vb
generated
Normal file
132
MultiTool.Form/Strings/frmShared.en.resx
Normal file
132
MultiTool.Form/Strings/frmShared.en.resx
Normal file
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Auswahl der Vorlage" xml:space="preserve">
|
||||
<value>Selection of Template</value>
|
||||
</data>
|
||||
<data name="In der Funktion '{0}' ist folgender Fehler aufgetreten: {1}" xml:space="preserve">
|
||||
<value>The following error occurred in Function '{0}': {1}</value>
|
||||
</data>
|
||||
<data name="Laden des Formulars" xml:space="preserve">
|
||||
<value>Form Load</value>
|
||||
</data>
|
||||
<data name="{0} - WebService Multitool für WinLine" xml:space="preserve">
|
||||
<value>{0} - WebService Multitool for WinLine</value>
|
||||
</data>
|
||||
</root>
|
||||
787
MultiTool.Form/frmConfig.Designer.vb
generated
787
MultiTool.Form/frmConfig.Designer.vb
generated
File diff suppressed because it is too large
Load Diff
@@ -118,13 +118,13 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="TBEDIXMLITEMSBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>313, 17</value>
|
||||
<value>136, 17</value>
|
||||
</metadata>
|
||||
<metadata name="DS_DD_ECM.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>194, 17</value>
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="TBMT_CONFIGBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>758, 17</value>
|
||||
<metadata name="TBMT_TABLESBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1210, 16</value>
|
||||
</metadata>
|
||||
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="BarButtonItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
@@ -143,13 +143,22 @@
|
||||
IC8+DQo8L3N2Zz4L
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="TBMT_CONFIGBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>613, 17</value>
|
||||
</metadata>
|
||||
<metadata name="TBMT_TEMPLATE_ITEMSTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>533, 17</value>
|
||||
<value>356, 17</value>
|
||||
</metadata>
|
||||
<metadata name="TBMT_CONFIGTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>999, 17</value>
|
||||
<value>824, 17</value>
|
||||
</metadata>
|
||||
<metadata name="TableAdapterManager.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1234, 17</value>
|
||||
<value>1029, 17</value>
|
||||
</metadata>
|
||||
<metadata name="TBMT_TABLESTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 56</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>121</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -4,56 +4,81 @@ Imports DevExpress.XtraGrid.Views.Grid
|
||||
Imports DigitalData.Modules.Config
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Language
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.GUIs.Common
|
||||
|
||||
Public Class frmConfig
|
||||
|
||||
Private ReadOnly TBMT_CONFIG_GENERAL As New DS_DD_ECM.TBMT_CONFIGDataTable
|
||||
Private ReadOnly ConfigManager As ConfigManager(Of MultiTool.Common.Config)
|
||||
Private ReadOnly FormHelper As FormHelper
|
||||
Private ReadOnly GridBuilder As GridBuilder
|
||||
|
||||
Private BindingSource As BindingSource = TBEDIXMLITEMSBindingSource
|
||||
Private View As GridView = GridViewSchema
|
||||
Private View As GridView = GridViewItems
|
||||
Private Logger As Logger
|
||||
Private FormLoading As Boolean = True
|
||||
|
||||
|
||||
Private ReadOnly Property Config As MultiTool.Common.Config
|
||||
Private ReadOnly Property Config As Common.Config
|
||||
Get
|
||||
Return ConfigManager?.Config
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pConfigManager As ConfigManager(Of MultiTool.Common.Config))
|
||||
Public Sub New(pLogConfig As LogConfig, pConfigManager As ConfigManager(Of Common.Config))
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
InitializeComponent()
|
||||
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
FormHelper = New FormHelper(pLogConfig, Me)
|
||||
ConfigManager = pConfigManager
|
||||
GridBuilder = New GridBuilder(GridViewTables, GridViewItems)
|
||||
Logger = pLogConfig.GetLogger()
|
||||
End Sub
|
||||
|
||||
Private Sub frmConfig_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
Try
|
||||
GridBuilder.WithDefaults()
|
||||
GridBuilder.WithReadOnlyOptions(GridViewTables)
|
||||
|
||||
Dim oConnectionString = MSSQLServer.DecryptConnectionString(Config.ConnectionString)
|
||||
Dim oBuilder As New SqlConnectionStringBuilder(oConnectionString) With {
|
||||
.InitialCatalog = "DD_ECM"
|
||||
}
|
||||
oConnectionString = oBuilder.ToString()
|
||||
Logger.Debug("Connection String: [{0}]", oConnectionString)
|
||||
|
||||
' Default Values
|
||||
Logger.Debug("Setting default values")
|
||||
DS_DD_ECM.TBMT_CONFIG.ADDED_WHOColumn.DefaultValue = Environment.UserName
|
||||
DS_DD_ECM.TBMT_CONFIG.CHANGED_WHOColumn.DefaultValue = Environment.UserName
|
||||
DS_DD_ECM.TBMT_TEMPLATE_ITEMS.ADDED_WHOColumn.DefaultValue = Environment.UserName
|
||||
DS_DD_ECM.TBMT_TEMPLATE_ITEMS.CHANGED_WHOColumn.DefaultValue = Environment.UserName
|
||||
|
||||
TBMT_TEMPLATE_ITEMSTableAdapter.Connection.ConnectionString = oBuilder.ToString()
|
||||
TBMT_TEMPLATE_ITEMSTableAdapter.Fill(DS_DD_ECM.TBMT_TEMPLATE_ITEMS)
|
||||
Logger.Debug("Initializing Tables Adapter")
|
||||
TBMT_TABLESTableAdapter.Connection.ConnectionString = oConnectionString
|
||||
|
||||
TBMT_CONFIGTableAdapter.Connection.ConnectionString = oBuilder.ToString()
|
||||
Logger.Debug("Initializing Templates Adapter")
|
||||
TBMT_TEMPLATE_ITEMSTableAdapter.Connection.ConnectionString = oConnectionString
|
||||
|
||||
Logger.Debug("Initializing Config Adapter")
|
||||
TBMT_CONFIGTableAdapter.Connection.ConnectionString = oConnectionString
|
||||
|
||||
Logger.Debug("Loading Data from Adapters")
|
||||
TBMT_TABLESTableAdapter.Fill(DS_DD_ECM.TBMT_TABLES)
|
||||
TBMT_CONFIGTableAdapter.Fill(DS_DD_ECM.TBMT_CONFIG)
|
||||
TBMT_CONFIGTableAdapter.FillGeneral(TBMT_CONFIG_GENERAL)
|
||||
|
||||
Logger.Debug("Loading general config")
|
||||
LoadGeneralConfig(TBMT_CONFIG_GENERAL)
|
||||
|
||||
BindingSource = TBEDIXMLITEMSBindingSource
|
||||
|
||||
FormLoading = False
|
||||
|
||||
GridViewItems.FocusedRowHandle = GridControl.InvalidRowHandle
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
FormHelper.ShowError(ex, "Laden des Formulars")
|
||||
End Try
|
||||
End Sub
|
||||
@@ -114,7 +139,7 @@ Public Class frmConfig
|
||||
End Sub
|
||||
|
||||
Private Sub Save()
|
||||
GridViewSchema.PostEditor()
|
||||
GridViewItems.PostEditor()
|
||||
TBMT_CONFIGTableAdapter.Update(DS_DD_ECM.TBMT_CONFIG)
|
||||
DS_DD_ECM.TBMT_CONFIG.AcceptChanges()
|
||||
|
||||
@@ -146,7 +171,7 @@ Public Class frmConfig
|
||||
Select Case e.Page.Name
|
||||
Case tabPageSchema.Name
|
||||
BindingSource = TBEDIXMLITEMSBindingSource
|
||||
View = GridViewSchema
|
||||
View = GridViewItems
|
||||
|
||||
Case tabPageConfig.Name
|
||||
BindingSource = TBMT_CONFIGBindingSource
|
||||
@@ -169,4 +194,32 @@ Public Class frmConfig
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub GridViewTables_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles GridViewTables.FocusedRowChanged
|
||||
Try
|
||||
If FormLoading Then
|
||||
Logger.Debug("Form still loading. Exiting.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If GridViewTables.FocusedRowHandle < 0 Then
|
||||
Logger.Debug("No row selected. Exiting.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim oRow As DataRow = GridViewTables.GetDataRow(GridViewTables.FocusedRowHandle)
|
||||
|
||||
If oRow Is Nothing Then
|
||||
Logger.Debug("Invalid row handle. Exiting.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim oTableId = oRow.Item("GUID")
|
||||
Logger.Debug("Loading Items for Table [{0}]", oTableId)
|
||||
TBMT_TEMPLATE_ITEMSTableAdapter.Fill(DS_DD_ECM.TBMT_TEMPLATE_ITEMS, oTableId)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
FormHelper.ShowError(ex, "Laden der Tabelle")
|
||||
End Try
|
||||
End Sub
|
||||
End Class
|
||||
20
MultiTool.Form/frmExportMain.Designer.vb
generated
20
MultiTool.Form/frmExportMain.Designer.vb
generated
@@ -26,7 +26,7 @@ Partial Class frmExportMain
|
||||
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.txtResults = New DevExpress.XtraBars.BarStaticItem()
|
||||
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.btnExport = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.btnOpenInputDirectory = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.btnOpenOutputDirectory = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
|
||||
@@ -136,7 +136,7 @@ Partial Class frmExportMain
|
||||
'RibbonControl1
|
||||
'
|
||||
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.txtResults, Me.BarButtonItem2, Me.btnOpenInputDirectory, Me.btnOpenOutputDirectory, Me.BarButtonItem3, Me.BarButtonItem4})
|
||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.txtResults, Me.btnExport, Me.btnOpenInputDirectory, Me.btnOpenOutputDirectory, Me.BarButtonItem3, Me.BarButtonItem4})
|
||||
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.RibbonControl1.MaxItemId = 10
|
||||
Me.RibbonControl1.Name = "RibbonControl1"
|
||||
@@ -162,16 +162,17 @@ Partial Class frmExportMain
|
||||
Me.txtResults.Name = "txtResults"
|
||||
Me.txtResults.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
|
||||
'
|
||||
'BarButtonItem2
|
||||
'btnExport
|
||||
'
|
||||
Me.BarButtonItem2.Caption = "Ausgewählte Zeilen Exportieren"
|
||||
Me.BarButtonItem2.Id = 5
|
||||
Me.BarButtonItem2.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.actions_send5
|
||||
Me.BarButtonItem2.Name = "BarButtonItem2"
|
||||
Me.btnExport.Caption = "Ausgewählte Zeilen Exportieren"
|
||||
Me.btnExport.Id = 5
|
||||
Me.btnExport.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.actions_send5
|
||||
Me.btnExport.Name = "btnExport"
|
||||
'
|
||||
'btnOpenInputDirectory
|
||||
'
|
||||
Me.btnOpenInputDirectory.Caption = "Eingangsverzeichnis öffnen"
|
||||
Me.btnOpenInputDirectory.Enabled = False
|
||||
Me.btnOpenInputDirectory.Id = 6
|
||||
Me.btnOpenInputDirectory.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.open27
|
||||
Me.btnOpenInputDirectory.Name = "btnOpenInputDirectory"
|
||||
@@ -212,7 +213,7 @@ Partial Class frmExportMain
|
||||
'RibbonPageGroup2
|
||||
'
|
||||
Me.RibbonPageGroup2.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.btnExport)
|
||||
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
||||
Me.RibbonPageGroup2.Text = "Export"
|
||||
'
|
||||
@@ -264,6 +265,7 @@ Partial Class frmExportMain
|
||||
Me.GridViewDocuments.OptionsSelection.CheckBoxSelectorField = "IsSelected"
|
||||
Me.GridViewDocuments.OptionsSelection.MultiSelect = True
|
||||
Me.GridViewDocuments.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect
|
||||
Me.GridViewDocuments.SortInfo.AddRange(New DevExpress.XtraGrid.Columns.GridColumnSortInfo() {New DevExpress.XtraGrid.Columns.GridColumnSortInfo(Me.colNumber, DevExpress.Data.ColumnSortOrder.Descending)})
|
||||
'
|
||||
'colImported
|
||||
'
|
||||
@@ -854,7 +856,7 @@ Partial Class frmExportMain
|
||||
Friend WithEvents LayoutControlItem7 As DevExpress.XtraLayout.LayoutControlItem
|
||||
Friend WithEvents GridColumn7 As DevExpress.XtraGrid.Columns.GridColumn
|
||||
Friend WithEvents txtResults As DevExpress.XtraBars.BarStaticItem
|
||||
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents btnExport As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||
Friend WithEvents SplashScreenManager As DevExpress.XtraSplashScreen.SplashScreenManager
|
||||
Friend WithEvents RepositoryItemImageComboBox1 As DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
Imports DigitalData.GUIs.Common
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.Modules.Config
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Language
|
||||
Imports MultiTool.Common.Templates
|
||||
Imports MultiTool.Common.Exceptions
|
||||
Imports MultiTool.Common.Winline
|
||||
@@ -21,7 +20,7 @@ Public Class frmExportMain
|
||||
Private WebService As WebServiceData
|
||||
Private Winline As WinlineData
|
||||
Private GridBuilder As GridBuilder
|
||||
Private FileEx As DigitalData.Modules.Filesystem.File
|
||||
Private FileEx As FilesystemEx
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pConfigManager As ConfigManager(Of Common.Config), pTemplate As Template)
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
@@ -44,20 +43,14 @@ Public Class frmExportMain
|
||||
Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString)
|
||||
Database = New MSSQLServer(LogConfig, oConnectionString)
|
||||
|
||||
Dim oViews As New List(Of GridView) From {
|
||||
GridViewDocuments,
|
||||
lookupMandator.Properties.View,
|
||||
lookupAccount.Properties.View
|
||||
}
|
||||
GridBuilder = New GridBuilder(oViews)
|
||||
GridBuilder.
|
||||
GridBuilder = New GridBuilder(GridViewDocuments, lookupMandator.Properties.View, lookupAccount.Properties.View).
|
||||
WithDefaults().
|
||||
WithReadOnlyOptions().
|
||||
WithClipboardHandler()
|
||||
|
||||
Winline = My.Winline
|
||||
FileEx = New DigitalData.Modules.Filesystem.File(LogConfig)
|
||||
WebService = New WebServiceData(LogConfig, Database, Winline, My.GeneralConfiguration.Webservice, My.GeneralConfiguration)
|
||||
FileEx = New FilesystemEx(LogConfig)
|
||||
WebService = New WebServiceData(LogConfig, Database, Winline, My.GeneralConfiguration.Webservice, My.GeneralConfiguration, My.FilterConfiguration)
|
||||
AddHandler WebService.WebServiceProgress, AddressOf WebService_Progress
|
||||
|
||||
Catch ex As Exception
|
||||
@@ -96,6 +89,10 @@ Public Class frmExportMain
|
||||
Where(Function(mandator) mandator.Id = ConfigManager.Config.LastUsedMandator).
|
||||
FirstOrDefault()
|
||||
End If
|
||||
|
||||
If ConfigManager.Config.AutomaticLoadingOnFormOpen = True Then
|
||||
SearchDocuments()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
FormHelper.ShowError(ex, "Initialisierung der Form")
|
||||
End Try
|
||||
@@ -183,7 +180,7 @@ Public Class frmExportMain
|
||||
dateDocDateTo.DoValidate()
|
||||
|
||||
Dim oMandator = lookupMandator.EditValue
|
||||
Dim oYear = Utils.NotNull(comboYear.EditValue, 0)
|
||||
Dim oYear = ObjectEx.NotNull(comboYear.EditValue, 0)
|
||||
Dim oAccount = lookupAccount.EditValue
|
||||
Dim oKindsAsObjects As List(Of Object) = comboDocumentKind.EditValue
|
||||
Dim oKinds As List(Of DocumentKind) = oKindsAsObjects.Cast(Of DocumentKind).ToList()
|
||||
@@ -191,8 +188,8 @@ Public Class frmExportMain
|
||||
Dim oDateFrom = dateDocDateFrom.EditValue
|
||||
Dim oDateTo = dateDocDateTo.EditValue
|
||||
Dim oShowExported = chkShowExported.Checked
|
||||
Dim oDocNumberFrom = Utils.NotNull(txtDocumentFrom.EditValue, String.Empty)
|
||||
Dim oDocNumberTo = Utils.NotNull(txtDocumentTo.EditValue, String.Empty)
|
||||
Dim oDocNumberFrom = ObjectEx.NotNull(txtDocumentFrom.EditValue, String.Empty)
|
||||
Dim oDocNumberTo = ObjectEx.NotNull(txtDocumentTo.EditValue, String.Empty)
|
||||
|
||||
Dim oDocType As WinlineData.DocumentType = MapDocumentTypeToEnum(Of WinlineData.DocumentType)(comboDocumentType.EditValue)
|
||||
|
||||
@@ -215,6 +212,7 @@ Public Class frmExportMain
|
||||
|
||||
If oDocuments Is Nothing Then
|
||||
FormHelper.ShowWarning("There was an error in the Query.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
GridControlDocuments.DataSource = oDocuments
|
||||
@@ -226,8 +224,9 @@ Public Class frmExportMain
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Async Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
|
||||
Private Async Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExport.ItemClick
|
||||
Try
|
||||
btnExport.Enabled = False
|
||||
SplashScreenManager.ShowWaitForm()
|
||||
|
||||
Dim oExportResult = False
|
||||
@@ -244,13 +243,11 @@ Public Class frmExportMain
|
||||
SplashScreenManager.SetWaitFormDescription(oMessage)
|
||||
|
||||
Await WebService.ExportDocumentFromWinline(oDocument, CurrentTemplate, oMandator)
|
||||
Dim oFinalSqlResult = Await Winline.ExecuteFinalSQL(oDocument, CurrentTemplate, oMandator)
|
||||
Dim oFinalSqlResult = Await Winline.ExecuteFinalSQLForExport(oDocument, CurrentTemplate, oMandator)
|
||||
|
||||
If oFinalSqlResult = False Then
|
||||
Throw New DatabaseException("FinalSQL was not executed successfully!")
|
||||
End If
|
||||
|
||||
oDocument.IsExported = True
|
||||
Next
|
||||
|
||||
MsgBox($"{oExportCount} Dateien wurden erfolgreich exportiert!", MsgBoxStyle.Information, Text)
|
||||
@@ -263,6 +260,7 @@ Public Class frmExportMain
|
||||
|
||||
Finally
|
||||
SplashScreenManager.CloseWaitForm()
|
||||
btnExport.Enabled = True
|
||||
SearchDocuments()
|
||||
|
||||
End Try
|
||||
|
||||
15
MultiTool.Form/frmImportMain.Designer.vb
generated
15
MultiTool.Form/frmImportMain.Designer.vb
generated
@@ -58,6 +58,7 @@ Partial Class frmImportMain
|
||||
Me.btnCalculatePrices = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.btnOpenLogDirectory2 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.txtErrors = New DevExpress.XtraBars.BarStaticItem()
|
||||
Me.btnShowErrors = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.RibbonPageGroupLoad = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonPageGroupReport = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
@@ -223,9 +224,9 @@ Partial Class frmImportMain
|
||||
'RibbonControl
|
||||
'
|
||||
Me.RibbonControl.ExpandCollapseItem.Id = 0
|
||||
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.txtFilesLoaded, Me.btnLoadFiles, Me.btnTransferFile, Me.btnOpenInputDirectory, Me.btnOpenOutputDirectory, Me.btnOpenSchemaDirectory, Me.btnReloadFile, Me.btnTransferAllFiles, Me.btnOpenReport, Me.btnShowXml, Me.btnOpenLogDirectory, Me.btnOpenConfigDirectory, Me.txtCurrentFile, Me.btnConfig, Me.btnRemoveRow, Me.btnTestTransferFile, Me.BarButtonItem1, Me.btnDebugExportReport, Me.btnEditRow, Me.btnCalculatePrices, Me.btnOpenLogDirectory2, Me.txtErrors})
|
||||
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.txtFilesLoaded, Me.btnLoadFiles, Me.btnTransferFile, Me.btnOpenInputDirectory, Me.btnOpenOutputDirectory, Me.btnOpenSchemaDirectory, Me.btnReloadFile, Me.btnTransferAllFiles, Me.btnOpenReport, Me.btnShowXml, Me.btnOpenLogDirectory, Me.btnOpenConfigDirectory, Me.txtCurrentFile, Me.btnConfig, Me.btnRemoveRow, Me.btnTestTransferFile, Me.BarButtonItem1, Me.btnDebugExportReport, Me.btnEditRow, Me.btnCalculatePrices, Me.btnOpenLogDirectory2, Me.txtErrors, Me.btnShowErrors})
|
||||
resources.ApplyResources(Me.RibbonControl, "RibbonControl")
|
||||
Me.RibbonControl.MaxItemId = 39
|
||||
Me.RibbonControl.MaxItemId = 40
|
||||
Me.RibbonControl.Name = "RibbonControl"
|
||||
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2})
|
||||
Me.RibbonControl.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemComboBox1, Me.RepositoryItemProgressBar1})
|
||||
@@ -400,6 +401,14 @@ Partial Class frmImportMain
|
||||
Me.txtErrors.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
|
||||
Me.txtErrors.Tag = "Fehler: {0}"
|
||||
'
|
||||
'btnShowErrors
|
||||
'
|
||||
resources.ApplyResources(Me.btnShowErrors, "btnShowErrors")
|
||||
Me.btnShowErrors.Enabled = False
|
||||
Me.btnShowErrors.Id = 39
|
||||
Me.btnShowErrors.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.highimportance1
|
||||
Me.btnShowErrors.Name = "btnShowErrors"
|
||||
'
|
||||
'RibbonPage1
|
||||
'
|
||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroupLoad, Me.RibbonPageGroupReport, Me.RibbonPageGroupTransfer, Me.RibbonPageGroupEdit})
|
||||
@@ -434,6 +443,7 @@ Partial Class frmImportMain
|
||||
Me.RibbonPageGroupEdit.ItemLinks.Add(Me.btnEditRow)
|
||||
Me.RibbonPageGroupEdit.ItemLinks.Add(Me.btnRemoveRow)
|
||||
Me.RibbonPageGroupEdit.ItemLinks.Add(Me.btnCalculatePrices)
|
||||
Me.RibbonPageGroupEdit.ItemLinks.Add(Me.btnShowErrors)
|
||||
Me.RibbonPageGroupEdit.Name = "RibbonPageGroupEdit"
|
||||
resources.ApplyResources(Me.RibbonPageGroupEdit, "RibbonPageGroupEdit")
|
||||
'
|
||||
@@ -760,4 +770,5 @@ Partial Class frmImportMain
|
||||
Friend WithEvents btnCalculatePrices As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents btnOpenLogDirectory2 As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents txtErrors As DevExpress.XtraBars.BarStaticItem
|
||||
Friend WithEvents btnShowErrors As DevExpress.XtraBars.BarButtonItem
|
||||
End Class
|
||||
|
||||
@@ -256,6 +256,9 @@
|
||||
<data name="txtErrors.Caption" xml:space="preserve">
|
||||
<value>Fehler: 0</value>
|
||||
</data>
|
||||
<data name="btnShowErrors.Caption" xml:space="preserve">
|
||||
<value>Fehler anzeigen</value>
|
||||
</data>
|
||||
<data name="RibbonControl.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
@@ -373,6 +376,9 @@
|
||||
<data name="lookupMandator.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="lookupMandator.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="lookupMandator.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>75, 6</value>
|
||||
</data>
|
||||
@@ -962,6 +968,12 @@
|
||||
<data name=">>txtErrors.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnShowErrors.Name" xml:space="preserve">
|
||||
<value>btnShowErrors</value>
|
||||
</data>
|
||||
<data name=">>btnShowErrors.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>RibbonPage1.Name" xml:space="preserve">
|
||||
<value>RibbonPage1</value>
|
||||
</data>
|
||||
|
||||
@@ -4,6 +4,7 @@ Imports DevExpress.XtraGrid
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
Imports DevExpress.XtraReports.UI
|
||||
Imports DigitalData.GUIs.Common
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DigitalData.Modules.Config
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Logging
|
||||
@@ -13,7 +14,6 @@ Imports MultiTool.Common.Templates
|
||||
Imports MultiTool.Common.Winline
|
||||
Imports MultiTool.Common.Winline.Entities
|
||||
Imports MultiTool.Common.Constants
|
||||
Imports MultiTool.Common.Exceptions
|
||||
|
||||
Public Class frmImportMain
|
||||
Public LogConfig As LogConfig
|
||||
@@ -22,7 +22,7 @@ Public Class frmImportMain
|
||||
Private Logger As Logger
|
||||
Private Database As MSSQLServer
|
||||
Private Winline As WinlineData
|
||||
Private FileEx As DigitalData.Modules.Filesystem.File
|
||||
Private FileEx As FilesystemEx
|
||||
Private WebService As WebServiceData
|
||||
Private DocumentLoader As Documents.DocumentLoader
|
||||
Private DocumentCleaner As Documents.DocumentCleaner
|
||||
@@ -40,6 +40,9 @@ Public Class frmImportMain
|
||||
Private CurrentDocument As Document = Nothing
|
||||
Private CurrentDocumentReadOnly As Boolean = False
|
||||
|
||||
Private FilesLoading As Boolean = False
|
||||
Private FilesLoaded As Boolean = False
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pConfigManager As ConfigManager(Of Config), pTemplate As Template)
|
||||
InitializeComponent()
|
||||
|
||||
@@ -63,13 +66,15 @@ Public Class frmImportMain
|
||||
Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString)
|
||||
Database = New MSSQLServer(LogConfig, oConnectionString)
|
||||
|
||||
GridBuilder = New GridBuilder(GridViewFiles)
|
||||
GridBuilder.WithDefaults.WithReadOnlyOptions.WithClipboardHandler()
|
||||
GridBuilder = New GridBuilder(GridViewFiles, GridView1, GridView2, GridView3, GridView4).
|
||||
WithDefaults().
|
||||
WithReadOnlyOptions().
|
||||
WithClipboardHandler()
|
||||
GridViewFiles.OptionsView.ShowAutoFilterRow = False
|
||||
|
||||
Winline = My.Winline
|
||||
FileEx = New DigitalData.Modules.Filesystem.File(LogConfig)
|
||||
WebService = New WebServiceData(LogConfig, Database, Winline, My.GeneralConfiguration.Webservice, My.GeneralConfiguration)
|
||||
FileEx = New FilesystemEx(LogConfig)
|
||||
WebService = New WebServiceData(LogConfig, Database, Winline, My.GeneralConfiguration.Webservice, My.GeneralConfiguration, My.FilterConfiguration)
|
||||
AddHandler WebService.WebServiceProgress, AddressOf WebService_Progress
|
||||
|
||||
Catch ex As Exception
|
||||
@@ -80,7 +85,7 @@ Public Class frmImportMain
|
||||
Text = String.Format(My.Resources.frmShared._0____WebService_Multitool_für_WinLine, CurrentTemplate.Name)
|
||||
End Sub
|
||||
|
||||
Private Sub frmImportMain_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
|
||||
Private Async Sub frmImportMain_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
|
||||
btnLoadFiles.Enabled = False
|
||||
SplashScreenManager.ShowWaitForm()
|
||||
|
||||
@@ -90,9 +95,14 @@ Public Class frmImportMain
|
||||
lookupMandator.Properties.DataSource = Winline.Mandators
|
||||
lookupMandator.ForceInitialize()
|
||||
lookupMandator.Properties.View.BestFitColumns()
|
||||
lookupMandator.Enabled = False
|
||||
|
||||
DocumentLoader = New Documents.DocumentLoader(LogConfig, Winline, My.MappingConfiguration, My.TemplateConfiguration, ConfigManager.Config)
|
||||
DocumentCleaner = New Documents.DocumentCleaner(LogConfig, CurrentTemplate)
|
||||
DocumentLoader = New DocumentLoader(LogConfig, Winline, Database,
|
||||
My.MappingConfiguration,
|
||||
My.TemplateConfiguration,
|
||||
My.GeneralConfiguration,
|
||||
ConfigManager.Config)
|
||||
DocumentCleaner = New DocumentCleaner(LogConfig, CurrentTemplate)
|
||||
|
||||
GridLoader = New GridLoader(LogConfig)
|
||||
ReportGenerator = New ReportGenerator(Of OrderReport)(LogConfig, Database, My.TemplateConfiguration, My.GeneralConfiguration)
|
||||
@@ -110,6 +120,10 @@ Public Class frmImportMain
|
||||
SplashScreenManager.CloseWaitForm()
|
||||
btnLoadFiles.Enabled = True
|
||||
End Try
|
||||
|
||||
If ConfigManager.Config.AutomaticLoadingOnFormOpen = True Then
|
||||
Await LoadFiles()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub frmImportMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
||||
@@ -189,9 +203,12 @@ Public Class frmImportMain
|
||||
If oRow.HasErrors Then
|
||||
|
||||
Dim oColumName = e.Column.FieldName
|
||||
Dim oErrorField = oRow.Fields.Where(Function(field) field.Value.HasError).FirstOrDefault()
|
||||
Dim oErrorFields = oRow.Fields.
|
||||
Where(Function(field) field.Value.HasError).
|
||||
Select(Function(field) field.Key).
|
||||
ToList()
|
||||
|
||||
If Not IsNothing(oErrorField) AndAlso oColumName = oErrorField.Key Then
|
||||
If oErrorFields.Count > 0 AndAlso oErrorFields.Contains(oColumName) Then
|
||||
e.Appearance.Options.UseBackColor = True
|
||||
e.Appearance.BackColor = Color.LightCoral
|
||||
End If
|
||||
@@ -223,6 +240,8 @@ Public Class frmImportMain
|
||||
|
||||
Private Sub GridViewFiles_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles GridViewFiles.FocusedRowChanged
|
||||
Try
|
||||
FilesLoading = True
|
||||
|
||||
SplitContainerMain.Panel2.Enabled = True
|
||||
Dim oDocument As Document = GridViewFiles.GetRow(e.FocusedRowHandle)
|
||||
|
||||
@@ -233,12 +252,15 @@ Public Class frmImportMain
|
||||
|
||||
If oDocument.Mandator Is Nothing Then
|
||||
lookupMandator.EditValue = Nothing
|
||||
lookupMandator.BackColor = Color.LightCoral
|
||||
End If
|
||||
|
||||
lookupMandator.EditValue = oDocument.Mandator
|
||||
LoadDocument(oDocument)
|
||||
Catch ex As Exception
|
||||
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_des_Dokuments)
|
||||
Finally
|
||||
FilesLoading = False
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
@@ -280,11 +302,22 @@ Public Class frmImportMain
|
||||
Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle)
|
||||
|
||||
' Generate the report
|
||||
Dim oReport = ReportGenerator.GenerateReport(oDocument, CurrentTemplate)
|
||||
Dim oFilePath = ReportGenerator.GetReportFilePath(oDocument, CurrentTemplate)
|
||||
Dim oReportResult = ReportGenerator.GenerateReport(oDocument, CurrentTemplate)
|
||||
Dim oFileInfo = New FileInfo(oReportResult.FileName)
|
||||
|
||||
' Export it to pdf
|
||||
oReport.ExportToPdf(oFilePath)
|
||||
oReportResult.Report.ExportToPdf(oReportResult.FileName)
|
||||
|
||||
Dim oMessage = $"Die Datei wurde im Verzeichnis '{oFileInfo.Directory}' abgelegt. Möchten Sie die Datei jetzt öffnen?"
|
||||
Dim oDialogResult = MsgBox(oMessage, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text)
|
||||
|
||||
If oDialogResult = MsgBoxResult.Yes Then
|
||||
Try
|
||||
Process.Start(oReportResult.FileName)
|
||||
Catch ex As Exception
|
||||
FormHelper.ShowError(ex, "Export Report")
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Async Sub btnTestTransferFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnTestTransferFile.ItemClick
|
||||
@@ -390,7 +423,8 @@ Public Class frmImportMain
|
||||
|
||||
If oFailedDocuments.Count > 0 Then
|
||||
Dim oErrorMessages = String.Join(vbNewLine, oFailedDocuments)
|
||||
Dim oMessage = String.Format("Für {0} Dateien ist die Übertragung in die Winline fehlgeschlagen. Folgende Fehler sind aufgetreten: {2}{1}", oFailedDocuments.Count, oErrorMessages, vbNewLine)
|
||||
Dim oFailedCount = oFailedDocuments.Count
|
||||
Dim oMessage = $"Für {oFailedCount} Dateien ist die Übertragung in die Winline fehlgeschlagen. Folgende Fehler sind aufgetreten: {oErrorMessages}{vbNewLine}"
|
||||
MsgBox(oMessage, MsgBoxStyle.Exclamation, Text)
|
||||
End If
|
||||
|
||||
@@ -418,47 +452,24 @@ Public Class frmImportMain
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Async Function btnLoadFiles_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) As Task Handles btnLoadFiles.ItemClick
|
||||
Await LoadFiles()
|
||||
End Function
|
||||
|
||||
Private Async Sub btnReloadFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnReloadFile.ItemClick
|
||||
Dim oCurrentMandator As Mandator = TryCast(lookupMandator.EditValue, Mandator)
|
||||
If oCurrentMandator Is Nothing Then
|
||||
MsgBox(My.Resources.frmImportMainExtra.Bitte_wählen_Sie_einen_Mandanten_aus__bevor_Sie_fortfahren, MsgBoxStyle.Exclamation, Text)
|
||||
Exit Sub
|
||||
End If
|
||||
'If oCurrentMandator Is Nothing Then
|
||||
' MsgBox(My.Resources.frmImportMainExtra.Bitte_wählen_Sie_einen_Mandanten_aus__bevor_Sie_fortfahren, MsgBoxStyle.Exclamation, Text)
|
||||
' Exit Sub
|
||||
'End If
|
||||
|
||||
Dim oMessage = String.Format(My.Resources.frmImportMainExtra.Wollen_Sie_wirklich_die_aktuelle_Datei_neu_laden, oCurrentMandator)
|
||||
Dim oResult As DialogResult = MsgBox(oMessage, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text)
|
||||
|
||||
Try
|
||||
BeginLoadingUI()
|
||||
If oResult = DialogResult.Yes Then
|
||||
Await ReloadFile()
|
||||
|
||||
If oResult = DialogResult.Yes Then
|
||||
Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle)
|
||||
Dim oNewDocument = Await DocumentLoader.LoadFile(oDocument.File, CurrentTemplate, lookupMandator.EditValue)
|
||||
Dim oIndex = DocumentLoader.Files.IndexOf(oDocument)
|
||||
DocumentLoader.Files.Item(oIndex) = oNewDocument
|
||||
|
||||
LoadDocument(oNewDocument)
|
||||
End If
|
||||
|
||||
Catch ex As NoMandatorException
|
||||
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Neuladen_des_Dokuments, My.Resources.frmImportMainExtra.Es_konnte_kein_passender_Mandant_ermittelt_werden)
|
||||
|
||||
Catch ex As MissingAttributeException
|
||||
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Neuladen_des_Dokuments, "Ein benötigtes Attribut wurde nicht gefunden.")
|
||||
|
||||
Catch ex As Exception
|
||||
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Neuladen_des_Dokuments)
|
||||
|
||||
Finally
|
||||
EndLoadingUI()
|
||||
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnOpenInputDirectory_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnOpenInputDirectory.ItemClick
|
||||
@@ -527,8 +538,8 @@ Public Class frmImportMain
|
||||
|
||||
|
||||
|
||||
Dim oReport As OrderReport = oReportGenerator.GenerateReport(oDocument, CurrentTemplate)
|
||||
Dim oPrintTool As New ReportPrintTool(oReport)
|
||||
Dim oResult = oReportGenerator.GenerateReport(oDocument, CurrentTemplate)
|
||||
Dim oPrintTool As New ReportPrintTool(oResult.Report)
|
||||
oPrintTool.Report.CreateDocument(False)
|
||||
oPrintTool.ShowPreview()
|
||||
|
||||
@@ -610,8 +621,10 @@ Public Class frmImportMain
|
||||
|
||||
If pDocument.HasErrors = True Then
|
||||
btnCalculatePrices.Enabled = False
|
||||
btnShowErrors.Enabled = True
|
||||
Else
|
||||
btnCalculatePrices.Enabled = True
|
||||
btnShowErrors.Enabled = False
|
||||
End If
|
||||
|
||||
If pDocument.Mandator Is Nothing Then
|
||||
@@ -619,7 +632,7 @@ Public Class frmImportMain
|
||||
RibbonPageGroupTransfer.Enabled = False
|
||||
CurrentDocumentReadOnly = True
|
||||
|
||||
MsgBox("Für die aktuelle Datei konnte kein Mandant zugeordnet werden! Bitte wählen Sie einen aus und laden Sie dann die Datei erneut.", MsgBoxStyle.Critical, Text)
|
||||
'MsgBox("Für die aktuelle Datei konnte kein Mandant zugeordnet werden! Bitte wählen Sie einen aus und laden Sie dann die Datei erneut.", MsgBoxStyle.Critical, Text)
|
||||
Else
|
||||
RibbonPageGroupEdit.Enabled = True
|
||||
RibbonPageGroupTransfer.Enabled = True
|
||||
@@ -650,6 +663,7 @@ Public Class frmImportMain
|
||||
Private Async Function LoadFiles() As Task
|
||||
Try
|
||||
BeginLoadingUI()
|
||||
FilesLoading = True
|
||||
|
||||
DocumentCleaner.CleanImportedDocuments(DocumentLoader.Files)
|
||||
|
||||
@@ -670,19 +684,44 @@ Public Class frmImportMain
|
||||
GridControlFiles.DataSource = Nothing
|
||||
GridControlFiles.DataSource = DocumentLoader.Files
|
||||
|
||||
FilesLoaded = DocumentLoader.Files.Count > 0
|
||||
|
||||
txtFilesLoaded.Caption = String.Format(My.Resources.frmImportMainExtra._0__Dateien_geladen, DocumentLoader.Files.Count)
|
||||
Else
|
||||
FilesLoaded = False
|
||||
End If
|
||||
Catch ex As NoMandatorException
|
||||
MsgBox(My.Resources.frmImportMainExtra.Es_konnte_kein_passender_Mandant_ermittelt_werden, MsgBoxStyle.Information, Text)
|
||||
|
||||
Catch ex As Exception
|
||||
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_der_Dokumente)
|
||||
|
||||
Finally
|
||||
FilesLoading = False
|
||||
EndLoadingUI()
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function ReloadFile() As Task
|
||||
Try
|
||||
BeginLoadingUI()
|
||||
FilesLoading = True
|
||||
|
||||
Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle)
|
||||
Dim oNewDocument = Await DocumentLoader.LoadFile(oDocument.File, CurrentTemplate, lookupMandator.EditValue)
|
||||
Dim oIndex = DocumentLoader.Files.IndexOf(oDocument)
|
||||
DocumentLoader.Files.Item(oIndex) = oNewDocument
|
||||
|
||||
LoadDocument(oNewDocument)
|
||||
|
||||
Catch ex As Exception
|
||||
FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Neuladen_des_Dokuments)
|
||||
|
||||
Finally
|
||||
FilesLoading = False
|
||||
EndLoadingUI()
|
||||
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function EditRow(pRow As DataRow, pView As GridView) As DocumentRow
|
||||
Try
|
||||
If CurrentDocumentReadOnly = True Then
|
||||
@@ -727,29 +766,31 @@ Public Class frmImportMain
|
||||
Return False
|
||||
End If
|
||||
|
||||
Logger.Info("Transferring file [{0}] to Winline", pDocument.FileName)
|
||||
Dim oResult = Await WebService.TransferDocumentToWinline(pDocument, CurrentTemplate, lookupMandator.EditValue, pIsTest)
|
||||
|
||||
Logger.Debug("Transfer successful: [{0}]", oResult)
|
||||
|
||||
If oResult = True Then
|
||||
|
||||
' If this was only a test, we are done.
|
||||
If pIsTest = True Then
|
||||
Logger.Debug("This was a Test Transfer. Exiting.")
|
||||
Return True
|
||||
End If
|
||||
|
||||
WebService.RaiseWebServiceProgress("Bericht erzeugen")
|
||||
|
||||
' Generate the report
|
||||
Dim oReport = ReportGenerator.GenerateReport(pDocument, CurrentTemplate)
|
||||
Dim oFilePath = ReportGenerator.GetReportFilePath(pDocument, CurrentTemplate)
|
||||
|
||||
WebService.RaiseWebServiceProgress("Bericht exportieren")
|
||||
WebService.RaiseWebServiceProgress("Bericht erzeugen")
|
||||
Logger.Debug("Creating report for file [{0}]", pDocument.FileName)
|
||||
Dim oReportResult = ReportGenerator.GenerateReport(pDocument, CurrentTemplate)
|
||||
|
||||
' Export it to pdf
|
||||
oReport.ExportToPdf(oFilePath)
|
||||
WebService.RaiseWebServiceProgress("Bericht exportieren")
|
||||
Logger.Debug("Exporting report to [{0}]", oReportResult.FileName)
|
||||
oReportResult.Report.ExportToPdf(oReportResult.FileName)
|
||||
|
||||
WebService.RaiseWebServiceProgress("Datei archivieren")
|
||||
|
||||
' Mark Document as Imported, will be moved on Form Close
|
||||
' Mark Document as Imported, will be moved on Form Close or File Reload
|
||||
Logger.Debug("Setting file [{0}] to Imported", pDocument.FileName)
|
||||
pDocument.Imported = True
|
||||
|
||||
Return True
|
||||
@@ -828,6 +869,7 @@ Public Class frmImportMain
|
||||
SetDocumentButtonsEnabled(False)
|
||||
GridControlFiles.Enabled = False
|
||||
SplitContainerGrids.Enabled = False
|
||||
lookupMandator.Enabled = False
|
||||
|
||||
RibbonPageGroupLoad.Enabled = False
|
||||
RibbonPageGroupEdit.Enabled = False
|
||||
@@ -841,6 +883,7 @@ Public Class frmImportMain
|
||||
RibbonPageGroupReport.Enabled = True
|
||||
RibbonPageGroupTransfer.Enabled = True
|
||||
|
||||
lookupMandator.Enabled = FilesLoaded
|
||||
SplitContainerGrids.Enabled = True
|
||||
GridControlFiles.Enabled = True
|
||||
SetDocumentButtonsEnabled(True)
|
||||
@@ -857,16 +900,45 @@ Public Class frmImportMain
|
||||
btnEditRow.Enabled = pEnabled
|
||||
End Sub
|
||||
|
||||
Private Sub lookupMandator_EditValueChanged(sender As Object, e As EventArgs) Handles lookupMandator.EditValueChanged
|
||||
If lookupMandator.EditValue Is Nothing Then
|
||||
lookupMandator.BackColor = Color.LightCoral
|
||||
Else
|
||||
lookupMandator.BackColor = Nothing
|
||||
Private Sub btnShowErrors_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnShowErrors.ItemClick
|
||||
If CurrentDocument IsNot Nothing Then
|
||||
Dim oErrors = CurrentDocument.Errors.
|
||||
Select(Function(s) " - " & s).
|
||||
ToList()
|
||||
Dim oMessage = String.Join(vbNewLine, oErrors)
|
||||
MsgBox($"Datei enthält {oErrors.Count} Fehler:{vbNewLine}{vbNewLine}{oMessage}", MsgBoxStyle.Exclamation, Text)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private AskReloadFile As Boolean = False
|
||||
|
||||
Private Async Function lookupMandator_EditValueChanged(sender As Object, e As EventArgs) As Task Handles lookupMandator.EditValueChanged
|
||||
Dim oMandator As Mandator = lookupMandator.EditValue
|
||||
|
||||
If lookupMandator.EditValue Is Nothing Then
|
||||
lookupMandator.BackColor = Color.LightCoral
|
||||
|
||||
AskReloadFile = False
|
||||
Else
|
||||
lookupMandator.BackColor = Nothing
|
||||
|
||||
If AskReloadFile Then
|
||||
AskReloadFile = False
|
||||
|
||||
Dim oResult = MsgBox($"Sie haben den Mandanten '{oMandator}' ausgewählt. Wollen Sie jetzt die aktuelle Datei neu laden?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text)
|
||||
|
||||
If oResult = MsgBoxResult.Yes Then
|
||||
Await ReloadFile()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Sub lookupMandator_EditValueChanging(sender As Object, e As DevExpress.XtraEditors.Controls.ChangingEventArgs) Handles lookupMandator.EditValueChanging
|
||||
If e.OldValue Is Nothing And e.NewValue IsNot Nothing And FilesLoading = False Then
|
||||
AskReloadFile = True
|
||||
End If
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
12
MultiTool.Form/frmMain.Designer.vb
generated
12
MultiTool.Form/frmMain.Designer.vb
generated
@@ -45,6 +45,7 @@ Partial Class frmMain
|
||||
Me.colName = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.colDescription = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.colFileName = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.colChangedWhen = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, GetType(Global.MultiTool.Form.frmWaitForm), True, True)
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@@ -204,7 +205,7 @@ Partial Class frmMain
|
||||
'
|
||||
'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.colChangedWhen})
|
||||
Me.GridViewTemplates.GridControl = Me.GridControlTemplates
|
||||
Me.GridViewTemplates.Name = "GridViewTemplates"
|
||||
'
|
||||
@@ -232,6 +233,14 @@ Partial Class frmMain
|
||||
Me.colFileName.Visible = True
|
||||
Me.colFileName.VisibleIndex = 2
|
||||
'
|
||||
'colChangedWhen
|
||||
'
|
||||
Me.colChangedWhen.Caption = "Letzte Änderung"
|
||||
Me.colChangedWhen.FieldName = "LastModified"
|
||||
Me.colChangedWhen.Name = "colChangedWhen"
|
||||
Me.colChangedWhen.Visible = True
|
||||
Me.colChangedWhen.VisibleIndex = 3
|
||||
'
|
||||
'SplashScreenManager
|
||||
'
|
||||
Me.SplashScreenManager.ClosingDelay = 500
|
||||
@@ -283,4 +292,5 @@ Partial Class frmMain
|
||||
Friend WithEvents btnOpenSchemaDirectory As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||
Friend WithEvents btnReloadWinlineData As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents colChangedWhen As DevExpress.XtraGrid.Columns.GridColumn
|
||||
End Class
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.IO
|
||||
Imports DevExpress.Utils
|
||||
Imports DigitalData.Controls.SQLConfig
|
||||
Imports DigitalData.GUIs.Common
|
||||
Imports DigitalData.Modules.Config
|
||||
Imports DigitalData.Modules.Database
|
||||
@@ -90,18 +89,17 @@ Public Class frmMain
|
||||
|
||||
Private Async Function LoadWinlineData(Winline As WinlineData) As Task
|
||||
Winline.Mandators.Clear()
|
||||
Winline.LoadEconomicYears()
|
||||
Await Winline.LoadMandators()
|
||||
Await Winline.LoadMandatorsAsync()
|
||||
|
||||
For Each oMandator As Mandator In Winline.Mandators
|
||||
SplashScreenManager.SetWaitFormDescription(String.Format(My.Resources.frmImportMainExtra.Lade__0__Konten, oMandator.Id))
|
||||
Await Winline.LoadAccounts(oMandator)
|
||||
Await Winline.LoadAccountsAsync(oMandator)
|
||||
SplashScreenManager.SetWaitFormDescription(String.Format(My.Resources.frmImportMainExtra.Lade__0__Artikel, oMandator.Id))
|
||||
Await Winline.LoadArticles(oMandator)
|
||||
Await Winline.LoadArticlesAsync(oMandator)
|
||||
SplashScreenManager.SetWaitFormDescription(String.Format(My.Resources.frmImportMainExtra.Lade__0__Belegarten, oMandator.Id))
|
||||
Await Winline.LoadDocumentKinds(oMandator)
|
||||
Await Winline.LoadDocumentKindsAsync(oMandator)
|
||||
SplashScreenManager.SetWaitFormDescription(String.Format("Lade {0}/Colli", oMandator.Id))
|
||||
Await Winline.LoadPackingUnits(oMandator)
|
||||
Await Winline.LoadPackingUnitsAsync(oMandator)
|
||||
Next
|
||||
|
||||
My.Winline = Winline
|
||||
@@ -112,18 +110,34 @@ Public Class frmMain
|
||||
TemplateLoader = New TemplateLoader(LogConfig, Database)
|
||||
Await TemplateLoader.LoadTemplates()
|
||||
Await TemplateLoader.LoadTemplateConfiguration()
|
||||
Await TemplateLoader.LoadTemplateFunctions()
|
||||
Await TemplateLoader.LoadGeneralConfiguration()
|
||||
Await TemplateLoader.LoadMappingConfiguration()
|
||||
Await TemplateLoader.LoadMandatorConfiguration()
|
||||
Await TemplateLoader.LoadFilterConfiguration()
|
||||
|
||||
' Save Schema data in 'My' Namespace
|
||||
My.MappingConfiguration = TemplateLoader.MappingConfiguration
|
||||
My.TemplateConfiguration = TemplateLoader.TemplateConfiguration
|
||||
My.MandatorConfiguration = TemplateLoader.MandatorConfiguration
|
||||
My.GeneralConfiguration = TemplateLoader.GeneralConfiguration
|
||||
My.FilterConfiguration = TemplateLoader.FilterConfiguration
|
||||
|
||||
Dim oBindingSource = New BindingList(Of Template)
|
||||
For Each oTemplate As Template In TemplateLoader.TemplateList
|
||||
|
||||
' Check template files and update modified date
|
||||
Try
|
||||
Dim oFilePath = IO.Path.Combine(My.GeneralConfiguration.TemplateDirectory, oTemplate.FileName)
|
||||
Dim oFileInfo = New FileInfo(oFilePath)
|
||||
|
||||
If oFileInfo.Exists Then
|
||||
oTemplate.LastModified = oFileInfo.LastWriteTime
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
oBindingSource.Add(oTemplate)
|
||||
Next
|
||||
Return oBindingSource
|
||||
@@ -287,4 +301,8 @@ Public Class frmMain
|
||||
RibbonPageGroupStart.Enabled = True
|
||||
SplashScreenManager.CloseWaitForm()
|
||||
End Sub
|
||||
|
||||
Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
@@ -5,14 +5,15 @@ Imports MultiTool.Common.Winline
|
||||
Imports MultiTool.Common.Winline.Entities
|
||||
Imports MultiTool.Common.Templates
|
||||
Imports MultiTool.Common.Constants
|
||||
Imports DigitalData.Modules.Language
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Base
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraEditors.Repository
|
||||
Imports DevExpress.XtraEditors.Controls
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
|
||||
Public Class frmRowEditor
|
||||
Private ReadOnly LogConfig As LogConfig
|
||||
Private ReadOnly Logger As Logger
|
||||
Private ReadOnly FormHelper As FormHelper
|
||||
|
||||
@@ -44,6 +45,7 @@ Public Class frmRowEditor
|
||||
Public Sub New(pLogConfig As LogConfig, pColumns As List(Of String), pDocumentRow As DocumentRow, pMandator As Mandator, pWinline As WinlineData, pTable As Template.Table)
|
||||
InitializeComponent()
|
||||
|
||||
LogConfig = pLogConfig
|
||||
Logger = pLogConfig.GetLogger()
|
||||
FormHelper = New FormHelper(pLogConfig, Me)
|
||||
|
||||
@@ -119,7 +121,7 @@ Public Class frmRowEditor
|
||||
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(LogConfig))
|
||||
Else
|
||||
oDict.Add(oColumnName, oField.Value)
|
||||
End If
|
||||
@@ -161,11 +163,11 @@ Public Class frmRowEditor
|
||||
' 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
|
||||
oField = New KeyValuePair(Of String, FieldValue)(oRow.Item(COL_KEY), New FieldValue())
|
||||
oField = New KeyValuePair(Of String, FieldValue)(oRow.Item(COL_KEY), New FieldValue(LogConfig))
|
||||
End If
|
||||
|
||||
Dim oFieldValue As FieldValue = oField.Value
|
||||
Dim oValueFromGrid As String = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty)
|
||||
Dim oValueFromGrid As String = ObjectEx.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty)
|
||||
|
||||
' Do the dirtiest date validation of all times
|
||||
If oField.Value.DataType = ColumnType.Date And oValueFromGrid.Length > 0 Then
|
||||
@@ -184,10 +186,10 @@ Public Class frmRowEditor
|
||||
'End If
|
||||
|
||||
' 03.12.21: For now we always remove the error if ANYTHING changed about the field
|
||||
oFieldValue.Error = FieldError.None
|
||||
oFieldValue.Errors.Clear()
|
||||
|
||||
' Save the grid value to the Field
|
||||
oFieldValue.Final = oValueFromGrid.Trim()
|
||||
oFieldValue.SetValue("Final", oValueFromGrid.Trim())
|
||||
|
||||
If _DocumentRow.Fields.ContainsKey(oField.Key) Then
|
||||
_DocumentRow.Fields.Item(oField.Key) = oFieldValue
|
||||
@@ -270,11 +272,11 @@ Public Class frmRowEditor
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If oColumn.Config?.Function?.Name = FUNCTION_GLN Then
|
||||
If oColumn.Config?.Functions.Any(Function(f) f.Name = FUNCTION_GLN) Then
|
||||
e.RepositoryItem = AccountPicker
|
||||
End If
|
||||
|
||||
If oColumn.Config?.Function?.Name = FUNCTION_EAN Then
|
||||
If oColumn.Config?.Functions.Any(Function(f) f.Name = FUNCTION_EAN) Then
|
||||
e.RepositoryItem = ArticlePicker
|
||||
End If
|
||||
|
||||
@@ -291,7 +293,7 @@ Public Class frmRowEditor
|
||||
Private Sub GridView1_CustomDrawCell(sender As Object, e As DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs) Handles GridView1.CustomDrawCell
|
||||
Dim oDataRow As DataRow = GridView1.GetDataRow(e.RowHandle)
|
||||
Dim oKey As String = oDataRow.Item(COL_KEY)
|
||||
Dim oValue As String = Utils.NotNull(oDataRow.Item(COL_VALUE_FINAL), String.Empty)
|
||||
Dim oValue As String = ObjectEx.NotNull(oDataRow.Item(COL_VALUE_FINAL), String.Empty)
|
||||
Dim oColumn = _Table.Columns.
|
||||
Where(Function(c) c.Name = oKey).
|
||||
SingleOrDefault()
|
||||
@@ -309,20 +311,7 @@ Public Class frmRowEditor
|
||||
If oField.Value.HasError Then
|
||||
e.Appearance.BackColor = Color.LightCoral
|
||||
End If
|
||||
|
||||
' TODO: Remove this workaround if the conditions for errors are good now
|
||||
'If e.DisplayText = String.Empty And (
|
||||
' oField.Value.Error = FieldError.AccountNotFound Or
|
||||
' oField.Value.Error = FieldError.ArticleNotFound) Then
|
||||
' e.Appearance.BackColor = Color.LightCoral
|
||||
'End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'If oField.Value.HasError Then
|
||||
' e.Appearance.BackColor = Color.LightCoral
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub frmRowEditor_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="AutoMapper" version="10.1.1" targetFramework="net461" />
|
||||
<package id="NLog" version="4.7.10" targetFramework="net461" />
|
||||
<package id="NLog" version="5.1.0" targetFramework="net461" />
|
||||
</packages>
|
||||
17
MultiTool.Test/MultiTool.Test.csproj
Normal file
17
MultiTool.Test/MultiTool.Test.csproj
Normal file
@@ -0,0 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="FluentAssertions" Version="6.6.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="2.1.1" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="2.1.1" />
|
||||
<PackageReference Include="coverlet.collector" Version="1.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
13
MultiTool.Test/WinlineDataTest.cs
Normal file
13
MultiTool.Test/WinlineDataTest.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace MultiTool.Test
|
||||
{
|
||||
[TestClass]
|
||||
public class WinlineDataTest
|
||||
{
|
||||
[TestMethod]
|
||||
public void Test_VersionNumber()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MultiTool.Common", "MultiTo
|
||||
EndProject
|
||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Multitool.Form.Setup", "Multitool.Form.Setup\Multitool.Form.Setup.wixproj", "{A03D1911-C6D6-4AD0-9601-4D277B35E91D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiTool.Test", "MultiTool.Test\MultiTool.Test.csproj", "{2FCD4E08-F750-49D5-854D-719A55074D30}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -39,6 +41,14 @@ Global
|
||||
{A03D1911-C6D6-4AD0-9601-4D277B35E91D}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{A03D1911-C6D6-4AD0-9601-4D277B35E91D}.Release|x86.ActiveCfg = Release|x86
|
||||
{A03D1911-C6D6-4AD0-9601-4D277B35E91D}.Release|x86.Build.0 = Release|x86
|
||||
{2FCD4E08-F750-49D5-854D-719A55074D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2FCD4E08-F750-49D5-854D-719A55074D30}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2FCD4E08-F750-49D5-854D-719A55074D30}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2FCD4E08-F750-49D5-854D-719A55074D30}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{2FCD4E08-F750-49D5-854D-719A55074D30}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2FCD4E08-F750-49D5-854D-719A55074D30}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2FCD4E08-F750-49D5-854D-719A55074D30}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2FCD4E08-F750-49D5-854D-719A55074D30}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -14,17 +14,17 @@
|
||||
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
||||
<DefineConstants>Debug</DefineConstants>
|
||||
<LinkerAdditionalOptions>
|
||||
-b "$(SolutionDir)MultiTool.Common\bin\$(Configuration)"
|
||||
-b "$(SolutionDir)MultiTool.Form\bin\$(Configuration)"
|
||||
</LinkerAdditionalOptions>
|
||||
-b "$(SolutionDir)MultiTool.Common\bin\$(Configuration)"
|
||||
-b "$(SolutionDir)MultiTool.Form\bin\$(Configuration)"
|
||||
</LinkerAdditionalOptions>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<OutputPath>bin\$(Configuration)\</OutputPath>
|
||||
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
||||
<LinkerAdditionalOptions>
|
||||
-b "$(SolutionDir)MultiTool.Common\bin\$(Configuration)"
|
||||
-b "$(SolutionDir)MultiTool.Form\bin\$(Configuration)"
|
||||
</LinkerAdditionalOptions>
|
||||
-b "$(SolutionDir)MultiTool.Common\bin\$(Configuration)"
|
||||
-b "$(SolutionDir)MultiTool.Form\bin\$(Configuration)"
|
||||
</LinkerAdditionalOptions>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Product.wxs" />
|
||||
|
||||
Reference in New Issue
Block a user