Imports System.IO Imports System.Net.Http Imports DevExpress.Utils.Behaviors.Common Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraReports.UI Imports DigitalData.GUIs.Common Imports DigitalData.Modules.Config Imports DigitalData.Modules.Database Imports DigitalData.Modules.Logging Imports MultiTool.Shared Imports MultiTool.Shared.Documents Imports MultiTool.Shared.Templates Imports MultiTool.Shared.Winline Imports MultiTool.Shared.Winline.Entities Imports MultiTool.Shared.Constants Imports MultiTool.Shared.Exceptions Imports Document = MultiTool.Shared.Documents.Document Public Class frmImportMain Public LogConfig As LogConfig Public ConfigManager As ConfigManager(Of Config) Private Logger As Logger Private Database As MSSQLServer Private Winline As WinlineData Private FileEx As DigitalData.Modules.Filesystem.File Private WebService As WebServiceData Private DocumentLoader As Documents.DocumentLoader Private DocumentCleaner As Documents.DocumentCleaner Private ReportGenerator As ReportGenerator(Of OrderReport) Private FormHelper As FormHelper Private Grids As List(Of GridControl) Private GridLoader As GridLoader Private GridBuilder As GridBuilder Private ReadOnly CurrentTemplate As Template = Nothing ' Runtime variables Private CurrentGrid As GridControl = Nothing Private CurrentDocument As Document = Nothing Public Sub New(pLogConfig As LogConfig, pConfigManager As ConfigManager(Of Config), pTemplate As Template) InitializeComponent() LogConfig = pLogConfig ConfigManager = pConfigManager CurrentTemplate = pTemplate BehaviorManager.Attach(Of PersistenceBehavior)(Me, AddressOf LoadPersistenceSettings) End Sub Protected Overrides Sub OnLoad(e As EventArgs) GridControlFiles.ForceInitialize() MyBase.OnLoad(e) End Sub Private Sub LoadPersistenceSettings(pBehaviour As PersistenceBehavior) pBehaviour.Properties.StoreChildLayouts = DevExpress.Utils.DefaultBoolean.True pBehaviour.Properties.Storage = Storage.File pBehaviour.Properties.Path = Application.UserAppDataPath End Sub Private Sub frmImportMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try Logger = LogConfig.GetLogger() FormHelper = New FormHelper(LogConfig, Me) ' Initialize Database Dim oConnectionString = MSSQLServer.DecryptConnectionString(ConfigManager.Config.ConnectionString) Database = New MSSQLServer(LogConfig, oConnectionString) GridBuilder = New GridBuilder(GridViewFiles) GridBuilder.WithDefaults.WithReadOnlyOptions.WithClipboardHandler() GridViewFiles.OptionsView.ShowAutoFilterRow = False Winline = My.Winline FileEx = New DigitalData.Modules.Filesystem.File(LogConfig) WebService = New WebServiceData(LogConfig, My.GeneralConfiguration.Webservice, My.GeneralConfiguration) AddHandler WebService.WebServiceProgress, AddressOf WebService_Progress Catch ex As Exception FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Initialisieren_der_Anwendungs_Daten) End Try 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 btnLoadFiles.Enabled = False SplashScreenManager.ShowWaitForm() Try SplashScreenManager.SetWaitFormDescription(My.Resources.frmImportMainExtra.Lade_Oberfläche) lookupMandator.Properties.DataSource = Winline.Mandators lookupMandator.ForceInitialize() lookupMandator.Properties.View.BestFitColumns() DocumentLoader = New Documents.DocumentLoader(LogConfig, Winline, My.MappingConfiguration, My.TemplateConfiguration) DocumentCleaner = New Documents.DocumentCleaner(LogConfig, CurrentTemplate) GridLoader = New GridLoader(LogConfig) ReportGenerator = New ReportGenerator(Of OrderReport)(LogConfig, Database, My.TemplateConfiguration, My.GeneralConfiguration) SplashScreenManager.SetWaitFormDescription(My.Resources.frmImportMainExtra.Lade_Vorlagen) Grids = CreateGridsAndColumns(CurrentTemplate) For Each oGrid As GridControl In Grids AddHandler oGrid.GotFocus, AddressOf Grid_Focus Next Catch ex As Exception FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_der_Winline_Daten) Finally SplashScreenManager.CloseWaitForm() btnLoadFiles.Enabled = True End Try End Sub Private Sub frmImportMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing Try DocumentCleaner.CleanImportedDocuments(DocumentLoader.Files) Catch ex As Exception FormHelper.ShowError(ex, "Beenden der Anwendung") End Try End Sub Private Sub Grid_Focus(sender As GridControl, e As EventArgs) CurrentGrid = sender End Sub Private Function CreateGridsAndColumns(pTemplate As Templates.Template) As List(Of GridControl) Dim oGrids As New List(Of GridControl) Dim oTableCounter = 0 For Each oTable In pTemplate.Tables If oTableCounter = 0 Then Dim oGrid = GridLoader.GetGridFromElement(GridControl1, oTable) AddHandler oGrid.DoubleClick, AddressOf Grid_MouseDoubleClick AddHandler GridView1.CustomDrawCell, AddressOf GridView_CustomDrawCell oGrids.Add(oGrid) End If If oTableCounter = 1 Then Dim oGrid = GridLoader.GetGridFromElement(GridControl2, oTable) AddHandler oGrid.DoubleClick, AddressOf Grid_MouseDoubleClick AddHandler GridView2.CustomDrawCell, AddressOf GridView_CustomDrawCell oGrids.Add(oGrid) End If If oTableCounter = 2 Then Dim oGrid = GridLoader.GetGridFromElement(GridControl3, oTable) AddHandler oGrid.DoubleClick, AddressOf Grid_MouseDoubleClick AddHandler GridView3.CustomDrawCell, AddressOf GridView_CustomDrawCell oGrids.Add(oGrid) End If If oTableCounter = 3 Then Dim oGrid = GridLoader.GetGridFromElement(GridControl4, oTable) AddHandler oGrid.DoubleClick, AddressOf Grid_MouseDoubleClick AddHandler GridView4.CustomDrawCell, AddressOf GridView_CustomDrawCell oGrids.Add(oGrid) End If If oTableCounter > 3 Then MsgBox(My.Resources.frmImportMainExtra.Zur_Zeit_werden_nur_bis_zu_4_Tabellen_unterstützt_, MsgBoxStyle.Exclamation, Text) End If oTableCounter += 1 Next If oTableCounter < 3 Then SplitContainerGrids.PanelVisibility = DevExpress.XtraEditors.SplitPanelVisibility.Panel1 End If Return oGrids End Function Private Sub Grid_MouseDoubleClick(sender As Object, e As MouseEventArgs) Try Dim oGrid As GridControl = DirectCast(sender, GridControl) Dim oView As GridView = DirectCast(oGrid.FocusedView, GridView) Dim oHitInfo = oView.CalcHitInfo(e.Location) If Not oHitInfo.InDataRow Then Exit Sub End If Dim oRow As DataRow = oView.GetDataRow(oView.FocusedRowHandle) Dim oColumns = oView.Columns.Select(Function(c) c.FieldName).ToList() Dim oDocumentRow = CurrentDocument.Rows. Where(Function(r) r.Id.ToString = oRow.Item(COLUMN_GUID)). SingleOrDefault() Dim oTemplateTable = CurrentTemplate.Tables. Where(Function(t) t.Name = oGrid.Name). SingleOrDefault() Dim oForm As New frmRowEditor( LogConfig, oColumns, oDocumentRow, CurrentDocument.Mandator, Winline, oTemplateTable ) If oForm.ShowDialog() = DialogResult.OK Then Dim oModifiedRow = oForm.DocumentRow Dim oIndex = CurrentDocument.Rows.IndexOf(oModifiedRow) CurrentDocument.Rows.Item(oIndex) = oModifiedRow LoadDocument(CurrentDocument) ' Refresh Files to update Row color GridViewFiles.RefreshData() End If Catch ex As Exception FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_der_Detailzeilen) End Try End Sub Private Sub btnLoadFiles_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnLoadFiles.ItemClick Try SplashScreenManager.ShowWaitForm() SetDocumentButtonsEnabled(False) GridControlFiles.Enabled = False btnLoadFiles.Enabled = False SplitContainerGrids.Enabled = False AddHandler DocumentLoader.FileLoadComplete, Sub(_sender As Object, _e As Documents.DocumentLoader.FileLoadInfo) Dim oMessage = String.Format("Lade Dateien ({0}/{1})", _e.FilesLoaded, _e.FilesTotal) SplashScreenManager.SetWaitFormDescription(oMessage) End Sub If DocumentLoader.LoadFiles(CurrentTemplate, lookupMandator.EditValue) Then GridControlFiles.DataSource = Nothing GridControlFiles.DataSource = DocumentLoader.Files txtFilesLoaded.Caption = String.Format(My.Resources.frmImportMainExtra._0__Dateien_geladen, DocumentLoader.Files.Count) 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 SplitContainerGrids.Enabled = True btnLoadFiles.Enabled = True GridControlFiles.Enabled = True SetDocumentButtonsEnabled(True) SplashScreenManager.CloseWaitForm() End Try End Sub Private 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 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 If oResult = DialogResult.Yes Then Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle) Dim oNewDocument = 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) End Try End Sub Private Sub GridViewFiles_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles GridViewFiles.FocusedRowChanged Try SplitContainerMain.Panel2.Enabled = True Dim oDocument As Document = GridViewFiles.GetRow(e.FocusedRowHandle) If oDocument Is Nothing Then Exit Sub End If If oDocument.Mandator Is Nothing Then lookupMandator.EditValue = Nothing SplitContainerMain.Panel2.Enabled = False For Each oGrid In Grids oGrid.DataSource = Nothing Next 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.Exclamation, Text) Exit Sub End If lookupMandator.EditValue = oDocument.Mandator LoadDocument(oDocument) Catch ex As Exception FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Laden_des_Dokuments) End Try End Sub Private Sub LoadDocument(pDocument As Document) Try Dim oDatasources As New Dictionary(Of String, DataTable) ' Reset datasource so that all data will be refreshed For Each oGrid In Grids oGrid.DataSource = Nothing Next ' Create initial Datatable for each Root Element For Each oTable In CurrentTemplate.Tables Dim oDataTable As New DataTable() ' This is makes it possible to fetch the DocumentRow later oDataTable.Columns.Add(New DataColumn(COLUMN_GUID)) For Each oColumn In oTable.Columns oDataTable.Columns.Add(New DataColumn(oColumn.Name)) Next oDatasources.Add(oTable.Name, oDataTable) Next ' List of Root Elements in XML For Each oRow In pDocument.Rows ' Grab grid for the current DocumentRow Dim oGrid As GridControl = Grids. Where(Function(g) g.Name = oRow.Name). SingleOrDefault() ' Grab table for the current DocumentRow and create new row Dim oDataTable As DataTable = oDatasources.Item(oRow.Name) Dim oDataRow = oDataTable.NewRow() ' Assign the Guid of the DocumentRow oDataRow.Item(COLUMN_GUID) = oRow.Id.ToString ' Set values for the current row For Each oField In oRow.Fields If oDataTable.Columns.Contains(oField.Key) Then oDataRow.Item(oField.Key) = oField.Value Else Logger.Warn("Element [{0}] from files does not exist in Schema. Skipping.", oField.Key) End If Next ' Add row to the current table oDataTable.Rows.Add(oDataRow) oDataTable.AcceptChanges() ' Finally load data into grid oGrid.DataSource = oDataTable Next txtCurrentFile.Caption = String.Format(My.Resources.frmImportMainExtra.Aktuelle_Datei___0_, pDocument.FileName) CurrentDocument = pDocument SetDocumentButtonsEnabled(True) Catch ex As Exception SetDocumentButtonsEnabled(False) Logger.Error(ex) Throw ex End Try End Sub Private Sub SetDocumentButtonsEnabled(pEnabled As Boolean) btnShowXml.Enabled = pEnabled btnReloadFile.Enabled = pEnabled btnTransferFile.Enabled = pEnabled btnRemoveRow.Enabled = pEnabled btnOpenReport.Enabled = pEnabled ' TODO: Implement all file transfer first ' btnTransferAllFiles.Enabled = pEnabled End Sub Private Async Sub btnTransferFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnTransferFile.ItemClick Try SplashScreenManager.ShowWaitForm() SetDocumentButtonsEnabled(False) GridControlFiles.Enabled = False btnLoadFiles.Enabled = False SplitContainerGrids.Enabled = False ' Get the document Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle) ' Check for errors and abort If oDocument.HasErrors = True Then FormHelper.ShowWarning("Diese Datei kann noch nicht übertragen werden, da sie noch Fehler oder fehlende Werte enthält.") Exit Sub End If ' Transfer to winline Await WebService.TransferDocumentToWinline(oDocument, CurrentTemplate, lookupMandator.EditValue) WebService.RaiseWebServiceProgress("Bericht erzeugen") ' Generate the report Dim oReport = ReportGenerator.GenerateReport(oDocument) Dim oFilePath = ReportGenerator.GetReportFilePath(oDocument, CurrentTemplate) WebService.RaiseWebServiceProgress("Bericht exportieren") ' Export it to pdf oReport.ExportToPdf(oFilePath) ' Mark Document as Imported oDocument.Imported = True 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) Catch ex As Exception FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Übertragung_zur_WinLine) Finally SplitContainerGrids.Enabled = True btnLoadFiles.Enabled = True GridControlFiles.Enabled = True SetDocumentButtonsEnabled(True) SplashScreenManager.CloseWaitForm() End Try End Sub Private Sub WebService_Progress(sender As Object, e As String) SplashScreenManager.SetWaitFormDescription(e) End Sub Private Sub btnOpenInputDirectory_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnOpenInputDirectory.ItemClick FormHelper.TryOpenDirectory(CurrentTemplate.InputDirectory, My.Resources.frmImportMainExtra.Eingangsverzeichnis) End Sub 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 btnOpenSchemaDirectory_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnOpenSchemaDirectory.ItemClick FormHelper.TryOpenDirectory(My.GeneralConfiguration.TemplateDirectory, My.Resources.frmImportMainExtra.Vorlagenverzeichnis) End Sub Private Sub TryOpenDirectory(pPath As String, pDisplayName As String) If Directory.Exists(pPath) Then Process.Start(pPath) Else Dim oMessage = String.Format(My.Resources.frmImportMainExtra._0__nicht_konfiguriert_oder_nicht_gefunden, pDisplayName) MsgBox(oMessage, MsgBoxStyle.Exclamation, Text) End If End Sub Private Sub TryOpenFile(pPath As String, pDisplayName As String) If File.Exists(pPath) Then Process.Start(pPath) Else Dim oMessage = String.Format(My.Resources.frmImportMainExtra._0__nicht_konfiguriert_oder_nicht_gefunden, pDisplayName) MsgBox(oMessage, MsgBoxStyle.Exclamation, Text) End If End Sub Private Sub btnShowXml_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnShowXml.ItemClick Dim oForm As New frmXmlEditor With {.FileName = CurrentDocument.FullName} oForm.Show() End Sub Private Sub txtCurrentFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles txtCurrentFile.ItemClick If CurrentDocument IsNot Nothing Then TryOpenFile(CurrentDocument.FullName, My.Resources.frmImportMainExtra.Aktuelle_Datei) End If End Sub Private Sub btnRemoveRow_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnRemoveRow.ItemClick If CurrentGrid Is Nothing Then Exit Sub End If Dim oMessage As String = My.Resources.frmImportMainExtra.Wollen_Sie_die_ausgewählte_Zeile_wirklich_löschen_ If MsgBox(oMessage, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, Text) = MsgBoxResult.Yes Then ' Get GUID of currently selected row Dim oView As GridView = CurrentGrid.FocusedView Dim oRow As DataRowView = oView.GetRow(oView.FocusedRowHandle) Dim oGuid = oRow.Row.Item(COLUMN_GUID) ' Get currently selected document Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle) Dim oNewRows = oDocument.Rows. Where(Function(r) r.Id.ToString <> oGuid). ToList() oDocument.Rows = oNewRows Dim oIndex = DocumentLoader.Files.IndexOf(oDocument) DocumentLoader.Files.Item(oIndex) = oDocument lookupMandator.EditValue = oDocument.Mandator LoadDocument(oDocument) End If End Sub Private Sub btnOpenReport_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnOpenReport.ItemClick Try SplashScreenManager.ShowWaitForm() SplashScreenManager.SetWaitFormDescription(My.Resources.frmImportMainExtra.Erstellen_der_Berichtsvorschau) SetDocumentButtonsEnabled(False) GridControlFiles.Enabled = False btnLoadFiles.Enabled = False SplitContainerGrids.Enabled = False Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle) Dim oReportGenerator = New ReportGenerator(Of OrderReport)(LogConfig, Database, My.TemplateConfiguration, My.GeneralConfiguration) Dim oReport As OrderReport = oReportGenerator.GenerateReport(oDocument) Dim oPrintTool As New ReportPrintTool(oReport) oPrintTool.Report.CreateDocument(False) oPrintTool.ShowPreview() SplitContainerGrids.Enabled = True btnLoadFiles.Enabled = True GridControlFiles.Enabled = True SetDocumentButtonsEnabled(True) SplashScreenManager.CloseWaitForm() Catch ex As Exception FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Erstellen_der_Berichtsvorschau) End Try End Sub Private Sub GridViewFiles_CustomDrawCell(sender As Object, e As Views.Base.RowCellCustomDrawEventArgs) Handles GridViewFiles.CustomDrawCell Dim oDocument As Document = GridViewFiles.GetRow(e.RowHandle) If oDocument.HasErrors Then e.Appearance.Options.UseBackColor = True e.Appearance.BackColor = Color.LightCoral End If If oDocument.Imported Then e.Appearance.Options.UseBackColor = True e.Appearance.BackColor = Color.LightGreen End If End Sub Private Sub GridView_CustomDrawCell(sender As Object, e As Views.Base.RowCellCustomDrawEventArgs) Dim oView As GridView = sender If e.RowHandle < 0 Or CurrentDocument Is Nothing Then Exit Sub End If Dim oObject As DataRowView = oView.GetRow(e.RowHandle) Dim oGuid = oObject.Row.Item(COLUMN_GUID) Dim oRow As DocumentRow = CurrentDocument.Rows. Where(Function(r) r.Id.ToString = oGuid). SingleOrDefault() If oRow Is Nothing Then Exit Sub End If If oRow.HasErrors Then Dim oColumName = e.Column.FieldName Dim oErrorField = oRow.Fields.Where(Function(field) field.Value.HasError).FirstOrDefault() If Not IsNothing(oErrorField) AndAlso oColumName = oErrorField.Key Then e.Appearance.Options.UseBackColor = True e.Appearance.BackColor = Color.LightCoral End If End If End Sub Private Async Sub btnTestTransferFile_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnTestTransferFile.ItemClick Try SplashScreenManager.ShowWaitForm() SetDocumentButtonsEnabled(False) GridControlFiles.Enabled = False btnLoadFiles.Enabled = False SplitContainerGrids.Enabled = False Dim oDocument As Document = GridViewFiles.GetRow(GridViewFiles.FocusedRowHandle) Await WebService.TransferDocumentToWinline(oDocument, CurrentTemplate, lookupMandator.EditValue, pIsTest:=True) 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) Catch ex As Exception FormHelper.ShowError(ex, My.Resources.frmImportMainExtra.Übertragung_zur_WinLine) Finally SplitContainerGrids.Enabled = True btnLoadFiles.Enabled = True GridControlFiles.Enabled = True SetDocumentButtonsEnabled(True) SplashScreenManager.CloseWaitForm() End Try End Sub End Class