From 4859406fe3230e378b72f2609dbebac6f74c9ed8 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Thu, 23 Dec 2021 15:58:45 +0100 Subject: [PATCH] Update Report, Fix Paths issues, Small Tweaks, Work on Exports --- MultiTool.Form/MultiTool.Form.vbproj | 8 + .../My Project/Resources.Designer.vb | 60 ++++++ MultiTool.Form/My Project/Resources.resx | 26 ++- MultiTool.Form/My Project/licenses.licx | 15 +- .../Reports/OrderReport.Designer.vb | 28 +-- MultiTool.Form/Resources/exporttopdf.svg | 17 ++ MultiTool.Form/Resources/insertpagenumber.svg | 9 + MultiTool.Form/Resources/open27.svg | 13 ++ MultiTool.Form/Resources/open3.svg | 11 + MultiTool.Form/Resources/squarified1.svg | 19 ++ MultiTool.Form/Resources/up1.svg | 13 ++ MultiTool.Form/frmExportMain.Designer.vb | 84 +++++--- MultiTool.Form/frmExportMain.vb | 12 +- MultiTool.Form/frmImportMain.Designer.vb | 40 ++-- MultiTool.Form/frmImportMain.resx | 27 +-- MultiTool.Form/frmImportMain.vb | 39 +++- MultiTool.Shared/Documents/DocumentCleaner.vb | 2 +- MultiTool.Shared/MultiTool.Shared.vbproj | 1 + MultiTool.Shared/Patterns.vb | 66 ++++++ MultiTool.Shared/Report/ReportGenerator.vb | 36 +--- MultiTool.Shared/Winline/WebServiceData.vb | 200 +++++++++--------- MultiTool.Shared/Winline/WinlineData.vb | 10 + 22 files changed, 494 insertions(+), 242 deletions(-) create mode 100644 MultiTool.Form/Resources/exporttopdf.svg create mode 100644 MultiTool.Form/Resources/insertpagenumber.svg create mode 100644 MultiTool.Form/Resources/open27.svg create mode 100644 MultiTool.Form/Resources/open3.svg create mode 100644 MultiTool.Form/Resources/squarified1.svg create mode 100644 MultiTool.Form/Resources/up1.svg create mode 100644 MultiTool.Shared/Patterns.vb diff --git a/MultiTool.Form/MultiTool.Form.vbproj b/MultiTool.Form/MultiTool.Form.vbproj index 29d0946..7f286a0 100644 --- a/MultiTool.Form/MultiTool.Form.vbproj +++ b/MultiTool.Form/MultiTool.Form.vbproj @@ -254,12 +254,14 @@ frmImportMain.vb + Designer frmImportMain.vb frmMain.vb + Designer frmRowEditor.vb @@ -332,6 +334,12 @@ + + + + + + diff --git a/MultiTool.Form/My Project/Resources.Designer.vb b/MultiTool.Form/My Project/Resources.Designer.vb index 8404a24..444de6f 100644 --- a/MultiTool.Form/My Project/Resources.Designer.vb +++ b/MultiTool.Form/My Project/Resources.Designer.vb @@ -280,6 +280,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property exporttopdf() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("exporttopdf", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -320,6 +330,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property insertpagenumber() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("insertpagenumber", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -450,6 +470,26 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property open27() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("open27", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property open3() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("open3", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -560,6 +600,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property squarified1() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("squarified1", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -610,6 +660,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property up1() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("up1", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' diff --git a/MultiTool.Form/My Project/Resources.resx b/MultiTool.Form/My Project/Resources.resx index d3cce4e..f003383 100644 --- a/MultiTool.Form/My Project/Resources.resx +++ b/MultiTool.Form/My Project/Resources.resx @@ -148,6 +148,9 @@ ..\Resources\actions_send3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\up1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\preview.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -169,6 +172,9 @@ ..\Resources\squarified.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\exporttopdf.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\actions_reload.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -181,6 +187,9 @@ ..\Resources\bo_product.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\open3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\paymentrefund.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -193,12 +202,18 @@ ..\Resources\charthorizontalaxis_logscale.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_arrow4down.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\deletetablerows.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\showallfieldcodes.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\open26.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\up.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -223,8 +238,8 @@ ..\Resources\actions_send2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\actions_arrow4down.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\open27.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\actions_checkcircled1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -268,6 +283,9 @@ ..\Resources\open23.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\insertpagenumber.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\pagesetup.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -283,7 +301,7 @@ ..\Resources\itemtypechecked.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\open26.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\squarified1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/MultiTool.Form/My Project/licenses.licx b/MultiTool.Form/My Project/licenses.licx index 50b2c05..3b88066 100644 --- a/MultiTool.Form/My Project/licenses.licx +++ b/MultiTool.Form/My Project/licenses.licx @@ -1,13 +1,14 @@ -DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.GridLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.GridLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraReports.UI.XtraReport, DevExpress.XtraReports.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemProgressBar, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.SearchLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemProgressBar, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/MultiTool.Form/Reports/OrderReport.Designer.vb b/MultiTool.Form/Reports/OrderReport.Designer.vb index 8eed455..8e75cb3 100644 --- a/MultiTool.Form/Reports/OrderReport.Designer.vb +++ b/MultiTool.Form/Reports/OrderReport.Designer.vb @@ -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() @@ -301,7 +301,7 @@ Partial Public Class OrderReport 'XrTable2 ' Me.XrTable2.ForeColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer)) - Me.XrTable2.LocationFloat = New DevExpress.Utils.PointFloat(354.8623!, 0!) + Me.XrTable2.LocationFloat = New DevExpress.Utils.PointFloat(448.4831!, 0!) Me.XrTable2.Name = "XrTable2" Me.XrTable2.Padding = New DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96.0!) Me.XrTable2.Rows.AddRange(New DevExpress.XtraReports.UI.XRTableRow() {Me.XrTableRow3, Me.XrTableRow5, Me.XrTableRow4}) @@ -385,7 +385,7 @@ Partial Public Class OrderReport Me.XrTable1.Name = "XrTable1" Me.XrTable1.Padding = New DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96.0!) Me.XrTable1.Rows.AddRange(New DevExpress.XtraReports.UI.XRTableRow() {Me.XrTableRow1, Me.XrTableRow2}) - Me.XrTable1.SizeF = New System.Drawing.SizeF(322.9167!, 50.0!) + Me.XrTable1.SizeF = New System.Drawing.SizeF(415.625!, 50.0!) Me.XrTable1.StylePriority.UseForeColor = False ' 'XrTableRow1 @@ -409,7 +409,7 @@ Partial Public Class OrderReport Me.XrTableCell2.Multiline = True Me.XrTableCell2.Name = "XrTableCell2" Me.XrTableCell2.Text = "XrTableCell2" - Me.XrTableCell2.Weight = 1.0R + Me.XrTableCell2.Weight = 1.5741933862025337R ' 'XrTableRow2 ' @@ -432,7 +432,7 @@ Partial Public Class OrderReport Me.XrTableCell4.Multiline = True Me.XrTableCell4.Name = "XrTableCell4" Me.XrTableCell4.Text = "XrTableCell4" - Me.XrTableCell4.Weight = 1.0R + Me.XrTableCell4.Weight = 1.5741933862025337R ' 'DetailReport ' @@ -688,6 +688,11 @@ Partial Public Class OrderReport Me.XrTableCell8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight Me.XrTableCell8.Weight = 0.089263976911086243R ' + 'ObjectDataSource1 + ' + Me.ObjectDataSource1.DataSource = GetType(MultiTool.[Shared].Report.ReportSource) + Me.ObjectDataSource1.Name = "ObjectDataSource1" + ' 'GroupFooter1 ' Me.GroupFooter1.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.label2}) @@ -697,18 +702,15 @@ Partial Public Class OrderReport ' 'label2 ' + Me.label2.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) Me.label2.Borders = DevExpress.XtraPrinting.BorderSide.None Me.label2.LocationFloat = New DevExpress.Utils.PointFloat(0!, 0!) Me.label2.Name = "label2" Me.label2.SizeF = New System.Drawing.SizeF(1080.0!, 2.083333!) Me.label2.StyleName = "GroupFooterBackground3" + Me.label2.StylePriority.UseBackColor = False Me.label2.StylePriority.UseBorders = False ' - 'ObjectDataSource1 - ' - Me.ObjectDataSource1.DataSource = GetType(MultiTool.[Shared].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}) @@ -720,7 +722,7 @@ Partial Public Class OrderReport Me.PageHeight = 850 Me.PageWidth = 1100 Me.StyleSheet.AddRange(New DevExpress.XtraReports.UI.XRControlStyle() {Me.Title, Me.DetailCaption1, Me.DetailData1, Me.GroupCaption2, Me.GroupData2, Me.DetailCaption2, Me.DetailData2, Me.GroupFooterBackground3, Me.DetailData3_Odd, Me.PageInfo}) - Me.Version = "19.2" + Me.Version = "21.2" CType(Me.XrTable2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.XrTable1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.table3, System.ComponentModel.ISupportInitialize).EndInit() @@ -768,8 +770,6 @@ Partial Public Class OrderReport Friend WithEvents tableCell44 As DevExpress.XtraReports.UI.XRTableCell Friend WithEvents tableCell45 As DevExpress.XtraReports.UI.XRTableCell Friend WithEvents tableCell46 As DevExpress.XtraReports.UI.XRTableCell - Friend WithEvents GroupFooter1 As DevExpress.XtraReports.UI.GroupFooterBand - Friend WithEvents label2 As DevExpress.XtraReports.UI.XRLabel Friend WithEvents XrLabel1 As DevExpress.XtraReports.UI.XRLabel Friend WithEvents XrTable1 As DevExpress.XtraReports.UI.XRTable Friend WithEvents XrTableRow1 As DevExpress.XtraReports.UI.XRTableRow @@ -800,4 +800,6 @@ Partial Public Class OrderReport Friend WithEvents XrTableCell16 As DevExpress.XtraReports.UI.XRTableCell Friend WithEvents XrTableCell17 As DevExpress.XtraReports.UI.XRTableCell Friend WithEvents XrTableCell18 As DevExpress.XtraReports.UI.XRTableCell + Friend WithEvents GroupFooter1 As DevExpress.XtraReports.UI.GroupFooterBand + Friend WithEvents label2 As DevExpress.XtraReports.UI.XRLabel End Class diff --git a/MultiTool.Form/Resources/exporttopdf.svg b/MultiTool.Form/Resources/exporttopdf.svg new file mode 100644 index 0000000..7f8ebc6 --- /dev/null +++ b/MultiTool.Form/Resources/exporttopdf.svg @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/MultiTool.Form/Resources/insertpagenumber.svg b/MultiTool.Form/Resources/insertpagenumber.svg new file mode 100644 index 0000000..2a2d23e --- /dev/null +++ b/MultiTool.Form/Resources/insertpagenumber.svg @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/MultiTool.Form/Resources/open27.svg b/MultiTool.Form/Resources/open27.svg new file mode 100644 index 0000000..04ab349 --- /dev/null +++ b/MultiTool.Form/Resources/open27.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/MultiTool.Form/Resources/open3.svg b/MultiTool.Form/Resources/open3.svg new file mode 100644 index 0000000..2841e98 --- /dev/null +++ b/MultiTool.Form/Resources/open3.svg @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/MultiTool.Form/Resources/squarified1.svg b/MultiTool.Form/Resources/squarified1.svg new file mode 100644 index 0000000..c6b6e11 --- /dev/null +++ b/MultiTool.Form/Resources/squarified1.svg @@ -0,0 +1,19 @@ + + + + + + + + + + \ No newline at end of file diff --git a/MultiTool.Form/Resources/up1.svg b/MultiTool.Form/Resources/up1.svg new file mode 100644 index 0000000..d31bfcf --- /dev/null +++ b/MultiTool.Form/Resources/up1.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/MultiTool.Form/frmExportMain.Designer.vb b/MultiTool.Form/frmExportMain.Designer.vb index e63d1df..3824f5e 100644 --- a/MultiTool.Form/frmExportMain.Designer.vb +++ b/MultiTool.Form/frmExportMain.Designer.vb @@ -28,9 +28,14 @@ Partial Class frmExportMain Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() Me.txtResults = New DevExpress.XtraBars.BarStaticItem() Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() + Me.btnOpenInputDirectory = New DevExpress.XtraBars.BarButtonItem() + Me.btnOpenOutputDirectory = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.GridControlDocuments = New DevExpress.XtraGrid.GridControl() @@ -76,10 +81,6 @@ Partial Class frmExportMain Me.colName2 = New DevExpress.XtraGrid.Columns.GridColumn() Me.colId2 = New DevExpress.XtraGrid.Columns.GridColumn() Me.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, GetType(Global.MultiTool.Form.frmWaitForm), True, True) - Me.RibbonPage3 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.btnOpenInputDirectory = New DevExpress.XtraBars.BarButtonItem() - Me.btnOpenOutputDirectory = New DevExpress.XtraBars.BarButtonItem() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridControlDocuments, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridViewDocuments, System.ComponentModel.ISupportInitialize).BeginInit() @@ -118,13 +119,16 @@ 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.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.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 8 + Me.RibbonControl1.MaxItemId = 9 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage3}) + Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] + Me.RibbonControl1.ShowToolbarCustomizeItem = False Me.RibbonControl1.Size = New System.Drawing.Size(1107, 158) Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 + Me.RibbonControl1.Toolbar.ShowCustomizeItem = False ' 'BarButtonItem1 ' @@ -137,7 +141,9 @@ Partial Class frmExportMain ' Me.txtResults.Caption = "Keine Ergebnisse" Me.txtResults.Id = 4 + Me.txtResults.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.insertpagenumber Me.txtResults.Name = "txtResults" + Me.txtResults.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph ' 'BarButtonItem2 ' @@ -146,17 +152,38 @@ Partial Class frmExportMain Me.BarButtonItem2.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.actions_send5 Me.BarButtonItem2.Name = "BarButtonItem2" ' + 'btnOpenInputDirectory + ' + Me.btnOpenInputDirectory.Caption = "Eingangsverzeichnis öffnen" + Me.btnOpenInputDirectory.Id = 6 + Me.btnOpenInputDirectory.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.open27 + Me.btnOpenInputDirectory.Name = "btnOpenInputDirectory" + ' + 'btnOpenOutputDirectory + ' + Me.btnOpenOutputDirectory.Caption = "Ausgangsverzeichnis öffnen" + Me.btnOpenOutputDirectory.Id = 7 + Me.btnOpenOutputDirectory.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.up1 + Me.btnOpenOutputDirectory.Name = "btnOpenOutputDirectory" + ' + 'BarButtonItem3 + ' + Me.BarButtonItem3.Caption = "Vorlagenverzeichnis öffnen" + Me.BarButtonItem3.Id = 8 + Me.BarButtonItem3.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.open3 + Me.BarButtonItem3.Name = "BarButtonItem3" + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" + Me.RibbonPage1.Text = "Start" ' 'RibbonPageGroup1 ' Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1) Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "Start" + Me.RibbonPageGroup1.Text = "Suche" ' 'RibbonPageGroup2 ' @@ -165,6 +192,20 @@ Partial Class frmExportMain Me.RibbonPageGroup2.Name = "RibbonPageGroup2" Me.RibbonPageGroup2.Text = "Export" ' + 'RibbonPage3 + ' + Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) + Me.RibbonPage3.Name = "RibbonPage3" + Me.RibbonPage3.Text = "Erweitert" + ' + 'RibbonPageGroup3 + ' + Me.RibbonPageGroup3.ItemLinks.Add(Me.btnOpenInputDirectory) + Me.RibbonPageGroup3.ItemLinks.Add(Me.btnOpenOutputDirectory) + Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem3) + Me.RibbonPageGroup3.Name = "RibbonPageGroup3" + Me.RibbonPageGroup3.Text = "Verzeichnisse" + ' 'RibbonStatusBar1 ' Me.RibbonStatusBar1.ItemLinks.Add(Me.txtResults) @@ -607,31 +648,6 @@ Partial Class frmExportMain ' Me.SplashScreenManager.ClosingDelay = 500 ' - 'RibbonPage3 - ' - Me.RibbonPage3.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3}) - Me.RibbonPage3.Name = "RibbonPage3" - Me.RibbonPage3.Text = "RibbonPage3" - ' - 'RibbonPageGroup3 - ' - Me.RibbonPageGroup3.ItemLinks.Add(Me.btnOpenInputDirectory) - Me.RibbonPageGroup3.ItemLinks.Add(Me.btnOpenOutputDirectory) - Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "RibbonPageGroup3" - ' - 'btnOpenInputDirectory - ' - Me.btnOpenInputDirectory.Caption = "BarButtonItem3" - Me.btnOpenInputDirectory.Id = 6 - Me.btnOpenInputDirectory.Name = "btnOpenInputDirectory" - ' - 'btnOpenOutputDirectory - ' - Me.btnOpenOutputDirectory.Caption = "BarButtonItem4" - Me.btnOpenOutputDirectory.Id = 7 - Me.btnOpenOutputDirectory.Name = "btnOpenOutputDirectory" - ' 'frmExportMain ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -640,6 +656,7 @@ Partial Class frmExportMain Me.Controls.Add(Me.SplitContainerControl1) Me.Controls.Add(Me.RibbonStatusBar1) Me.Controls.Add(Me.RibbonControl1) + Me.IconOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.squarified1 Me.KeyPreview = True Me.Name = "frmExportMain" Me.Ribbon = Me.RibbonControl1 @@ -740,4 +757,5 @@ Partial Class frmExportMain Friend WithEvents btnOpenOutputDirectory As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPage3 As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem End Class diff --git a/MultiTool.Form/frmExportMain.vb b/MultiTool.Form/frmExportMain.vb index 99fa3ce..a7163ed 100644 --- a/MultiTool.Form/frmExportMain.vb +++ b/MultiTool.Form/frmExportMain.vb @@ -159,7 +159,13 @@ Public Class frmExportMain Dim oDocument As Document = GridViewDocuments.GetRow(GridViewDocuments.FocusedRowHandle) Dim oMandator As Mandator = lookupMandator.EditValue - Await WebService.ExportDocumentFromWinline(oDocument, CurrentTemplate, oMandator) + Dim oExportResult = Await WebService.ExportDocumentFromWinline(oDocument, CurrentTemplate, oMandator) + + If oExportResult = True Then + 'TODO: Execute the FinalSql before exiting + 'TODO: Replace a few numbers like account numbers back to GLNs + MsgBox("Datei wurde ergfolgreich exportiert!", MsgBoxStyle.Information, Text) + End If Catch ex As Exception FormHelper.ShowError(ex, "Exportieren der Daten") @@ -177,4 +183,8 @@ Public Class frmExportMain Private Sub btnOpenOutputDirectory_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnOpenOutputDirectory.ItemClick FormHelper.TryOpenDirectory(CurrentTemplate.OutputDirectory, My.Resources.frmImportMainExtra.Ausgabeverzeichnis) End Sub + + Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick + FormHelper.TryOpenDirectory(My.GeneralConfiguration.TemplateDirectory, My.Resources.frmImportMainExtra.Vorlagenverzeichnis) + End Sub End Class \ No newline at end of file diff --git a/MultiTool.Form/frmImportMain.Designer.vb b/MultiTool.Form/frmImportMain.Designer.vb index 6620e9a..16db233 100644 --- a/MultiTool.Form/frmImportMain.Designer.vb +++ b/MultiTool.Form/frmImportMain.Designer.vb @@ -38,7 +38,6 @@ Partial Class frmImportMain Me.cmbMandators = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox() Me.BandedGridColumn1 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn() Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.txtVersion = New DevExpress.XtraBars.BarStaticItem() Me.txtFilesLoaded = New DevExpress.XtraBars.BarStaticItem() Me.btnLoadFiles = New DevExpress.XtraBars.BarButtonItem() Me.btnTransferFile = New DevExpress.XtraBars.BarButtonItem() @@ -53,12 +52,12 @@ Partial Class frmImportMain Me.btnOpenConfigDirectory = New DevExpress.XtraBars.BarButtonItem() Me.txtCurrentFile = New DevExpress.XtraBars.BarStaticItem() Me.btnConfig = New DevExpress.XtraBars.BarButtonItem() - Me.txtCulture = New DevExpress.XtraBars.BarStaticItem() Me.btnRemoveRow = New DevExpress.XtraBars.BarButtonItem() Me.BarWorkspaceMenuItem1 = New DevExpress.XtraBars.BarWorkspaceMenuItem() Me.WorkspaceManager1 = New DevExpress.Utils.WorkspaceManager(Me.components) Me.btnTestTransferFile = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() + Me.btnDebugExportReport = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() @@ -238,9 +237,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.txtVersion, 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.txtCulture, Me.btnRemoveRow, Me.BarWorkspaceMenuItem1, Me.btnTestTransferFile, Me.BarButtonItem1}) + 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.BarWorkspaceMenuItem1, Me.btnTestTransferFile, Me.BarButtonItem1, Me.btnDebugExportReport}) resources.ApplyResources(Me.RibbonControl, "RibbonControl") - Me.RibbonControl.MaxItemId = 33 + Me.RibbonControl.MaxItemId = 34 Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.PageHeaderItemLinks.Add(Me.BarWorkspaceMenuItem1) Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1, Me.RibbonPage2}) @@ -250,16 +249,6 @@ Partial Class frmImportMain Me.RibbonControl.StatusBar = Me.RibbonStatusBar Me.RibbonControl.Toolbar.ShowCustomizeItem = False ' - 'txtVersion - ' - Me.txtVersion.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right - resources.ApplyResources(Me.txtVersion, "txtVersion") - Me.txtVersion.Id = 1 - Me.txtVersion.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.bo_product - Me.txtVersion.Name = "txtVersion" - Me.txtVersion.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph - Me.txtVersion.Tag = "Version {0}" - ' 'txtFilesLoaded ' resources.ApplyResources(Me.txtFilesLoaded, "txtFilesLoaded") @@ -366,16 +355,6 @@ Partial Class frmImportMain Me.btnConfig.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.bo_unknown Me.btnConfig.Name = "btnConfig" ' - 'txtCulture - ' - Me.txtCulture.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right - resources.ApplyResources(Me.txtCulture, "txtCulture") - Me.txtCulture.Id = 26 - Me.txtCulture.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.followupall - Me.txtCulture.Name = "txtCulture" - Me.txtCulture.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph - Me.txtCulture.Tag = "Culture: {0}" - ' 'btnRemoveRow ' resources.ApplyResources(Me.btnRemoveRow, "btnRemoveRow") @@ -410,6 +389,13 @@ Partial Class frmImportMain Me.BarButtonItem1.Id = 30 Me.BarButtonItem1.Name = "BarButtonItem1" ' + 'btnDebugExportReport + ' + resources.ApplyResources(Me.btnDebugExportReport, "btnDebugExportReport") + Me.btnDebugExportReport.Id = 33 + Me.btnDebugExportReport.ImageOptions.SvgImage = Global.MultiTool.Form.My.Resources.Resources.exporttopdf + Me.btnDebugExportReport.Name = "btnDebugExportReport" + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup4, Me.RibbonPageGroup3, Me.RibbonPageGroup7}) @@ -461,6 +447,7 @@ Partial Class frmImportMain 'RibbonPageGroup2 ' Me.RibbonPageGroup2.ItemLinks.Add(Me.btnShowXml) + Me.RibbonPageGroup2.ItemLinks.Add(Me.btnDebugExportReport) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" resources.ApplyResources(Me.RibbonPageGroup2, "RibbonPageGroup2") ' @@ -477,8 +464,6 @@ Partial Class frmImportMain ' 'RibbonStatusBar ' - Me.RibbonStatusBar.ItemLinks.Add(Me.txtCulture) - Me.RibbonStatusBar.ItemLinks.Add(Me.txtVersion) Me.RibbonStatusBar.ItemLinks.Add(Me.txtFilesLoaded) Me.RibbonStatusBar.ItemLinks.Add(Me.txtCurrentFile) resources.ApplyResources(Me.RibbonStatusBar, "RibbonStatusBar") @@ -698,7 +683,6 @@ Partial Class frmImportMain Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar Friend WithEvents GridControlFiles As DevExpress.XtraGrid.GridControl - Friend WithEvents txtVersion As DevExpress.XtraBars.BarStaticItem Friend WithEvents txtFilesLoaded As DevExpress.XtraBars.BarStaticItem Friend WithEvents btnLoadFiles As DevExpress.XtraBars.BarButtonItem Friend WithEvents SplitContainerGrids As DevExpress.XtraEditors.SplitContainerControl @@ -737,7 +721,6 @@ Partial Class frmImportMain Friend WithEvents btnConfig As DevExpress.XtraBars.BarButtonItem Friend WithEvents RepositoryItemProgressBar1 As Repository.RepositoryItemProgressBar Friend WithEvents SplashScreenManager As DevExpress.XtraSplashScreen.SplashScreenManager - Friend WithEvents txtCulture As DevExpress.XtraBars.BarStaticItem Friend WithEvents btnRemoveRow As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageGroup7 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl @@ -756,4 +739,5 @@ Partial Class frmImportMain Friend WithEvents GridBand2 As DevExpress.XtraGrid.Views.BandedGrid.GridBand Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents btnDebugExportReport As DevExpress.XtraBars.BarButtonItem End Class diff --git a/MultiTool.Form/frmImportMain.resx b/MultiTool.Form/frmImportMain.resx index ffc5080..7e734e7 100644 --- a/MultiTool.Form/frmImportMain.resx +++ b/MultiTool.Form/frmImportMain.resx @@ -202,9 +202,6 @@ True - - Version 1.0.0.0 - 0 Dateien geladen @@ -247,9 +244,6 @@ Konfiguration - - Culture xx-xx - Zeile löschen @@ -368,12 +362,6 @@ DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - txtVersion - - - DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - txtFilesLoaded @@ -458,12 +446,6 @@ DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - txtCulture - - - DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - btnRemoveRow @@ -494,6 +476,12 @@ DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + btnDebugExportReport + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + RibbonPage1 @@ -620,6 +608,9 @@ BarButtonItem1 + + Bericht Exportieren + 0, 0 diff --git a/MultiTool.Form/frmImportMain.vb b/MultiTool.Form/frmImportMain.vb index a3a4214..1c62d59 100644 --- a/MultiTool.Form/frmImportMain.vb +++ b/MultiTool.Form/frmImportMain.vb @@ -410,23 +410,28 @@ Public Class frmImportMain End If ' Transfer to winline - Await WebService.TransferDocumentToWinline(oDocument, CurrentTemplate, lookupMandator.EditValue) + Dim oTransferResult = Await WebService.TransferDocumentToWinline(oDocument, CurrentTemplate, lookupMandator.EditValue) - WebService.RaiseWebServiceProgress("Bericht erzeugen") + If oTransferResult = True Then - ' Generate the report - Dim oReport = ReportGenerator.GenerateReport(oDocument) - Dim oFilePath = ReportGenerator.GetReportFilePath(oDocument, CurrentTemplate) + WebService.RaiseWebServiceProgress("Bericht erzeugen") - WebService.RaiseWebServiceProgress("Bericht exportieren") + ' Generate the report + Dim oReport = ReportGenerator.GenerateReport(oDocument) + Dim oFilePath = ReportGenerator.GetReportFilePath(oDocument, CurrentTemplate) - ' Export it to pdf - oReport.ExportToPdf(oFilePath) + WebService.RaiseWebServiceProgress("Bericht exportieren") - ' Mark Document as Imported - oDocument.Imported = True + ' Export it to pdf + oReport.ExportToPdf(oFilePath) - MsgBox(My.Resources.frmImportMainExtra.Datei_erfolgreich_in_die_WinLine_übertragen, MsgBoxStyle.Information, Text) + WebService.RaiseWebServiceProgress("Datei archivieren") + + ' Mark Document as Imported, will be moved on Form Close + oDocument.Imported = True + End If + + 'MsgBox(My.Resources.frmImportMainExtra.Datei_erfolgreich_in_die_WinLine_übertragen, MsgBoxStyle.Information, Text) Catch ex As HttpRequestException FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Übertragung_zur_WinLine, My.Resources.frmImportMainExtra.Die_Verbindung_zum_WinLine_Server_ist_fehlgeschlagen) @@ -616,4 +621,16 @@ Public Class frmImportMain SplashScreenManager.CloseWaitForm() End Try End Sub + + Private Sub btnDebugExportReport_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnDebugExportReport.ItemClick + ' Get the document + Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle) + + ' Generate the report + Dim oReport = ReportGenerator.GenerateReport(oDocument) + Dim oFilePath = ReportGenerator.GetReportFilePath(oDocument, CurrentTemplate) + + ' Export it to pdf + oReport.ExportToPdf(oFilePath) + End Sub End Class \ No newline at end of file diff --git a/MultiTool.Shared/Documents/DocumentCleaner.vb b/MultiTool.Shared/Documents/DocumentCleaner.vb index 0f4a31d..e87f2e4 100644 --- a/MultiTool.Shared/Documents/DocumentCleaner.vb +++ b/MultiTool.Shared/Documents/DocumentCleaner.vb @@ -17,7 +17,7 @@ Namespace Documents Public Function CleanImportedDocuments(pDocuments As List(Of Document)) As Boolean Dim oResult = True - Dim oOutputDirectory = FileEx.GetDateDirectory(Template.OutputXmlFileDirectory) + Dim oOutputDirectory = FileEx.CreateDateDirectory(Template.ArchiveDirectory) Dim oImportedDocuments = pDocuments. Where(Function(doc) doc.Imported = True). ToList() diff --git a/MultiTool.Shared/MultiTool.Shared.vbproj b/MultiTool.Shared/MultiTool.Shared.vbproj index de51d40..bd4e5bd 100644 --- a/MultiTool.Shared/MultiTool.Shared.vbproj +++ b/MultiTool.Shared/MultiTool.Shared.vbproj @@ -127,6 +127,7 @@ Settings.settings True + diff --git a/MultiTool.Shared/Patterns.vb b/MultiTool.Shared/Patterns.vb new file mode 100644 index 0000000..3385dae --- /dev/null +++ b/MultiTool.Shared/Patterns.vb @@ -0,0 +1,66 @@ +Imports System.Text.RegularExpressions +Imports DigitalData.Modules.Logging +Imports MultiTool.Shared.Documents +Imports MultiTool.Shared.Templates + +Public Class Patterns + Inherits BaseClass + + Private GeneralConfig As GeneralConfig + + Public Sub New(pLogConfig As LogConfig, pGeneralConfig As GeneralConfig) + MyBase.New(pLogConfig) + GeneralConfig = pGeneralConfig + End Sub + + Public Function Replace(pDocument As Document, pRow As DocumentRow, oString As String) + Dim oRegex = New Regex("{#(\w+)#([\w\s_-]+)}+") + Dim oMatches As MatchCollection = oRegex.Matches(oString) + + 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 "FIELD" + Dim oFieldName = oPlaceholderValue + Dim oTargetField = pRow.Fields. + Where(Function(field) field.Key = oFieldName). + SingleOrDefault() + + oString = oString.Replace(oPlaceholderString, oTargetField.Value.Final) + + Case "CONST" + Dim oValue = "" + + Select Case oMatch.Groups.Item(2).Value.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 Else + oValue = "" + + End Select + + If oValue <> "" Then + oString = oString.Replace(oPlaceholderValue, oValue) + End If + End Select + Next + + Return oString + End Function +End Class diff --git a/MultiTool.Shared/Report/ReportGenerator.vb b/MultiTool.Shared/Report/ReportGenerator.vb index 052730a..9dd1208 100644 --- a/MultiTool.Shared/Report/ReportGenerator.vb +++ b/MultiTool.Shared/Report/ReportGenerator.vb @@ -13,6 +13,7 @@ Public Class ReportGenerator(Of TReport As IReport) Private ReadOnly Database As MSSQLServer Private ReadOnly TemplateConfig As TemplateConfig Private ReadOnly GeneralConfig As GeneralConfig + Private ReadOnly Patterns As Patterns Private ReadOnly FileEx As DigitalData.Modules.Filesystem.File Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pTemplateConfig As TemplateConfig, pGeneralConfig As GeneralConfig) @@ -20,11 +21,12 @@ Public Class ReportGenerator(Of TReport As IReport) Database = pDatabase GeneralConfig = pGeneralConfig TemplateConfig = pTemplateConfig + Patterns = New Patterns(pLogConfig, pGeneralConfig) FileEx = New DigitalData.Modules.Filesystem.File(LogConfig) End Sub Public Function GetReportFilePath(pDocument As Document, pTemplate As Template) - Dim oFinalDirectory = FileEx.GetDateDirectory(pTemplate.OutputReportDirectory) + Dim oFinalDirectory = FileEx.CreateDateDirectory(pTemplate.OutputReportDirectory) Dim oFileName = FileEx.GetFilenameWithSuffix(IO.Path.GetFileNameWithoutExtension(pDocument.File.Name), FileEx.GetDateTimeString, "pdf") Dim oFilePath As String = IO.Path.Combine(oFinalDirectory, oFileName) Return oFilePath @@ -34,7 +36,7 @@ Public Class ReportGenerator(Of TReport As IReport) Dim oMapperConfig As New Mapper(LogConfig) Dim oHeadMapper = oMapperConfig.GetMapper(Of ReportHead)(New Dictionary(Of String, String) From { - {"Fakt_Kontonummer[External]", "Text1"}, + {"Fakt_Kontoname", "Text1"}, {"Fakt_Kontonummer[Final]", "Text2"}, {"Auftrags-Bestellnummer", "Text3"}, {"Datum_Auftrag-Bestellung", "Text4"}, @@ -44,6 +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"}, + {"Bezeichnung", "Text3"}, {"Menge_bestellt", "Text4"}, {"Menge_geliefert", "Text5"}, {"Colli", "Text6"}, @@ -112,35 +115,8 @@ Public Class ReportGenerator(Of TReport As IReport) Where(Function(field) field.Key = oSQLConfigItem.Name). SingleOrDefault() - Dim oRegex = New Regex("{#(\w+)#([\w\s_-]+)}+") Dim oSQL = oSQLConfigItem.Function.Params - Dim oMatches As MatchCollection = oRegex.Matches(oSQL) - - 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 "FIELD" - Dim oFieldName = oPlaceholderValue - Dim oTargetField = oRow.Fields. - Where(Function(field) field.Key = oFieldName). - SingleOrDefault() - - oSQL = oSQL.Replace(oPlaceholderString, oTargetField.Value.Final) - - Case "CONST" - Select Case oMatch.Groups.Item(2).Value.ToUpper - Case "MESOYEAR" - oSQL = oSQL.Replace(oPlaceholderString, GeneralConfig.GetWinLineYear()) - - Case "MESOCOMP" - oSQL = oSQL.Replace(oPlaceholderString, pDocument.Mandator.Id) - - End Select - End Select - Next + oSQL = Patterns.Replace(pDocument, oRow, oSQL) Dim oValue = Database.GetScalarValue(oSQL) diff --git a/MultiTool.Shared/Winline/WebServiceData.vb b/MultiTool.Shared/Winline/WebServiceData.vb index 13ad825..b3d179c 100644 --- a/MultiTool.Shared/Winline/WebServiceData.vb +++ b/MultiTool.Shared/Winline/WebServiceData.vb @@ -31,6 +31,7 @@ Namespace Winline RaiseEvent WebServiceProgress(Me, pMessage) End Sub +#Region "Import" 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 @@ -43,16 +44,18 @@ Namespace Winline Dim oFileName = FileEx.GetFilenameWithSuffix(oBaseFileName, "Request", "xml") ' --- Get and create path for request/response files - Dim oOutputDirectory = FileEx.GetDateDirectory(pTemplate.OutputWebserviceDirectory) - - ' Relative Path for Webservice Call - Dim oImportRelativeFilePath = IO.Path.Combine(FileEx.GetDateDirectory(oWS.ImportRelativePath), oFileName) + Dim oOutputDirectory = FileEx.CreateDateDirectory(pTemplate.OutputWebserviceDirectory) + Dim oOutputFilePath = IO.Path.Combine(oOutputDirectory, oFileName) - ' Absolute Path to copy Request file - Dim oImportAbsoluteFilePath = IO.Path.Combine(oWS.ImportBasePath, FileEx.GetDateDirectory(oWS.ImportRelativePath), oFileName) + ' Generate absolute path to copy xml file to + Dim oAbsolutePath = IO.Path.Combine(oWS.ImportBasePath, oWS.ImportRelativePath) + oAbsolutePath = FileEx.CreateDateDirectory(oAbsolutePath) + Dim oImportAbsoluteFilePath = IO.Path.Combine(oAbsolutePath, oFileName) - ' Output path - Dim oOutputFilePath = IO.Path.Combine(oOutputDirectory, oFileName) + ' Generate relative path to supply to winline + Dim oRelativePath = IO.Path.Combine(oWS.ImportRelativePath) + oRelativePath = FileEx.GetDateDirectory(oRelativePath) + Dim oImportRelativeFilePath = IO.Path.Combine(oRelativePath, oFileName) RaiseEvent WebServiceProgress(Me, "Dateien schreiben") @@ -105,6 +108,98 @@ Namespace Winline End Try End Function + Private Async Function HandleImportResponse(pResponse As HttpResponseMessage, pTemplate As Template, 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") + + Select Case oContentType + Case "text/xml" + Dim oOutputDirectory = FileEx.CreateDateDirectory(pTemplate.OutputWebserviceDirectory) + WriteResponseFile(oOutputDirectory, pBaseFileNAme, oResponseBody, "xml") + + Dim oBytes As Byte() = Encoding.UTF8.GetBytes(oResponseBody) + Using oStream As New IO.MemoryStream(oBytes) + Dim oResponseObject As Templates.Entities.MESOWebServiceResult = oSerializer.Deserialize(oStream) + Dim oErrorStrings As New List(Of String) + + If oResponseObject.ResultDetails IsNot Nothing Then + 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) + Else + Logger.Warn("ErrorCode: [{0}]", oDetails.ErrorCode) + Logger.Warn("ErrorText: [{0}]", oDetails.ErrorText) + oErrorStrings.Add($"[{oDetails.ErrorCode}] {oDetails.ErrorText}") + End If + Next + End If + + If oResponseObject.OverallSuccess = False Then + Dim oMessage = $"Request to Webservice was unsuccessful:{vbNewLine}{vbNewLine}{String.Join(vbNewLine, oErrorStrings.ToArray)}" + + Throw New ApplicationException(oMessage) + End If + End Using + + Case "text/html" + WriteResponseFile(pTemplate.OutputWebserviceDirectory, pBaseFileNAme, oResponseBody, "txt") + + Throw New ApplicationException(oResponseBody) + + Case Else + Throw New ApplicationException(oResponseBody) + End Select + End Function + + Private Function GetBytesFromDocument(pDocument As Documents.Document) As Byte() + Using oStream As New IO.MemoryStream() + Dim w = XmlWriter.Create(oStream) + + w.WriteStartDocument() + w.WriteStartElement("MESOWebService") + w.WriteAttributeString("Template", pDocument.TemplateName) + w.WriteAttributeString("TemplateType", pDocument.TemplateType) + w.WriteAttributeString("option", pDocument.Option) + w.WriteAttributeString("printVoucher", pDocument.PrintVoucher) + + pDocument.Rows.Sort() + + For Each oRow In pDocument.Rows + w.WriteStartElement(oRow.Name) + + For Each oField As KeyValuePair(Of String, DocumentRow.FieldValue) In oRow.Fields + If oField.Value.Final = String.Empty Then + Continue For + End If + + If oField.Value.IsVirtual Then + Continue For + End If + + w.WriteStartElement(oField.Key) + w.WriteValue(oField.Value.Final) + w.WriteEndElement() ' Field + Next + + w.WriteEndElement() ' Row + Next + w.WriteEndElement() ' MESOWebService + w.WriteEndDocument() ' Document + w.Close() + + Return oStream.ToArray() + End Using + End Function + +#End Region + +#Region "Export" Async Function ExportDocumentFromWinline(pDocument As Entities.Document, pTemplate As Template, pMandator As Mandator, Optional pIsTest As Boolean = False) As Task(Of Boolean) Dim oWS = Config @@ -181,54 +276,7 @@ Namespace Winline Throw New ApplicationException(oResponseBody) End Select End Function - - Private Async Function HandleImportResponse(pResponse As HttpResponseMessage, pTemplate As Template, 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") - - Select Case oContentType - Case "text/xml" - WriteResponseFile(pTemplate.OutputWebserviceDirectory, pBaseFileNAme, oResponseBody, "xml") - - Dim oBytes As Byte() = Encoding.UTF8.GetBytes(oResponseBody) - Using oStream As New IO.MemoryStream(oBytes) - Dim oResponseObject As Templates.Entities.MESOWebServiceResult = oSerializer.Deserialize(oStream) - Dim oErrorStrings As New List(Of String) - - If oResponseObject.ResultDetails IsNot Nothing Then - 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) - Else - Logger.Warn("ErrorCode: [{0}]", oDetails.ErrorCode) - Logger.Warn("ErrorText: [{0}]", oDetails.ErrorText) - oErrorStrings.Add($"[{oDetails.ErrorCode}] {oDetails.ErrorText}") - End If - Next - End If - - If oResponseObject.OverallSuccess = False Then - Dim oMessage = $"Request to Webservice was unsuccessful:{vbNewLine}{vbNewLine}{String.Join(vbNewLine, oErrorStrings.ToArray)}" - - Throw New ApplicationException(oMessage) - End If - End Using - - Case "text/html" - WriteResponseFile(pTemplate.OutputWebserviceDirectory, pBaseFileNAme, oResponseBody, "txt") - - Throw New ApplicationException(oResponseBody) - - Case Else - Throw New ApplicationException(oResponseBody) - End Select - End Function +#End Region Private Function WriteResponseFile(pPath As String, pBaseFileName As String, pResponseBody As String, pExtension As String) Try @@ -242,46 +290,6 @@ Namespace Winline Return False End Try End Function - - Private Function GetBytesFromDocument(pDocument As Documents.Document) As Byte() - Using oStream As New IO.MemoryStream() - Dim w = XmlWriter.Create(oStream) - - w.WriteStartDocument() - w.WriteStartElement("MESOWebService") - w.WriteAttributeString("Template", pDocument.TemplateName) - w.WriteAttributeString("TemplateType", pDocument.TemplateType) - w.WriteAttributeString("option", pDocument.Option) - w.WriteAttributeString("printVoucher", pDocument.PrintVoucher) - - pDocument.Rows.Sort() - - For Each oRow In pDocument.Rows - w.WriteStartElement(oRow.Name) - - For Each oField As KeyValuePair(Of String, DocumentRow.FieldValue) In oRow.Fields - If oField.Value.Final = String.Empty Then - Continue For - End If - - If oField.Value.IsVirtual Then - Continue For - End If - - w.WriteStartElement(oField.Key) - w.WriteValue(oField.Value.Final) - w.WriteEndElement() ' Field - Next - - w.WriteEndElement() ' Row - Next - w.WriteEndElement() ' MESOWebService - w.WriteEndDocument() ' Document - w.Close() - - Return oStream.ToArray() - End Using - End Function End Class End Namespace \ No newline at end of file diff --git a/MultiTool.Shared/Winline/WinlineData.vb b/MultiTool.Shared/Winline/WinlineData.vb index 47ffaf7..ff57831 100644 --- a/MultiTool.Shared/Winline/WinlineData.vb +++ b/MultiTool.Shared/Winline/WinlineData.vb @@ -543,6 +543,16 @@ Namespace Winline End Try End Function + Public Async Function ExecuteFinalSQL(pDocument As Document, pTemplate As Template) As Task(Of Boolean) + Try + Dim oSql As String = pTemplate.FinalSQL + + + Catch ex As Exception + + End Try + End Function + Private Function GetDocumentFromDataRow(pDataRow As DataRow) As Document Dim oAccountNumber = pDataRow.Item("ACCOUNT_NUMBER") Dim oRunningNumber As String = pDataRow.Item("RUNNING_NUMBER")