diff --git a/app/TaskFlow/App.config b/app/TaskFlow/App.config index 35a4608..6b99ad9 100644 --- a/app/TaskFlow/App.config +++ b/app/TaskFlow/App.config @@ -102,7 +102,8 @@ - + @@ -143,7 +144,7 @@ - + @@ -151,15 +152,15 @@ - + - + - + @@ -229,7 +230,7 @@ 0, 0 - 563 + 513 Normal diff --git a/app/TaskFlow/ClassAllgemeineFunktionen.vb b/app/TaskFlow/ClassAllgemeineFunktionen.vb index 68b6cba..e9d3978 100644 --- a/app/TaskFlow/ClassAllgemeineFunktionen.vb +++ b/app/TaskFlow/ClassAllgemeineFunktionen.vb @@ -366,4 +366,55 @@ Public Class ClassAllgemeineFunktionen MsgBox(ex.Message, MsgBoxStyle.Critical, "Error saving log file") End Try End Sub + Public Shared Function NotNull(Of T)(value As Object, defaultValue As T) As T + If value Is Nothing OrElse Convert.IsDBNull(value) Then + Return defaultValue + End If + + ' Versuche den Wert in den gewünschten Typ zu konvertieren + Try + Return CType(value, T) + Catch ex As InvalidCastException + ' Falls die Konvertierung fehlschlägt, gib den Default zurück + Return defaultValue + End Try + End Function + Public Shared Function NotNullNullable(Of T As Structure)(value As Object, defaultValue As Nullable(Of T)) As Nullable(Of T) + If value Is Nothing OrElse Convert.IsDBNull(value) Then + Return defaultValue + End If + Try + ' Direkte Casts sind robust, wandeln aber DBNull nicht – das ist bereits oben abgefangen. + Return DirectCast(value, Nullable(Of T)) + Catch + Try + ' Fallback: in T casten und zu Nullable machen + Return New Nullable(Of T)(DirectCast(value, T)) + Catch + Return defaultValue + End Try + End Try + End Function + Public Shared Function NotNullString(value As Object, defaultValue As Object) As String + If value Is Nothing OrElse Convert.IsDBNull(value) Then Return defaultValue + Return CStr(value) + End Function + + Public Shared Function NotNullDate(value As Object, defaultValue As DateTime) As DateTime? + If value Is Nothing OrElse Convert.IsDBNull(value) Then Return defaultValue + Return DirectCast(value, DateTime) + End Function + Public Shared Function NewShortGuid() As String + ' Neue GUID erzeugen + Dim g As Guid = Guid.NewGuid() + + ' In Base64 umwandeln + Dim b64 As String = Convert.ToBase64String(g.ToByteArray()) + + ' Unerwünschte Zeichen ersetzen/entfernen + b64 = b64.Replace("=", "").Replace("+", "-").Replace("/", "_") + + ' Ergebnis zurückgeben + Return b64 + End Function End Class diff --git a/app/TaskFlow/ClassControlCreator.vb b/app/TaskFlow/ClassControlCreator.vb index 40d09f5..95fb9e9 100644 --- a/app/TaskFlow/ClassControlCreator.vb +++ b/app/TaskFlow/ClassControlCreator.vb @@ -104,17 +104,17 @@ Public Class ClassControlCreator Private Function TransformDataRow(row As DataRow) As ControlDBProps Dim x As Integer = row.Item("X_LOC") Dim y As Integer = row.Item("Y_LOC") - Dim style As FontStyle = NotNull(row.Item("FONT_STYLE"), DEFAULT_FONT_STYLE) - Dim size As Single = NotNull(row.Item("FONT_SIZE"), DEFAULT_FONT_SIZE) - Dim familyString As String = NotNull(row.Item("FONT_FAMILY"), DEFAULT_FONT_FAMILY) + Dim style As FontStyle = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_STYLE"), DEFAULT_FONT_STYLE) + Dim size As Single = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_SIZE"), DEFAULT_FONT_SIZE) + Dim familyString As String = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_FAMILY"), DEFAULT_FONT_FAMILY) Dim family As FontFamily = New FontFamily(familyString) Dim oGuid As Integer = row.Item("GUID") - Dim oControlName As String = NotNull(row.Item("NAME"), "") - Dim oAttribute As String = NotNull(row.Item("INDEX_NAME"), "") + Dim oControlName As String = ClassAllgemeineFunktionen.NotNullString(row.Item("NAME"), "") + Dim oAttribute As String = ClassAllgemeineFunktionen.NotNullString(row.Item("INDEX_NAME"), "") Dim oLocation As New Point(x, y) Dim oFont As New Font(family, size, style, GraphicsUnit.Point) - Dim oColor As Color = IntToColor(NotNull(row.Item("FONT_COLOR"), DEFAULT_COLOR)) + Dim oColor As Color = IntToColor(ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_COLOR"), DEFAULT_COLOR)) Dim oReadOnly As Boolean = row.Item("READ_ONLY") Dim oAddNewItems As Boolean = row.Item("VKT_ADD_ITEM") If oAttribute = "@@DISPLAY_ONLY" And oReadOnly = False Then @@ -122,7 +122,6 @@ Public Class ClassControlCreator oReadOnly = True End If - Return New ControlDBProps() With { .Guid = oGuid, .Name = oControlName, @@ -171,7 +170,7 @@ Public Class ClassControlCreator Public Function CreateNewTextBox(location As Point) As TextEdit Dim control As New TextEdit With { - .Name = $"{PREFIX_TEXTBOX}_{clsTools.ShortGuid()}", + .Name = $"{PREFIX_TEXTBOX}_{ClassAllgemeineFunktionen.NewShortGuid()}", .Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT), .Location = location, .ReadOnly = True, @@ -184,7 +183,7 @@ Public Class ClassControlCreator Public Function CreateNewLabel(location As Point) As Label Dim control As New Label With { - .Name = $"{PREFIX_LABEL}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_LABEL}_{ClassAllgemeineFunktionen.NewShortGuid}", .Text = DEFAULT_TEXT, .AutoSize = True, .Location = location, @@ -196,7 +195,7 @@ Public Class ClassControlCreator Public Function CreateNewCheckbox(location As Point) As CheckBox Dim control As New CheckBox With { - .Name = $"{PREFIX_CHECKBOX}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_CHECKBOX}_{ClassAllgemeineFunktionen.NewShortGuid}", .AutoSize = True, .Text = DEFAULT_TEXT, .Cursor = Cursors.Hand, @@ -209,7 +208,7 @@ Public Class ClassControlCreator Public Function CreateNewCombobox(location As Point) As Windows.Forms.ComboBox Dim control As New Windows.Forms.ComboBox With { - .Name = $"{PREFIX_COMBOBOX}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_COMBOBOX}_{ClassAllgemeineFunktionen.NewShortGuid}", .Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT), .Cursor = Cursors.Hand, .Location = location @@ -220,7 +219,7 @@ Public Class ClassControlCreator Public Function CreateNewDatetimepicker(location As Point) As DateTimePicker Dim control As New DateTimePicker With { - .Name = $"{PREFIX_DATETIMEPICKER}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_DATETIMEPICKER}_{ClassAllgemeineFunktionen.NewShortGuid}", .Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT), .Cursor = Cursors.Hand, .Location = location, @@ -232,7 +231,7 @@ Public Class ClassControlCreator Public Function CreateNewDatagridview(location As Point) As DataGridView Dim control As New DataGridView With { - .Name = $"{PREFIX_DATAGRIDVIEW}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_DATAGRIDVIEW}_{ClassAllgemeineFunktionen.NewShortGuid}", .Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT_TABLE), .Cursor = Cursors.Hand, .Location = location, @@ -252,7 +251,7 @@ Public Class ClassControlCreator Friend Function CreateNewLookupControl(location As Point) As LookupControl3 Dim control As New LookupControl3 With { - .Name = $"{PREFIX_LOOKUP}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_LOOKUP}_{ClassAllgemeineFunktionen.NewShortGuid}", .Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT), .Cursor = Cursors.Hand, .Location = location @@ -262,7 +261,7 @@ Public Class ClassControlCreator Public Function CreateNewTable(location As Point) As GridControl Dim oControl As New GridControl With { - .Name = $"{PREFIX_TABLE}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_TABLE}_{ClassAllgemeineFunktionen.NewShortGuid}", .Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT_TABLE), .Cursor = Cursors.Hand, .Location = location, @@ -282,7 +281,7 @@ Public Class ClassControlCreator Public Function CreateNewLine(location As Point) As LineLabel Dim control As New LineLabel With { - .Name = $"{PREFIX_LINE}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_LINE}_{ClassAllgemeineFunktionen.NewShortGuid}", .Text = "---------------------------------", .Size = New Size(100, 5), .Location = location @@ -292,7 +291,7 @@ Public Class ClassControlCreator End Function Public Function CreateNewButton(location As Point) As Button Dim control As New Button With { - .Name = $"{PREFIX_BUTTON}_{clsTools.ShortGuid}", + .Name = $"{PREFIX_BUTTON}_{ClassAllgemeineFunktionen.NewShortGuid}", .Size = New Size(108, 28), .Cursor = Cursors.Hand, .Location = location @@ -483,7 +482,7 @@ Public Class ClassControlCreator Return control End Function - Public Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean) As GridControl + Public Function CreateExistingGridControl(row As DataRow, DT_MY_COLUMNS As DataTable, designMode As Boolean, pcurrencySymbol As String) As GridControl Dim oGridControlCreator = New ControlCreator.GridControl(LogConfig, GridTables) Dim oControl As GridControl = CreateBaseControl(New GridControl(), row, designMode) Dim oControlId = DirectCast(oControl.Tag, ControlMetadata).Guid @@ -559,8 +558,8 @@ Public Class ClassControlCreator Dim oDataTable = oGridControlCreator.CreateGridColumns(DT_MY_COLUMNS) GridTables = oGridControlCreator.FillGridTables(DT_MY_COLUMNS, oControlId, oControl.Name) - oView.PopulateColumns(oDatatable) - oControl.DataSource = oDatatable + oView.PopulateColumns(oDataTable) + oControl.DataSource = oDataTable oControl.RefreshDataSource() oControl.ForceInitialize() @@ -587,7 +586,7 @@ Public Class ClassControlCreator End Try End If - oGridControlCreator.ConfigureViewColumns(DT_MY_COLUMNS, oView, oControl) + oGridControlCreator.ConfigureViewColumns(DT_MY_COLUMNS, oView, oControl, pcurrencySymbol) oGridControlCreator.ConfigureViewEvents(DT_MY_COLUMNS, oView, oControl, oControlId) ' 08.11.2021: Fix editor being empty on first open @@ -605,7 +604,7 @@ Public Class ClassControlCreator control.Text = "------------------------------" control.BorderStyle = BorderStyle.None control.AutoSize = False - control.BackColor = IntToColor(NotNull(row.Item("FONT_COLOR"), DEFAULT_COLOR)) + control.BackColor = IntToColor(ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_COLOR"), DEFAULT_COLOR)) control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT")) Return control @@ -824,7 +823,7 @@ Public Class ClassControlCreator If oMeta.Guid = oControlId AndAlso TypeOf oControl Is GridControl Then Dim oGrid As GridControl = DirectCast(oControl, GridControl) DirectCast(oGrid.FocusedView, GridView).FocusInvalidRow() - Logger.Info("Force-setting Editor for Grid [{0}]", oGrid.Name) + Logger.Debug("Force-setting Editor for Grid [{0}]", oGrid.Name) Exit For End If Catch ex As Exception diff --git a/app/TaskFlow/ClassFinalIndex.vb b/app/TaskFlow/ClassFinalIndex.vb index 19ec4bb..96b6718 100644 --- a/app/TaskFlow/ClassFinalIndex.vb +++ b/app/TaskFlow/ClassFinalIndex.vb @@ -114,12 +114,12 @@ Public Class ClassFinalIndex props.VectorIndex = isVector If type = INDEX_TYPE_STRING Or type = INDEX_TYPE_VECTOR_STRING Then - value = NotNull(value, "") + value = ClassAllgemeineFunktionen.NotNullString(value, "") props.StringValue = value ElseIf type = INDEX_TYPE_INTEGER Or type = INDEX_TYPE_INTEGER64 Or type = INDEX_TYPE_VECTOR_INTEGER_64 Then Try - value = NotNull(Of Integer)(value, 0) + value = ClassAllgemeineFunktionen.NotNullString(value, 0) If value = String.Empty Then props.IntegerValue = 0 Else @@ -138,7 +138,7 @@ Public Class ClassFinalIndex If value = "SQL-Command" Then props.FloatValue = 0 Else - value = NotNull(Of Double)(value, 0) + value = ClassAllgemeineFunktionen.NotNullString(value, 0) If value = String.Empty Then props.FloatValue = 0 @@ -148,7 +148,7 @@ Public Class ClassFinalIndex End If ElseIf type = INDEX_TYPE_BOOLEAN Or type = INDEX_TYPE_VECTOR_BOOLEAN Then - value = NotNull(value, "False") + value = ClassAllgemeineFunktionen.NotNullString(value, "False") If value = "1" Or value.ToLower = "true" Then props.BoolValue = True diff --git a/app/TaskFlow/ClassInit.vb b/app/TaskFlow/ClassInit.vb index d4a375f..684b613 100644 --- a/app/TaskFlow/ClassInit.vb +++ b/app/TaskFlow/ClassInit.vb @@ -521,6 +521,10 @@ Public Class ClassInit oSql = "SELECT LANG_CODE FROM TBDD_GUI_LANGUAGE WHERE ACTIVE = 1 ORDER BY LANG_CODE" BASEDATA_DT_LANGUAGE = DatabaseFallback.GetDatatable("TBDD_GUI_LANGUAGE", New GetDatatableOptions(oSql, DatabaseType.ECM)) + + oSql = "SELECT * FROM TBDD_COLUMNS_FORMAT WHERE MODULE = 'taskFLOW' AND GRIDVIEW = 'GridViewWorkflows'" + BASEDATA_TBDD_COLUMNS_FORMAT = DatabaseFallback.GetDatatable("TBDD_COLUMNS_FORMAT", New GetDatatableOptions(oSql, DatabaseType.ECM)) + oStopWatch.Done() Catch ex As Exception LOGGER.Error(ex) diff --git a/app/TaskFlow/ClassRegexEditor.vb b/app/TaskFlow/ClassRegexEditor.vb index 8900218..31647d7 100644 --- a/app/TaskFlow/ClassRegexEditor.vb +++ b/app/TaskFlow/ClassRegexEditor.vb @@ -12,7 +12,7 @@ Public Class ClassRegexEditor Public Overrides Function EditValue(context As ITypeDescriptorContext, provider As IServiceProvider, value As Object) As Object Dim oService As IWindowsFormsEditorService = TryCast(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService) - Dim oRegexString As String = NotNull(value, String.Empty) + Dim oRegexString As String = ClassAllgemeineFunktionen.NotNullString(value, String.Empty) If oService IsNot Nothing Then Using oform As New frmRegexEditor() diff --git a/app/TaskFlow/ControlCreator/GridControl.vb b/app/TaskFlow/ControlCreator/GridControl.vb index e87a889..63935e9 100644 --- a/app/TaskFlow/ControlCreator/GridControl.vb +++ b/app/TaskFlow/ControlCreator/GridControl.vb @@ -144,8 +144,16 @@ Namespace ControlCreator Return oEditor End If End Function + ' Hilfsroutine: passt NUR das Summary-Item an (ohne FormatInfo) + Private Sub ApplyCurrencySummaryFormat(oCol As GridColumn, currencySymbol As String) + oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum + ' Variante A: Standard-Währungsformat aus aktueller Kultur + ' oCol.SummaryItem.DisplayFormat = "SUM: {0:C2}" - Public Sub ConfigureViewColumns(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl) + ' Variante B: Kulturunabhängig, Symbol explizit anhängen + oCol.SummaryItem.DisplayFormat = $"SUM: {{0:N2}} {currencySymbol}" + End Sub + Public Sub ConfigureViewColumns(pColumnTable As DataTable, pGridView As GridView, pGrid As DevExpress.XtraGrid.GridControl, pcurrencySymbol As String) Dim oShouldDisplayFooter As Boolean = False @@ -192,8 +200,7 @@ Namespace ControlCreator oShouldDisplayFooter = True Case Constants.AGGREGATE_TOTAL_CURRENCY - oCol.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum - oCol.SummaryItem.DisplayFormat = "SUM: {0:C2}" + ApplyCurrencySummaryFormat(oCol, pcurrencySymbol) oShouldDisplayFooter = True Case Constants.AGGREGATE_TOTAL_AVG diff --git a/app/TaskFlow/GdPicture.NET.14.Imaging.ML.64.dll b/app/TaskFlow/GdPicture.NET.14.Imaging.ML.64.dll deleted file mode 100644 index 2ad8950..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.Imaging.ML.64.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.Imaging.ML.dll b/app/TaskFlow/GdPicture.NET.14.Imaging.ML.dll deleted file mode 100644 index 387246a..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.Imaging.ML.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.Imaging.Rendering.Skia.dll b/app/TaskFlow/GdPicture.NET.14.Imaging.Rendering.Skia.dll deleted file mode 100644 index 8f60b41..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.Imaging.Rendering.Skia.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.barcode.1d.reader.64.dll b/app/TaskFlow/GdPicture.NET.14.barcode.1d.reader.64.dll deleted file mode 100644 index a96a316..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.barcode.1d.reader.64.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.barcode.1d.reader.dll b/app/TaskFlow/GdPicture.NET.14.barcode.1d.reader.dll deleted file mode 100644 index 6d24c8b..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.barcode.1d.reader.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.barcode.2d.reader.64.dll b/app/TaskFlow/GdPicture.NET.14.barcode.2d.reader.64.dll deleted file mode 100644 index 2287de5..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.barcode.2d.reader.64.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.barcode.2d.reader.dll b/app/TaskFlow/GdPicture.NET.14.barcode.2d.reader.dll deleted file mode 100644 index 4984254..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.barcode.2d.reader.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.filters.dll b/app/TaskFlow/GdPicture.NET.14.filters.dll deleted file mode 100644 index 938c3f3..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.filters.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.image.gdimgplug.dll b/app/TaskFlow/GdPicture.NET.14.image.gdimgplug.dll deleted file mode 100644 index 88eeff8..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.image.gdimgplug.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.machine.vision.64.dll b/app/TaskFlow/GdPicture.NET.14.machine.vision.64.dll deleted file mode 100644 index af684ac..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.machine.vision.64.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.machine.vision.dll b/app/TaskFlow/GdPicture.NET.14.machine.vision.dll deleted file mode 100644 index da04adb..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.machine.vision.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.twain.client.64.dll b/app/TaskFlow/GdPicture.NET.14.twain.client.64.dll deleted file mode 100644 index 045fdd3..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.twain.client.64.dll and /dev/null differ diff --git a/app/TaskFlow/GdPicture.NET.14.twain.client.dll b/app/TaskFlow/GdPicture.NET.14.twain.client.dll deleted file mode 100644 index 51d630b..0000000 Binary files a/app/TaskFlow/GdPicture.NET.14.twain.client.dll and /dev/null differ diff --git a/app/TaskFlow/ModuleControlProperties.vb b/app/TaskFlow/ModuleControlProperties.vb index eab8a9c..2e2850e 100644 --- a/app/TaskFlow/ModuleControlProperties.vb +++ b/app/TaskFlow/ModuleControlProperties.vb @@ -124,7 +124,7 @@ Public Module ModuleControlProperties Public Property SQLCommand() As SQLValue Get - Return New SQLValue(NotNull(_sql_command, "")) ', _sql_connection + Return New SQLValue(ClassAllgemeineFunktionen.NotNullString(_sql_command, "")) ', _sql_connection End Get Set(ByVal value As SQLValue) _sql_command = value.Value @@ -150,7 +150,7 @@ Public Module ModuleControlProperties Public Property Enable_SQL() As SQLValue Get - Return New SQLValue(NotNull(_Enable_SQL, "")) ', _sql_connection + Return New SQLValue(ClassAllgemeineFunktionen.NotNullString(_Enable_SQL, "")) ', _sql_connection End Get Set(ByVal value As SQLValue) _Enable_SQL = value.Value @@ -163,7 +163,7 @@ Public Module ModuleControlProperties Public Property Enable_SQL_OnLoad() As SQLValue Get - Return New SQLValue(NotNull(_Enable_SQL_ONLOAD, "")) ', _sql_connection + Return New SQLValue(ClassAllgemeineFunktionen.NotNullString(_Enable_SQL_ONLOAD, "")) ', _sql_connection End Get Set(ByVal value As SQLValue) _Enable_SQL_ONLOAD = value.Value @@ -335,7 +335,7 @@ Public Module ModuleControlProperties Public Property CtrlImage() As ImageValue Get - Return New ImageValue(NotNull(_image_Value, "")) + Return New ImageValue(ClassAllgemeineFunktionen.NotNullString(_image_Value, "")) End Get Set(ByVal value As ImageValue) _image_Value = value.Value @@ -346,7 +346,7 @@ Public Module ModuleControlProperties Public Property Override_SQL() As SQLValue Get - Return New SQLValue(NotNull(_Override_SQL, "")) ', _sql_connection + Return New SQLValue(ClassAllgemeineFunktionen.NotNullString(_Override_SQL, "")) ', _sql_connection End Get Set(ByVal value As SQLValue) _Override_SQL = value.Value diff --git a/app/TaskFlow/ModuleRuntimeVariables.vb b/app/TaskFlow/ModuleRuntimeVariables.vb index ff51a68..d7a7a27 100644 --- a/app/TaskFlow/ModuleRuntimeVariables.vb +++ b/app/TaskFlow/ModuleRuntimeVariables.vb @@ -32,10 +32,15 @@ Module ModuleRuntimeVariables Public Property BASEDATA_DT_PROFILE_SEARCHES_SQL As DataTable Public Property BASEDATA_DT_VW_PROFILE_USER As DataTable + Public Property BASEDATA_TBDD_COLUMNS_FORMAT As DataTable + + + Public Property CURRENT_ProfilGUID As Integer Public Property CURRENT_ProfilName As String Public Property CURRENT_PROFILE_LOG_INDEX As String Public Property PROFILE_SHOW_DOCUMENT As Boolean = True + Public Property PROFILE_NOT_RESP_COMMENT As Boolean = True Public Property CURRENT_DOC_GUID As Int64 Public Property CURRENT_DOC_ID As Int64 diff --git a/app/TaskFlow/My Project/AssemblyInfo.vb b/app/TaskFlow/My Project/AssemblyInfo.vb index 03dc00e..8c84bad 100644 --- a/app/TaskFlow/My Project/AssemblyInfo.vb +++ b/app/TaskFlow/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + diff --git a/app/TaskFlow/My Project/Settings.Designer.vb b/app/TaskFlow/My Project/Settings.Designer.vb index 7dff18f..ae5e8b7 100644 --- a/app/TaskFlow/My Project/Settings.Designer.vb +++ b/app/TaskFlow/My Project/Settings.Designer.vb @@ -156,7 +156,7 @@ Namespace My _ + Global.System.Configuration.DefaultSettingValueAttribute("513")> _ Public Property frmValSearchSplitterDistance() As Integer Get Return CType(Me("frmValSearchSplitterDistance"),Integer) diff --git a/app/TaskFlow/My Project/Settings.settings b/app/TaskFlow/My Project/Settings.settings index 5b14335..9801874 100644 --- a/app/TaskFlow/My Project/Settings.settings +++ b/app/TaskFlow/My Project/Settings.settings @@ -27,7 +27,7 @@ 0, 0 - 563 + 513 Normal diff --git a/app/TaskFlow/README.txt b/app/TaskFlow/README.txt deleted file mode 100644 index 58cbced..0000000 --- a/app/TaskFlow/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -BASE MODULE -=========== - -This module is intended for often used constants and datastructures. -Therefor it is important that this module does not have any dependencies on other modules!! \ No newline at end of file diff --git a/app/TaskFlow/TaskFlow.vbproj b/app/TaskFlow/TaskFlow.vbproj index 91e0898..d9c5340 100644 --- a/app/TaskFlow/TaskFlow.vbproj +++ b/app/TaskFlow/TaskFlow.vbproj @@ -77,14 +77,16 @@ My Project\app.manifest + + + + + + ..\packages\BouncyCastle.Cryptography.2.5.0\lib\net461\BouncyCastle.Cryptography.dll - - False - P:\Visual Studio Projekte\Bibliotheken\DD_LIB_Standards.dll - False @@ -149,7 +151,8 @@ False - + + False ..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll @@ -158,48 +161,43 @@ ..\..\..\..\2_DLL Projekte\DDMonorepo\Controls.SnapPanel\bin\Debug\DigitalData.Controls.SnapPanel.dll - - ..\packages\DigitalData.GUIs.Common.2.6.2\lib\net462\DigitalData.GUIs.Common.dll + + False + ..\..\..\..\2_DLL Projekte\DDMonorepo\GUIs.Common\bin\Debug\DigitalData.GUIs.Common.dll - - ..\packages\DigitalData.Modules.Base.1.3.8\lib\net462\DigitalData.Modules.Base.dll + + False + ..\..\..\..\2_DLL Projekte\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll - ..\packages\DigitalData.Modules.Config.1.3.0\lib\net462\DigitalData.Modules.Config.dll + False + ..\..\..\..\2_DLL Projekte\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll - - ..\packages\DigitalData.Modules.Database.2.3.5.4\lib\net462\DigitalData.Modules.Database.dll + + False + ..\..\..\..\2_DLL Projekte\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll ..\..\..\..\2_DLL Projekte\DDModules\EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll - ..\packages\DigitalData.Modules.Encryption.1.3.1\lib\net462\DigitalData.Modules.Encryption.dll + False + ..\..\..\..\2_DLL Projekte\DDModules\Encryption\bin\Debug\DigitalData.Modules.Encryption.dll - - ..\packages\DigitalData.Modules.Filesystem.1.3.3\lib\net462\DigitalData.Modules.Filesystem.dll - - - ..\..\..\..\2_DLL Projekte\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll - - - P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DigitalData.Modules.Language.dll + + False + P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DD_Modules\DigitalData.Modules.Interfaces.dll ..\..\..\..\2_DLL Projekte\DDModules\License\bin\Debug\DigitalData.Modules.License.dll - ..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll - - False - ..\..\..\..\2_DLL Projekte\DDModules\Messaging\bin\Debug\DigitalData.Modules.Messaging.dll + ..\..\..\..\2_DLL Projekte\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll - ..\packages\DigitalData.Modules.Patterns.1.3.1\lib\net462\DigitalData.Modules.Patterns.dll - - - ..\packages\DigitalData.Modules.Windows.1.5.1\lib\net462\DigitalData.Modules.Windows.dll + False + ..\..\..\..\2_DLL Projekte\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll False @@ -386,8 +384,8 @@ - - ..\packages\System.IO.Packaging.8.0.1\lib\net462\System.IO.Packaging.dll + + ..\packages\System.IO.Packaging.9.0.0\lib\net462\System.IO.Packaging.dll ..\packages\System.IO.Pipelines.9.0.0\lib\net462\System.IO.Pipelines.dll @@ -547,12 +545,6 @@ Form - - frmDashboard1.vb - - - Form - frmDesignerLayout.vb @@ -810,10 +802,6 @@ frmColumn_Detail.vb Designer - - frmDashboard1.vb - Designer - frmDesignerLayout.vb Designer @@ -1244,22 +1232,6 @@ - - - - - - - - - - - - - - - - PreserveNewest @@ -1287,7 +1259,6 @@ - @@ -1360,16 +1331,16 @@ - Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 140, 17 - - \ No newline at end of file diff --git a/app/TaskFlow/frmDashboard1.vb b/app/TaskFlow/frmDashboard1.vb deleted file mode 100644 index 0f426c5..0000000 --- a/app/TaskFlow/frmDashboard1.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class frmDashboard1 - -End Class \ No newline at end of file diff --git a/app/TaskFlow/frmFormDesigner.vb b/app/TaskFlow/frmFormDesigner.vb index 64bfca6..84d0bef 100644 --- a/app/TaskFlow/frmFormDesigner.vb +++ b/app/TaskFlow/frmFormDesigner.vb @@ -1,12 +1,10 @@ Imports System.ComponentModel -Imports DD_LIB_Standards + Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Columns Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid.Views.Grid.ViewInfo Imports DigitalData.Controls.LookupGrid -Imports DigitalData.Modules.Language.Utils -Imports DigitalData.Modules.Language Imports System.Drawing Imports DigitalData.GUIs.Common Imports DevExpress.Utils.Filtering.Internal @@ -52,7 +50,7 @@ Public Class frmFormDesigner ORDER BY NAME" ) CURRENT_CONTROL_NAME_LIST = oControlNameList.AsEnumerable(). - Select(Function(row) row.ItemEx("NAME", String.Empty)). + Select(Function(row) ClassAllgemeineFunktionen.NotNullString(row.Item("NAME"), String.Empty)). ToList() _Logger.debug("Reloading control name list done!") End Sub @@ -79,7 +77,7 @@ Public Class frmFormDesigner ' Try ' Windream initialisieren If IDB_ACTIVE = False Then - clsWindream.Create_Session() + 'clsWindream.Create_Session() bbtnitButton.Visibility = DevExpress.XtraBars.BarItemVisibility.Never Else bbtnitButton.Visibility = DevExpress.XtraBars.BarItemVisibility.Always @@ -90,7 +88,7 @@ Public Class frmFormDesigner Dim unsortedIndicies Dim sortedIndicies As List(Of String) If IDB_ACTIVE = False Then - unsortedIndicies = clsWD_GET.GetIndicesByObjecttype(CURRENT_OBJECTTYPE).ToList() + unsortedIndicies = WINDREAM_MOD.GetIndiciesByObjecttype(CURRENT_OBJECTTYPE).ToList() sortedIndicies = unsortedIndicies '.OrderBy(Function(index As String) index).ToList() sortedIndicies = sortedIndicies.OrderBy(Function(index As String) index).ToList Else @@ -112,7 +110,7 @@ Public Class frmFormDesigner If IDB_ACTIVE = False Then Windream_ChoiceLists = New List(Of String) Windream_ChoiceLists.Add(String.Empty) - Windream_ChoiceLists.AddRange(clsWD_GET.GetChoiceLists()) + Windream_ChoiceLists.AddRange(WINDREAM_MOD.GetChoiceLists()) End If 'Catch ex As Exception @@ -146,7 +144,7 @@ Public Class frmFormDesigner Dim missingIndexControls As New List(Of String) For Each row As DataRow In dt.Rows - If NotNull(row.Item("INDEX_NAME"), String.Empty) = String.Empty Then + If ClassAllgemeineFunktionen.NotNullString(row.Item("INDEX_NAME"), String.Empty) = String.Empty Then missingIndexControls.Add(row.Item("NAME")) End If Next @@ -176,7 +174,7 @@ Public Class frmFormDesigner Private Function IsVectorIndex(IndexName As String) As Boolean Dim oType As Integer If IDB_ACTIVE = False Then - oType = clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + oType = WINDREAM_MOD.GetIndexType(IndexName) Else oType = IDBData.GetTypeOfIndex(IndexName) End If @@ -185,9 +183,9 @@ Public Class frmFormDesigner End Function Private Function IsNotBooleanIndex(IndexName As String) As Boolean - Dim oType As Integer '= clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) If IDB_ACTIVE = False Then - oType = clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + oType = WINDREAM_MOD.GetIndexType(IndexName) Else oType = IDBData.GetTypeOfIndex(IndexName) End If @@ -195,9 +193,9 @@ Public Class frmFormDesigner End Function Private Function IsNotDateIndex(IndexName As String) As Boolean - Dim oType As Integer '= clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) If IDB_ACTIVE = False Then - oType = clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + oType = WINDREAM_MOD.GetIndexType(IndexName) Else oType = IDBData.GetTypeOfIndex(IndexName) End If @@ -205,9 +203,9 @@ Public Class frmFormDesigner End Function Private Function IsNotVectorBooleanIndex(IndexName As String) As Boolean - Dim oType As Integer '= clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) If IDB_ACTIVE = False Then - oType = clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + oType = WINDREAM_MOD.GetIndexType(IndexName) Else oType = IDBData.GetTypeOfIndex(IndexName) End If @@ -215,9 +213,9 @@ Public Class frmFormDesigner End Function Private Function IsNotVectorDateIndex(IndexName As String) As Boolean - Dim oType As Integer '= clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) If IDB_ACTIVE = False Then - oType = clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + oType = WINDREAM_MOD.GetIndexType(IndexName) Else oType = IDBData.GetTypeOfIndex(IndexName) End If @@ -225,9 +223,9 @@ Public Class frmFormDesigner End Function Private Function IsNotVectorDatetimeIndex(IndexName As String) As Boolean - Dim oType As Integer '= clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + Dim oType As Integer '= WINDREAM_MOD.GetIndexType(IndexName) If IDB_ACTIVE = False Then - oType = clsWD_GET.GetTypeOfIndexAsIntByName(IndexName) + oType = WINDREAM_MOD.GetIndexType(IndexName) Else oType = IDBData.GetTypeOfIndex(IndexName) End If @@ -248,12 +246,12 @@ Public Class frmFormDesigner Dim name As String = row.Item("NAME") Dim x As Integer = row.Item("X_LOC") Dim y As Integer = row.Item("Y_LOC") - Dim style As FontStyle = NotNull(row.Item("FONT_STYLE"), FontStyle.Regular) - Dim size As Single = NotNull(row.Item("FONT_SIZE"), 10) - Dim familyString As String = NotNull(row.Item("FONT_FAMILY"), "Arial") + Dim style As FontStyle = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_STYLE"), FontStyle.Regular) + Dim size As Single = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_SIZE"), 10) + Dim familyString As String = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_FAMILY"), "Arial") Dim family As FontFamily = New FontFamily(familyString) Dim font As New Font(family, size, style, GraphicsUnit.Point) - Dim color As Color = IntToColor(NotNull(row.Item("FONT_COLOR"), 0)) + Dim color As Color = IntToColor(ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_COLOR"), 0)) ' Jetzt die Control spezifischen Eigenschaften zuweisen @@ -297,7 +295,7 @@ Public Class frmFormDesigner Dim oDTColumnsPerDevExGrid As DataTable = DatabaseFallback.GetDatatableECM(oSQL) ', "FDesignLaodControls") - Dim table = ControlCreator.CreateExistingGridControl(row, oDTColumnsPerDevExGrid, True) + Dim table = ControlCreator.CreateExistingGridControl(row, oDTColumnsPerDevExGrid, True, "EUR") AddHandler table.MouseClick, AddressOf gridControl_MouseClick ' AddHandler table.ColumnHeaderMouseClick, AddressOf table_ColumnHeaderMouseClick @@ -581,17 +579,17 @@ Public Class frmFormDesigner obj.Location = New Point(row.Item("X_LOC"), row.Item("Y_LOC")) obj.Name = row.Item("NAME") obj.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT")) - obj.ChangedAt = NotNull(row.Item("CHANGED_WHEN"), Nothing) - obj.ChangedWho = NotNull(row.Item("CHANGED_WHO"), "") + obj.ChangedAt = ClassAllgemeineFunktionen.NotNullDate(row.Item("CHANGED_WHEN"), Nothing) + obj.ChangedWho = ClassAllgemeineFunktionen.NotNullString(row.Item("CHANGED_WHO"), "") - Dim style As FontStyle = NotNull(row.Item("FONT_STYLE"), FontStyle.Regular) - Dim size As Single = NotNull(row.Item("FONT_SIZE"), 10) - Dim familyString As String = NotNull(row.Item("FONT_FAMILY"), "Arial") + Dim style As FontStyle = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_STYLE"), FontStyle.Regular) + Dim size As Single = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_SIZE"), 10) + Dim familyString As String = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_FAMILY"), "Arial") Dim family As FontFamily = New FontFamily(familyString) obj.Font = New Font(family, size, style) - Dim color As Integer = NotNull(row.Item("FONT_COLOR"), 0) + Dim color As Integer = ClassAllgemeineFunktionen.NotNullString(row.Item("FONT_COLOR"), 0) obj.TextColor = IntToColor(color) @@ -614,11 +612,11 @@ Public Class frmFormDesigner obj.SaveChangeOnReadOnly = StrToBool(row.Item("SAVE_CHANGE_ON_ENABLED")) obj.Required = StrToBool(row.Item("VALIDATION")) obj.Active = StrToBool(row.Item("CONTROL_ACTIVE")) - obj.Index = NotNull(row.Item("INDEX_NAME"), "") - obj.DefaultValue = NotNull(row.Item("DEFAULT_VALUE"), Nothing) + obj.Index = ClassAllgemeineFunktionen.NotNullString(row.Item("INDEX_NAME"), "") + obj.DefaultValue = ClassAllgemeineFunktionen.NotNullString(row.Item("DEFAULT_VALUE"), Nothing) ' Default value for ConnectionID - Dim oConnectionId = row.ItemEx("CONNECTION_ID", 0) + Dim oConnectionId = ClassAllgemeineFunktionen.NotNullString(row.Item("CONNECTION_ID"), 0) obj.SQLCommand = New SQLValue(row.Item("SQL_UEBERPRUEFUNG")) Return obj End Function @@ -679,9 +677,9 @@ Public Class frmFormDesigner Dim check As CheckBox = sender Dim checkProps As CheckboxProperties = CreatePropsObjectWithIndicies(New CheckboxProperties, oRow, Source_AllIndicies) checkProps.Text = check.Text - checkProps.Enable_SQL = New SQLValue(NotNull(oRow.Item("SQL_ENABLE"), "")) - checkProps.Enable_SQL_OnLoad = New SQLValue(NotNull(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) - checkProps.SetControlData = New SQLValue(NotNull(oRow.Item("SET_CONTROL_DATA"), "")) + checkProps.Enable_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE"), "")) + checkProps.Enable_SQL_OnLoad = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) + checkProps.SetControlData = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SET_CONTROL_DATA"), "")) props = checkProps ElseIf TypeOf sender Is LookupControl3 Then Dim oLookup As LookupControl3 = sender @@ -690,20 +688,20 @@ Public Class frmFormDesigner lookupProps.PreventDuplicates = StrToBool(oRow.Item("VKT_PREVENT_MULTIPLE_VALUES")) lookupProps.AllowAddNewValues = StrToBool(oRow.Item("VKT_ADD_ITEM")) lookupProps.DisplayAsComboBox = False - lookupProps.Enable_SQL = New SQLValue(NotNull(oRow.Item("SQL_ENABLE"), "")) - lookupProps.Enable_SQL_OnLoad = New SQLValue(NotNull(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) - lookupProps.SetControlData = New SQLValue(NotNull(oRow.Item("SET_CONTROL_DATA"), "")) + lookupProps.Enable_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE"), "")) + lookupProps.Enable_SQL_OnLoad = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) + lookupProps.SetControlData = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SET_CONTROL_DATA"), "")) props = lookupProps ElseIf TypeOf sender Is TextEdit Then 'Dim txt As TextEdit = sender Dim txtProps As TextboxProperties = CreatePropsObjectWithIndicies(New TextboxProperties, oRow, Source_AllIndicies) - txtProps.Regex = NotNull(oRow.Item("REGEX_MATCH"), String.Empty) - txtProps.RegexMessage = NotNull(oRow.Item("REGEX_MESSAGE_DE"), String.Empty) - txtProps.Enable_SQL = New SQLValue(NotNull(oRow.Item("SQL_ENABLE"), "")) - txtProps.Enable_SQL_OnLoad = New SQLValue(NotNull(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) - txtProps.SetControlData = New SQLValue(NotNull(oRow.Item("SET_CONTROL_DATA"), "")) - txtProps.DisplayFormat = oRow.ItemEx("FORMAT_STRING", ClassControlCreator.CONTROL_TYPE_TEXT) + txtProps.Regex = ClassAllgemeineFunktionen.NotNullString(oRow.Item("REGEX_MATCH"), String.Empty) + txtProps.RegexMessage = ClassAllgemeineFunktionen.NotNullString(oRow.Item("REGEX_MESSAGE_DE"), String.Empty) + txtProps.Enable_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE"), "")) + txtProps.Enable_SQL_OnLoad = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) + txtProps.SetControlData = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SET_CONTROL_DATA"), "")) + txtProps.DisplayFormat = ClassAllgemeineFunktionen.NotNullString(oRow.Item("FORMAT_STRING"), ClassControlCreator.CONTROL_TYPE_TEXT) props = txtProps @@ -711,18 +709,18 @@ Public Class frmFormDesigner Dim cmb As Windows.Forms.ComboBox = sender Dim cmbProps As ComboboxProperties = CreatePropsObjectWithIndicies(New ComboboxProperties, oRow, Source_AllIndicies) cmbProps.ChoiceLists = Windream_ChoiceLists - cmbProps.ChoiceList = NotNull(oRow.Item("CHOICE_LIST"), String.Empty) - cmbProps.Enable_SQL = New SQLValue(NotNull(oRow.Item("SQL_ENABLE"), "")) - cmbProps.Enable_SQL_OnLoad = New SQLValue(NotNull(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) - cmbProps.SetControlData = New SQLValue(NotNull(oRow.Item("SET_CONTROL_DATA"), "")) + cmbProps.ChoiceList = ClassAllgemeineFunktionen.NotNullString(oRow.Item("CHOICE_LIST"), String.Empty) + cmbProps.Enable_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE"), "")) + cmbProps.Enable_SQL_OnLoad = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) + cmbProps.SetControlData = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SET_CONTROL_DATA"), "")) props = cmbProps cmbProps.DisplayAsLookUpControl = False ElseIf TypeOf sender Is DateTimePicker Then Dim dtp As DateTimePicker = sender Dim dtpProps As DatepickerProperties = CreatePropsObjectWithIndicies(New DatepickerProperties, oRow, Source_AllIndicies) - dtpProps.Enable_SQL = New SQLValue(NotNull(oRow.Item("SQL_ENABLE"), "")) - dtpProps.Enable_SQL_OnLoad = New SQLValue(NotNull(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) + dtpProps.Enable_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE"), "")) + dtpProps.Enable_SQL_OnLoad = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) props = dtpProps ElseIf TypeOf sender Is DataGridView Then @@ -737,17 +735,17 @@ Public Class frmFormDesigner Dim oGridControl As GridControl = sender Dim oGridProps As GridControlProperties = CreatePropsObjectWithIndicies(New GridControlProperties, oRow, Source_VectorIndicies) oGridProps.AllowAddNewValues = StrToBool(oRow.Item("VKT_ADD_ITEM")) - oGridProps.Enable_SQL = New SQLValue(NotNull(oRow.Item("SQL_ENABLE"), "")) - oGridProps.Enable_SQL_OnLoad = New SQLValue(NotNull(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) + oGridProps.Enable_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE"), "")) + oGridProps.Enable_SQL_OnLoad = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) props = oGridProps ElseIf TypeOf sender Is Button Then Dim oButton As Button = sender Dim oButtonProps As ButtonProperties = CreatePropsObject(New ButtonProperties, oRow, Source_VectorIndicies) oButtonProps.Text = oButton.Text oButtonProps.SQLCommand = New SQLValue(oRow.Item("SQL_UEBERPRUEFUNG")) - oButtonProps.Override_SQL = New SQLValue(NotNull(oRow.Item("SQL2"), "")) - oButtonProps.Enable_SQL = New SQLValue(NotNull(oRow.Item("SQL_ENABLE"), "")) - oButtonProps.Enable_SQL_OnLoad = New SQLValue(NotNull(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) + oButtonProps.Override_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL2"), "")) + oButtonProps.Enable_SQL = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE"), "")) + oButtonProps.Enable_SQL_OnLoad = New SQLValue(ClassAllgemeineFunktionen.NotNullString(oRow.Item("SQL_ENABLE_ON_LOAD"), "")) If Not IsDBNull(oRow.Item("IMAGE_CONTROL")) Then Dim obimg() As Byte = oRow.Item("IMAGE_CONTROL") Dim oBitmap As Bitmap = ByteArrayToBitmap(obimg) @@ -980,7 +978,7 @@ Public Class frmFormDesigner Private Sub MenuItemAddColumn_Click(sender As Object, e As EventArgs) Handles MenuItemAddColumn.Click Try - Dim oGuid = clsTools.ShortGuid() + Dim oGuid = ClassAllgemeineFunktionen.NewShortGuid() Dim oColumnName As String = "colNew" & oGuid Dim oColumnCaption As String = "New Column " & oGuid If DatabaseFallback.ExecuteNonQueryECM($"INSERT INTO TBPM_CONTROL_TABLE (CONTROL_ID, SPALTENNAME, SPALTEN_HEADER, SPALTENBREITE) VALUES({CURRENT_CONTROL_ID}, '{oColumnName}', '{oColumnCaption}', 95)") = True Then diff --git a/app/TaskFlow/frmMain.Designer.vb b/app/TaskFlow/frmMain.Designer.vb index eff8cdb..b253692 100644 --- a/app/TaskFlow/frmMain.Designer.vb +++ b/app/TaskFlow/frmMain.Designer.vb @@ -83,6 +83,7 @@ Partial Class frmMain Me.BBtnItmNotfications = New DevExpress.XtraBars.BarButtonItem() Me.BSIVERSION1 = New DevExpress.XtraBars.BarStaticItem() Me.barbtnitmsaveLogfiles = New DevExpress.XtraBars.BarButtonItem() + Me.bsitmCount = New DevExpress.XtraBars.BarStaticItem() Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() @@ -289,9 +290,9 @@ Partial Class frmMain 'RibbonControl1 ' Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bbtniRefresh, Me.bbtniMonitor, Me.bbiProfilverwaltung, Me.bbiKonfiguration, Me.bbtniGrundeinstellung, Me.bbtnitemInfo, Me.BarButtonItem1, Me.bsiUser, Me.bsiLicenses, Me.bsiUserLoggedIn, Me.bsiVersion, Me.bsilastsync, Me.bsiDebug, Me.bsiMessage, Me.bbtniMetadataFile, Me.BarEditItem1, Me.bbtnitDashboardInv, Me.bsiGeneralInfo, Me.bbtnitmGhostMode, Me.bsi_GhostMode, Me.BarButtonItemGhostMode, Me.SearchItem1, Me.SearchItem2, Me.BarStaticItemAppServer, Me.bbtniCW, Me.bsiInactivityCheck, Me.BarButtonItem2, Me.BarCheckItemAutofilter, Me.BarCheckItem2, Me.BarButtonItemResetLayout, Me.BarButtonItem4, Me.BarButtonItemExportExcel, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItemWFSingle, Me.BarButtonItemWFGroup, Me.BarButtonItemFileLink, Me.BarButtonItemMassValidation, Me.BarCheckItemShowSearch, Me.barItemGridFontSize, Me.BarButtonItem8, Me.BbtnitmAHWF1, Me.BbtnitmAHWF2, Me.BbtnitmAHWF3, Me.BbtnitmAHWF4, Me.bbtnitmLanguage_Change, Me.BarButtonItem10, Me.BBtnItmNotfications, Me.BSIVERSION1, Me.barbtnitmsaveLogfiles}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bbtniRefresh, Me.bbtniMonitor, Me.bbiProfilverwaltung, Me.bbiKonfiguration, Me.bbtniGrundeinstellung, Me.bbtnitemInfo, Me.BarButtonItem1, Me.bsiUser, Me.bsiLicenses, Me.bsiUserLoggedIn, Me.bsiVersion, Me.bsilastsync, Me.bsiDebug, Me.bsiMessage, Me.bbtniMetadataFile, Me.BarEditItem1, Me.bbtnitDashboardInv, Me.bsiGeneralInfo, Me.bbtnitmGhostMode, Me.bsi_GhostMode, Me.BarButtonItemGhostMode, Me.SearchItem1, Me.SearchItem2, Me.BarStaticItemAppServer, Me.bbtniCW, Me.bsiInactivityCheck, Me.BarButtonItem2, Me.BarCheckItemAutofilter, Me.BarCheckItem2, Me.BarButtonItemResetLayout, Me.BarButtonItem4, Me.BarButtonItemExportExcel, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItemWFSingle, Me.BarButtonItemWFGroup, Me.BarButtonItemFileLink, Me.BarButtonItemMassValidation, Me.BarCheckItemShowSearch, Me.barItemGridFontSize, Me.BarButtonItem8, Me.BbtnitmAHWF1, Me.BbtnitmAHWF2, Me.BbtnitmAHWF3, Me.BbtnitmAHWF4, Me.bbtnitmLanguage_Change, Me.BarButtonItem10, Me.BBtnItmNotfications, Me.BSIVERSION1, Me.barbtnitmsaveLogfiles, Me.bsitmCount}) resources.ApplyResources(Me.RibbonControl1, "RibbonControl1") - Me.RibbonControl1.MaxItemId = 56 + Me.RibbonControl1.MaxItemId = 57 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageTabelle, Me.RibbonPageAktionen}) Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemProgressBar1, Me.RepositoryItemTrackBar1, Me.cmbGridFontSize}) @@ -721,6 +722,13 @@ Partial Class frmMain Me.barbtnitmsaveLogfiles.Name = "barbtnitmsaveLogfiles" Me.barbtnitmsaveLogfiles.Visibility = DevExpress.XtraBars.BarItemVisibility.Never ' + 'bsitmCount + ' + resources.ApplyResources(Me.bsitmCount, "bsitmCount") + Me.bsitmCount.Id = 56 + Me.bsitmCount.Name = "bsitmCount" + Me.bsitmCount.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing + ' 'RibbonPageStart ' Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3, Me.RibbonPageGroupBasicConf, Me.RibbonPageGroup7, Me.RibbonPageGroup4, Me.RibbonPageGroupAHW}) @@ -847,6 +855,7 @@ Partial Class frmMain Me.RibbonStatusBar1.ItemLinks.Add(Me.BSIVERSION1) Me.RibbonStatusBar1.ItemLinks.Add(Me.bsilastsync) Me.RibbonStatusBar1.ItemLinks.Add(Me.bsiDebug) + Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmCount) resources.ApplyResources(Me.RibbonStatusBar1, "RibbonStatusBar1") Me.RibbonStatusBar1.Name = "RibbonStatusBar1" Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 @@ -974,6 +983,7 @@ Partial Class frmMain Me.DocumentViewerBarManager1.DockControls.Add(Me.barDockControlBottom) Me.DocumentViewerBarManager1.DockControls.Add(Me.barDockControlLeft) Me.DocumentViewerBarManager1.DockControls.Add(Me.barDockControlRight) + Me.DocumentViewerBarManager1.DockWindowTabFont = New System.Drawing.Font("Microsoft Sans Serif", 7.8!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.DocumentViewerBarManager1.Form = Me Me.DocumentViewerBarManager1.ImageStream = CType(resources.GetObject("DocumentViewerBarManager1.ImageStream"), DevExpress.Utils.ImageCollectionStreamer) Me.DocumentViewerBarManager1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.PrintPreviewStaticItem1, Me.ProgressBarEditItem1, Me.PrintPreviewBarItem1, Me.PrintPreviewStaticItem2, Me.ZoomTrackBarEditItem1, Me.bbiDocumentMap, Me.bbiParameters, Me.bbiThumbnails, Me.bbiFind, Me.bbiHighlightEditingFields, Me.bbiCustomize, Me.bbiOpen, Me.bbiSave, Me.bbiPrint, Me.bbiPrintDirect, Me.bbiPageSetup, Me.bbiEditPageHF, Me.bbiScale, Me.bbiHandTool, Me.bbiMagnifier, Me.bbiZoomOut, Me.bbiZoom, Me.bbiZoomIn, Me.bbiShowFirstPage, Me.bbiShowPrevPage, Me.bbiShowNextPage, Me.bbiShowLastPage, Me.bbiMultiplePages, Me.bbiFillBackground, Me.bbiWatermark, Me.bbiExportFile, Me.bbiSendFile, Me.bbiClosePreview, Me.miFile, Me.miView, Me.miBackground, Me.miPageLayout, Me.miPageLayoutFacing, Me.miPageLayoutContinuous, Me.miToolbars, Me.PrintPreviewBarCheckItem1, Me.PrintPreviewBarCheckItem2, Me.PrintPreviewBarCheckItem3, Me.PrintPreviewBarCheckItem4, Me.PrintPreviewBarCheckItem5, Me.PrintPreviewBarCheckItem6, Me.PrintPreviewBarCheckItem7, Me.PrintPreviewBarCheckItem8, Me.PrintPreviewBarCheckItem9, Me.PrintPreviewBarCheckItem10, Me.PrintPreviewBarCheckItem11, Me.PrintPreviewBarCheckItem12, Me.PrintPreviewBarCheckItem13, Me.PrintPreviewBarCheckItem14, Me.PrintPreviewBarCheckItem15, Me.PrintPreviewBarCheckItem16, Me.PrintPreviewBarCheckItem17, Me.PrintPreviewBarCheckItem18, Me.PrintPreviewBarCheckItem19}) @@ -1799,4 +1809,5 @@ Partial Class frmMain Friend WithEvents GridViewWorkflows As DevExpress.XtraGrid.Views.Grid.GridView Friend WithEvents BSIVERSION1 As DevExpress.XtraBars.BarStaticItem Friend WithEvents barbtnitmsaveLogfiles As DevExpress.XtraBars.BarButtonItem + Friend WithEvents bsitmCount As DevExpress.XtraBars.BarStaticItem End Class diff --git a/app/TaskFlow/frmMain.resx b/app/TaskFlow/frmMain.resx index 056a786..a9a6a92 100644 --- a/app/TaskFlow/frmMain.resx +++ b/app/TaskFlow/frmMain.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw - CAAAAk1TRnQBSQFMAgEBAgEAAUABCwFAAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAXABCwFwAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -190,26 +190,26 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA1dEVYdFRpdGxlAEFycm93O1JlY3VycmVuY2U7UmVm - cmVzaDtVcGRhdGU7UmVsb2FkO0V4Y2hhbmdlhrRdSAAAANJJREFUOE+lkrENwkAQBI1EATRg0YFzirDI - SMgdIkeQ0wQlkJKZjH5o4tl9/Z5O6B6BCUY67d7tv33fpJT+IhR/wYr+fBctGMEEngXW1OjlvlrAAhxA - qnADGxAGrEAPGHICA1gXWD+AQtooYF8aGGK68zugkFG6TA7pmjlEDR7ovAn9SVo0LCwk8IyPJoeP18sS - dfUQfz2uiuIgzcPm4tswdd/APdPgj+qkO9+H2Of5Bj4Srkgh72vcAYXYnA8gfCQKidiC3FsLIPOe8lxC - 8XtS8wL/7IdaesUzOwAAAABJRU5ErkJggg== + cmVzaDtVcGRhdGU7UmVsb2FkO0V4Y2hhbmdlhrRdSAAAANJJREFUOE+lkjEOwjAMRYvEAbhAxQ26c4gv + Nhb2jqgT7L4ER2BlqzfuwyWCfuVEbpoWFYYvRf72ixO7CiFU/2gSWKt0gGhUDdEOoj1E3yaeGaM35M0B + NhC9QDTM6AnRwxxgB1EY5AbRFqJ7E88vB6lLgLMlEDJ6p/mNg3QjgBX5VpEDLI+d0O8ToFA8gRS8pEWT + xdfHfbt0iW+Po2KwzVs3P4cMHfoEzpkGP6opADwkPc8ncEk4ogjJx3hykFSX38AliZCSjt82MXayfpV/ + 1SSwVh//7Idal7KmPwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA1dEVYdFRpdGxlAEFycm93O1JlY3VycmVuY2U7UmVm - cmVzaDtVcGRhdGU7UmVsb2FkO0V4Y2hhbmdlhrRdSAAAAc5JREFUWEfFlj1Ow1AQhFMEmnRIFCgUFCDl - BNAlJ/BVUtImQkIcAW7gA9BwgHTUqSgouAK9mUHeaN9mXuwQ8VJ8Sjxvdnfkv+dB0zRHRYolkWJJpFgS - KZZEijmqh7cJmIMarMF3C/9T49pE1eaQYgRNx2AJPkDTAT30jlWviBQ9aHQLXkEc1AVrpqqnR4oGGpAL - 8AnUkC5WYGcIKRIUkqr9vQIW4h0swAyctfA/Na7FEDwT2cshRYIiDmcDH+IR3Cg/4Rp4ATHEUvnJlnBf - Pw9RYMMNC3ES/RF4RiCG4I0pn47kAMPPYYzDjcp7dwEvz0S8HHPlTQ5gyg039gnBe8LX1sq3+QND13Cj - Vwj4eGP6urXymbnvcCMJweOw3pfqoOIDQ/zWbxp4sMh3uzfPlC8C396XcasJgYEbiy9YKJ8C3q4QyZlL - ig2YuKv5Ij5S2RdQBN5ciIqPuvcmhQaM3HbjzseXy0j5PfCcAhWCw4fRnxx4UMAt1TcgDNH1Kn4C18CH - SE67R4oERfwGUNtwn83oC/gQcgaRooHCKeCWGkP0gSEugextSNGDBgzx1w+SO9XTI8UIGh3vk8yDpsf5 - KP1PpFgSKZZEiiWRYjmawQ//5PL6OeAKogAAAABJRU5ErkJggg== + cmVzaDtVcGRhdGU7UmVsb2FkO0V4Y2hhbmdlhrRdSAAAAcFJREFUWEfFlr1NA0EQhR0YEmdIBMgEBFhy + BZDZFUwrDkltjYQoATpwASRTABmxIwICWiA/9ND6NLzZ+7PFOvjk07v5ed673blRVVWjUxKE0gShNEEo + TRBKE4Q2RG0uaitR24raTtS+E7iGhntzzmsjCDlEbSpqG1H7ELWqA8Qgdsp1cgSBEbU7UXvNNOoCOQuu + xwSBmoMrUfvMNOjDW5eJIFBzSb83zsS7qK1FbSlqFwlcQ8M9NoGVaHwcQXAG0BwFvIlHUZtxrMuZidpL + xsSGY/cE4WH7PHbN9+xNnHE8I2qTjAm8mNndwc0vM81rE5zcRFoJfhwrjgOc2NT8EBN4J3zulmPAkOaD + TKQX0+ftOKY2MKB51sQB+XWdo5KPNPGbH5YkFcPZ7oOXHJNjgInafCiSCmGw+IQ1xzTRw8SflQsFUhFM + NZ+ELdV4ADEtJgRb3ceG5FQAY5cnHw6XCccyonbujnFuPub4UMAVwkjlfwATjSuRDqAnUbslE41bNwiu + GL4BcmO4zzD6IhOhfqeBZGKRRiqb6ANMXLc17zTgTORWogvk3HM9Jgg5TvpJ5jnZR+l/EoTSBKE0QShN + EErzA//k8vrkws0EAAAAAElFTkSuQmCC @@ -219,20 +219,19 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEZpbmQ7SWQ7TG9jYXRlO1NlYXJj - aMjN118AAACCSURBVDhPtY7REYAwCENd0DUcxGOJbuJ22KjpUSy13unHOw0JoZOqFuZ1UzIyB5WIgtEc - NEM2HM2JL1h80OrM4XMHfFPgQoUnD4TXO1SvCC9cdH1bMHqdlFf8VwAzf0nlZV4XNLEFN2ACEVGD12mk - gEv8t/oM9XALXreXLFeYOC1pB/JUiL0FdxNpAAAAAElFTkSuQmCC + aMjN118AAAB6SURBVDhPtZPbCYAwDEW7oGs4iGQJN3G7FKVXkksTAtaPA+bRkzZgU9UGtuNSUMnfuCBq + jPJOYJtsM+dYwoKdG+nwU18voKZM4GoscNMT3C3CCYO0bgXV6eC9xX+CsRvwWTAlXSK2LCJq4PisCHAI + 3zb2P8aMFYL0CR3yVIi92aeygQAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEZpbmQ7SWQ7TG9jYXRlO1NlYXJj - aMjN118AAADxSURBVFhH7ZJRDsIwDEN3Qa7BQdAuwU24XUZQi1zPrbJ1G2Lax5OIcRxTMZjZT5HikUjx - SKTI3B4vI5Rn5mOPQopMNDjqQ6TIRIOjPkSKGQ5klvoUUsykgDuGIeRTfHazTyHFDIZUQJ/iKvDHBSio - RtiL2YgUnbTY+vVRmq8gRQeXO9mvAHlrLCtAy5vD94rBScYtnp6RL1EMDpo35mQFKnstrgK7FwjBezPh - bfIDqwqM42hL8L0ixEkHugqgLuYn+r5fZNKB7hdwTc2o++cixOFDNcTeSQr0kIP5EM6o+2cZtBYMRo3m - 9p+whxwcxcyGCV++4POOhQ6sAAAAAElFTkSuQmCC + aMjN118AAADRSURBVFhH7ZJrCsMwDIN7wV1jBxm5xG6y23l0UDCS4jlN0z3Ijw9qIStK6GJmyych4WxI + OBsSFJfbwwDlIR96FCQossFZn4cERTY46/OQEAUirT4FCaLAFQMxGHXHaxdzDyuw/YxCnwX+oIAIU6S9 + mJ8tEN0+S/gKJPxUAfDWaCsgAg4Fz6sVCG++E/kSs8DuApW9iFlgeIEUuEdCT4FSirUwrIDXxXwfXmAL + V7PXowJvEXvyQJy/v0AP6kCcvb5+U0gPPthrMMc/YQ/+xhnWnSdfvuDzi8ClJgAAAABJRU5ErkJggg== @@ -242,31 +241,31 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABHdEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO0Zp - eDtQdWJsaWM7U2V0dGluZ3M7T3B0aW9ucztDdXN0b21pejtHcm91cDtUZWFtaQsTiAAAARBJREFUOE+l - 0z9qAlEQx/E1Bi1t7D1BCgXb3EBT2nkBmxQSW5HtPUCKdIGcwL2CFnuI4A0EFSRuvr9lHsyTlSWk+PCY - cf68XTUpiuJfKpN/kaRpek8D7ziYDzwgqouCG11sUThDRHU+uLfxB2HABL4nGqDpfpsot3PxAr4nGqDp - vlmU+0SONnx9yQeaHg0YrbLENNHH2U7F5Wd+QAdHNZqDFWnQG2a42qm4XOAHyBxhwJQCbVLxxRoCxcpH - Ax7xhGfToEDX1UY1rdGzU7HyfTXq5SzxjT1eTIsCPbOurYYeuVedFit/1oAvhGt77fFqM6Co9ganm8Yg - p6DuHTTD81eioP5bqPqHBSpw/O/AclnyC9lwIPbajFPHAAAAAElFTkSuQmCC + eDtQdWJsaWM7U2V0dGluZ3M7T3B0aW9ucztDdXN0b21pejtHcm91cDtUZWFtaQsTiAAAAQtJREFUOE+l + kzFKA1EQhjdGTJnGPiewiGDrDV4s7XKBNBairTy+3gNY2AU8ge8KSZFDSG4Q0EDQlT9MZHbUsGLx85jZ + +b+ZnX1b1XVd/UffEn9VBfymDvAArEyPwEGsiyavY2AG1E5nsa5Nx3cHuNwHEN1323Wcu/h2H0D0CFBu + CiyAXjRHgOgNQMqlMnVTLsOUy9pOxdtnHtAHXh1gZUUC3aRcJimXDzsVbxvEka4dYGydVLwxw06KlW8A + DoET4NzUsXHVUab7lMvATsXKD2XUcu6AF2AJXJiO7J01tgwD4MogipVfC/AUl2fqjfLzaZsJ3n4wS4sW + O+jGJTbU6ivEv8vL3QPJ34Ov/CfZcCD26DMX0AAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABHdEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO0Zp - 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 @@ -276,25 +275,24 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAEJ1aWxkO1NldHRpbmdzO0N1c3Rv - bWl6O09wdGlvbnNZCaCYAAAAvklEQVQ4T72RQQoCMQxFB7qYY8wZ6j0E7+HOxRxAu/c44wFcz1FcFxTj - /5DBBmaa4sLAIyTk/6ZtJyKGlJI4mHlTEA5txX8MgBdm3hSP+0lKlljptxlsUWpaDF5gBv1CqfEM2Ov2 - 51s4XKYdctYcWgx4MsUCRnAEb82sIakbzBgKOvykoID16Bn0ui5PpOgKBs2s2Y9VAwxkwLUpGNDjlWjC - mv3sGUTw8wbuG4BgDNZQQdsv1ICA1+GbxG9fug/ssNACwjT8OgAAAABJRU5ErkJggg== + bWl6O09wdGlvbnNZCaCYAAAAvElEQVQ4T72RTQoDIQyFhVnMMeYM9h5C79GdizmAdd/jNAdwPUdxPdBS + yysRtPgzUmjgERLNl0RFCEGkstaGjrL7WRABNfsP4LuoYHWAdzqkilbIHwPUNAp4eqc37/QcNQJATihD + 0/l6PylDO/vpCACdURyUoVUZuihDL/aIP6u0ABs68eUHg6IQrz3AzOOiI4puytDCHjHysgnAzjw2ChZe + CRDEyO89gPxlgu4b4DwDlDT0Cy3xOngTmebf7LDQAkwPYM4AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAEJ1aWxkO1NldHRpbmdzO0N1c3Rv - bWl6O09wdGlvbnNZCaCYAAABy0lEQVRYR82VPU7DQBSEc4O0UZQ2TZooB6HMRZCoIyFXdFyDE3AAKqrQ - 0keIBkU0EQixzET7nJeXifAPllnpU9azb2d27bUzSCn1ihQjRVGkBnCe9PNIUVC7VQknUvS4HdUmeimk - 6MlGtVtehPT0SDHQuLVeQN5FK6JnRIpGNmjcWi8A/EVTviVSJG8Pl+kc3187lBwar1WdgSYziBSJMjI+ - Xh9Rcmi8VnUGmswgUiTKyHh/ut2Hcuf85bWqM6K3R4pEGTUlenukSJRRU6K3R4pEGTUlenukSJRRRZ7B - 0KP8DSkSTFTmihewcawvru+nYJuZKn9DigRGKizC8AFCRmCM/hJcoT8HKTM3T9aAkc8pO5Ec8BsbGuag - O7AAE3ADPjPsU+MYa1hbLuIk2BBhCi6AuzLjKrB2bDknwYYIU/CZL2HI3akwxcLnHIV6QpCCp30N+Mx5 - iy2Ad2UFZhn2qdn4xOcchXpc0DmGMONp54Hjc7aAFcY4v4SaG2ct5+zfDhlOMFGFergAvmY05WGzgBnG - 4gJ4J2zcarfMkeEEE1Wo518soNdH0PshJN29hlWBYTcfoqrArJtPcR1oCMpdod/+z6gNCKn4d5wGP9ko - qHzFAnr7AAAAAElFTkSuQmCC + bWl6O09wdGlvbnNZCaCYAAABh0lEQVRYR+2VsWrDMBCG/QZZS8iaJUvIg9zYFzF0DghP3foafYJ7AE+d + 0rV7KF1M6BJaSlX+cCrKyQbJsjCUCj5snc73/5Ilu7LWVnMSBPpomsaOAM8FtTRBYIDkFiMOgoCmZ2bR + 6Fp9BAGNFEpuYiKopwkCPYxu2Qb0ko5B19QEAW0gp2Ub0AVHNl0zzkDX1naI76/zlQL6OsdH18428PH2 + dGUAfZ1T1MD788NFFDPHFX2dU9RAKrr2v4HSBl66tl746NpTG3jt2vrocSDDazJ8Eta69pQGIF6R4Rsy + vOza+rZr6zsyvCXDVti6mshB7pQGjiIOoUcyvCPDKzJ8T4Y/BdwjhjHkIPfXRCA8wgBm5QrHgNzlZAaw + 7DI7LTTEztcJhBMMYLcf5J1jiZ0AVmVPhjcC7hFz46upDCxkt2PD4T07gT02po+YcOPIxTOX0xEIJxrA + MUNRbDYnsOkxgJVw4y739CcMzPoKZt+EoNwxjKXYhyiWYp/iFNzPyOvn/4xySPkd/wDZKKh8C7Im0wAA + AABJRU5ErkJggg== @@ -304,27 +302,25 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAydEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO1Bl - cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAM1JREFUOE+l0TEOQUEUBdBfiN4ySDQqKvTfGuxF - pbEIi5DoRcIa/gqovwKRca/MvMw8/zGhODKZd98NpnDO/eX1MVtstSHs4eIdYAxJzipowQmccoY2SNYq - 6IJeDnogWatgAk3LNAXJWgVLaFomziRrFYzgAXqZd/xzJWsV0A50Ae+S3KcCPtkNwjLP2c8YzOHo8fyW - sQo6sIL4zXnmHWeS1QUD2MAd+LXX0Pd45h1nzDCbFJRwhfCbv2G2jAuqaJirigtqNcxRS8HvXPEEp3w/ - tQHvKFEAAAAASUVORK5CYII= + cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAMpJREFUOE+lkTEKwkAQRVOIvcdQsLHSSu3zz+Bd + prLxEB5CmF4EPUNOoHUsVGTly64ky6wbSPHCMPPnEXYK51zRh+8HojFziJ4gevecIbqMcynBAKJXiLqI + G0SHXQRjYzkw6SJYGYuBdRfB1lgMcJYVLCD6NpbZ4+NmBeRoCNhr5f4JeLJnY5l15zMGNhC9eFjH86Rg + BNFddHPW7HGWFMwgeoDoy//2HqJTD2v2OGOG2ZaghOjDeLgUzJZNQWWEclRNQW0EctQ/QR8+p3w/tXIZ + TNYAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAydEVYdFRpdGxlAEN1c3RvbWVyO0VtcGxveWVlO1Bl - cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAfhJREFUWEfF1rFLVWEYx3FBFweHwGhVamnIvdUQ - CmwI+mOiIUIXwV10cQ8aGoVcbFWCiIYgAiVHsWgwSDj+fofzHN7nvV+vDt7r8Fne87zP99x7HZxomuZW - DRw8X9m5jmV5J7/kf+dY3ssLoTtJ9FLcaLiyIc0VtoXu9qKX4kbDhadCQfJSaEcreiluNFzw104x8kFo - Ryt6KW40XPguFCM/hHa0opfiRsOFv0Ix8ltoRyt6KW40XKDQZf4J7WhFL8WNhjuLQqFhfId29b0UNxru - bApFhvEd2tX3UtxouLMmFBnGd2hX30txo+HOfTkRChHP+g7t6nspbjRceCMUI6+EdrSil+JGw4VHQjHi - WdrRil6KGw1XPgoFS7tCd3vRS3Gj4cqCnAmFzc88Q3d70Utxo2HwTE6ljv8RP6M7SfRS3Gj4Enfltfgn - +SRv5Z7Q7IDopbjRcGUSzmpTcJZEL8WNhguP5bM8KM5q/uv/Ip6l563opbjB8JysyDeJ33pPpqWenZED - iTnfWZV5SbPRS3Erhu7Ilvj/vVhY2pcn4q/bluSr0Kx3eJd3XusFHspPoWW18w49q3mnd/e9FDc9nJVD - oQU3wbtno0cvsF4Mj8p69OgFRvnpw2H06AXowo2LHr3AUT08AkfRG3iBccPDccLDccLD8WkmLgAKdExB - J+0x6AAAAABJRU5ErkJggg== + cnNvbjtDb250YWN0O1VzZXI7Q2xpZW50fhE26AAAAaRJREFUWEfFlqFLBFEQxg+0GAzCiVXRYtBuVQQF + Jwj+MWIQmSvCddFiFwzGAS1aFUHEIIhwh0ZRMSgorAy8lXP2e2/XfXtr+JX35pvvd7sbrpEkSeM/yRwQ + SxFWiOWAWB6I5dPxSCyHxLIK5jPECOwQS5LDPshVIrAEynysgXy0gD52W+TjCOSjBW5BkY87kI8WeANF + Pl5APlrAloT4APkogXlQkodm7J7SArugIA/N2D2lBbZBQR6asXtKC0wSyxMo8aGzmrF7Sgsom6DIxzrI + RwvMgCIfOmvz0QLKMSiznIBcZQKzxPIOSlP0TmdsrjIBZZlYnkH5q7uz8xliBZRRYtlwr+SMWLaIZQzM + QWIEBsCZZRCc/aKswByxXBLLFLhL0a//ys3aux/+IjBOLEwsNz3v+pRYhsDsMLFc9MxppkUsE3a2iMAI + sey5/3v2Y1POiWXBPW5lkViuwZyiO3SX7iwkME0s92AR4sthzxG6U3cHBZrE0gHhqtDdzZBAG4Sqph0S + 6OevT+mEBOxwXwgJdO1wH+h6Beomc1A3mYO6yRzUzTcKdExBDdX0MAAAAABJRU5ErkJggg== @@ -333,24 +329,23 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAJxJREFUOE+t - k+ENQDAUhDuKafyzlN9MYQkbWEdiAO5rNEEOlZJ8Cb17l77XCk07XqlFLyYx7/DOGtrJf/yoRCcWsd6A - hgfvKYCFQbgiB94YkgJIdcYnqIkB9GW3rSeA0wQ1NSLDcYa3AOgRmbATc5gI4JicmLOD+ZeA2xYyAmIL - xUMsPkYoukhQfJVTCKm2nR00PLEYjgGJD7/zGDZMp1TRLvGgqwAAAABJRU5ErkJggg== + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAJtJREFUOE+t + k8ENgCAMRRnFabx1qZ51CpfoBq5j4gCYRzSBRiKKh5dAf/tDCwRRC45R1GZRW0VtO2FNDK3IzzeDqE2i + totarIBGDrmFAYHlpqAGucnkMsDVJz1BTTKgr9tjxxgD+PgJNSMiw/FiiwHMiEzYC62sGHBNXkg0nGD7 + xaDaQoNBaqF7iN3XCF0PCbqf8mXy+TPlvPrOB0ynVNG/VjQvAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAahJREFUWEfN - lz1SwzAQhcMRSMXkCpyFPkeggg5aJjWTmqNQ5AoU3CC3yFCZ/TzejGQ/WZKNxxRfxuPs232RVj/ZNE2z - Ku3Hw+GzhJ2xN47GyTgblw6eecd3xBCrckSUGrg33oxvoymEWDRoVc6WnIEb49H4MlSREtCSg1yDGmMG - 7ox3QyWdArnIGdVJGSDww1CJ5kDOyIQywFCV/PIf48nYGrfdM+9UbAi5r9OhDDBfStjnGV2IvXvtxaSg - hjRAx5Y23DYs3uVgNFRsH2q0qwNdaIBlowSKOQaAWpEBNo6ada6m4KUXMwa1duhczO6lAlN4E9KANU0Y - sg8NsIWqoCU5hgbYx1XQkpxCAxwmKigJuhAVk+GMzsWcaCooiRd2VEyGC7p/Y2D1KahuQi/sqJgMURNW - L0Mv7KiYDNEyrN2ITDbbQLQR1W7FJptlYLAVQ81hZLJZBgaHEdQcxyabbCB5HEPphcRkkw0kLyRQeiWb - SvZKBqteSh0C/3IkyBUVhzEDwFAxX8WNKUBLjuuwh+QMOHQsy6ZmnyAWTdvtKUoNOMv9OV2PZvMLsfKg - vDjYoZ0AAAAASUVORK5CYII= + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAX9JREFUWEfN + lzFuwzAMRdMjNFORK/Qs3HOETu3WrgXnInOPwiFX6NAb5BZBJxcvSAqZph0psqEOLzCcL+pboihp1XXd + qiWnH1HLYSNqW1Hbidpe1A6idjzDM+/4Dw1a335AroFHUXsXtW9R6zJBSxva+njZBu5E7UnUvoIOcqEt + MYjl408aeBC1jyDgrRCLmFkGEH4GQWohZs9EZIChyvnyH1F7FrW1qN2fn3nndR5i/01HZID58o0iXtKl + dI7xFugi6CM0QMbmJtw6MMBoeF0EfZxWhzfAsvHiMWoMAH31DFA4StZ5NAWvgW4M+tqkBqheXjTFJQlJ + wJIkTNmmBiihXrA0u9QAddwLlmafGmAz8YJJghwYaK5wSA2wo3nBJDMYOP4rA82noDgJZzDQS8LiZTiD + gd4yLC1EcxjoFaLSUlxrYFCKoWQzqjUw2IygZDuuMTC6HUPugaTGwOiBBHKPZLdy9UgGTQ+lqYk5R6Lo + WH6h6cUkpdnVzLPc5bQlv7HyoLzqqqMwAAAAAElFTkSuQmCC @@ -372,44 +367,44 @@ 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 + rkJggg== iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA4dEVYdFRpdGxlAEhpZ2g7TG93O0Nsb3NlO0NoYXJ0 - O1N0b2NrO1NoYXJlO09wZW47Q2FuZGxlO1N0aWNr36bPbQAAAGtJREFUOE/NztENgCAMBFAWdB0HcAlH - cAW3O1vCNZTyIYFEP14CZ3uYAEzphiNCsB03RMj364QIeQiWF5RFh9+UHcpiy16uyPgXBZz7dwHlRVpV - 4HBH2YFYwLssUP4TVc+7i5ouGNUN30N6AFQmr8/EPoHpAAAAAElFTkSuQmCC + O1N0b2NrO1NoYXJlO09wZW47Q2FuZGxlO1N0aWNr36bPbQAAAF9JREFUOE9j+P//PwMlGEOAVIwh4Nu0 + 479v0w4M8bLl0/+XLZ+OIY4hQHUDoBpRMFYDoBrRMdxmJDxABsDUDW4DYBisEYapZQDhaEQyCGwAko3w + 0IexaWsAqRhDgFQMAFQmr891c2MAAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAA4dEVYdFRpdGxlAEhpZ2g7TG93O0Nsb3NlO0NoYXJ0 - O1N0b2NrO1NoYXJlO09wZW47Q2FuZGxlO1N0aWNr36bPbQAAAN5JREFUWEft0MsRwjAMhOE0SDsUQBOU - QAt0Z2SPl6zNn9xQcsjhG4aV9ZgspZRDYZgJw0wYZsIwE4bu9niXgLX761kC1vb6HIbuOoAG9cWz4U3G - AfVXvgf09wPvnWHo+pAh00JzzAH03xeL3hEMXR8yZNcBKQfQoNBq1wFnOWC22aeZBMOKBoVWq8u6tli2 - +jSTYFjRoNBqtvSYA0QHeAY9Ea/1GYYVDQrDm38fIG2x+Bs6QLyP6oJhpWYfVPmbjS/w0+f1GYZOg6h2 - ygNkr89hmAnDTBhmwjAThnnK8gHwijMDX2l9pwAAAABJRU5ErkJggg== + O1N0b2NrO1NoYXJlO09wZW47Q2FuZGxlO1N0aWNr36bPbQAAAMBJREFUWEftksENg0AQA2mQdiiAJiiB + FujuoiAWOfYeRFHkHAqPeTDBXiuiK6V0v0SEGxFuRLgR4UYE049L6cdF/JNhnsowT+LPcogI5qjofwds + h5nTXIYIJiuKg8A+YHv/Be5ERDBND8ie+fg94LoDuASH3ANaGcBUc9z9jQHBejio5bj7+gMC/hZqOe5G + RBwVuQcE6+EA38kGQH7P8W+ICCj4aECW425EBJP99UGTA97JISLciHAjwo0INyLcPADwijMDMHfErwAA + AABJRU5ErkJggg== @@ -422,19 +417,19 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAATdEVYdFRpdGxlAFByb2plY3Q7RmlsZTs9+42CAAAA - cUlEQVQ4T92P2wmAMAxF3ck5upTkO/O4jJuosSkk1PRl/BIDh5bL7SGdiOhGWNYQIUOwPaEI+MGTTCgC - t4DX44IT/VKy15DCiK4AAKjBrAK51OCyHc4QcRPJcAM7nO3HqZJXghy3IJ+/COLZ5BuCPkAXqoH69KX6 - 0EkAAAAASUVORK5CYII= + cUlEQVQ4T2P4//8/AzL2bdrh69u04z8a9kVXB8MYAiANxIhRzwAcTiaE4V4Cm44No9uEC+M1oKWl5T8O + bAw3AN1EZAxSjA5AYn19fXdhhhB0AToAif35+w9uCFkGIGOSDUAGw8UA9KgjFI3IgD4GEMIAqoH69DDl + dVMAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAATdEVYdFRpdGxlAFByb2plY3Q7RmlsZTs9+42CAAAA - 00lEQVRYR+2SXw7CIAyHdz4TruSD4cmIN+AeXoaL6EOli5DiWoHN4J+0yZcUNn79ljEBwEdhN0dSLMzh - ImEi0IihmTWKRTwswQ0SoZk1ikU8LJHCuWeU/xVogma1kpsY0HPR1rK4oFSAO/B20rzEzwrM//wZGtxK - bmIAN0histZCjb095t57v6ODE7lhhrxiFmgtfPfkzqzEMIEQAiuRGwSDW+kVwEIJ59yNStDh3JdKrBLA - ekhck8QwAY5YYwS4UgEVUAEVWAj0ogIq8BUCWwGA6Q7DQtTyWUCXGgAAAABJRU5ErkJggg== + uklEQVRYR+3SQQrDIBCFYc9X8EpdBFcl9gbeI5fxIu1igtAU87TTMWltCSP8kEjIfCQaIjK/rNjo3erG + DtOrrB0mEmZxCJcUgEPYcAhXKwD3seMCROHLJeXDWw7a1ooDmgPw4a90GEDx/z9xBnAIl3HO0bvO7vK8 + DiGccPhugHSlZ0d/rSK6AWKMVcRKg/+UqxWQVkJ47+85otsXWNYDcVsQ3QC1ugFqSwEKUIACCkBrClDA + XwD2lt4zA8NC1PIUyAvKAAAAAElFTkSuQmCC @@ -493,72 +488,73 @@ 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 + gg== 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 - mfEXvolKuJ+Y6BUAAAAASUVORK5CYII= + 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 @@ -598,29 +594,29 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAQdEVYdFRpdGxlAE1hc2s7Um9sZTu6seyzAAAA3klE - QVQ4T52SvQ2CYBRFia0TuACF0coxbLF1AgvDAJQu4ASG6ACugI07UJlYKvYUeo95H/lASITiRO7Pu8GE - 4HmJS/EeSMlA0TD7UDCQN8w+5AxkJk5iKcb2i3bFrixjIDUxE2gH2g10ZSkiMTHkDRIGIhNDiBgIxcsz - /4Wb0P2ns5l94CZwA1sz+8BNNTAV7ntYmNcGGR263FQDsBOEezEyzwePjA7dr+8X5uIqKBzFSkwMnvHI - 6ND9GYC1eAiKbZDRqW78Y8dG3EXzGI+s1q8JD762g7gZPOM1enHwAUbOxAVvaZeAAAAAAElFTkSuQmCC + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAQdEVYdFRpdGxlAE1hc2s7Um9sZTu6seyzAAAA60lE + QVQ4T52Svw2CUBCHia0TuICF0coxbLF1AgtzA1C6gBMYowO4gte4A5WJpYc9heYz7xHEU4jFF7j7/SGP + vMRUSlN5/EmZmErhCF0pKMgdoSs5BacwHExlZir98GSOxm/aiYJdGMamwhxhjgXftB1D1vKVX1pGQeqc + rSspBUNTuTtiG2SG8UxHx9AGmSQWrBxDG2SqglHtPkwbf7wOGh68ZKoCWAdxYyo9J8wODQ/e175umJjK + ORj2pjI3lUGAd3ZoePB+FMDCVG7OeSNoeKpMswCWpnJ1wuzQ3vzNcITbtjWVS4B3dk1f8gRGzsQFM10V + NAAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAQdEVYdFRpdGxlAE1hc2s7Um9sZTu6seyzAAACmUlE - QVRYR8XWv29OcRTH8ZakQhlEikhFiEQZxM/QRGNoRJoKmyK2iviRpsEmERaDwWCxmQ1iaewW5i4MiH/B - ZL8+72++5+bcb8/zuH2eG4bXzePecz7nVO+9fUaqqvqvwpPm16eH83Ja9siocG4YZJBF5jwzwsFGRUvy - LLsnV2VWTshB2SXbZEw2ZHzmHNeooZYeesmwvCVmhIONihZdQ9cWmREONipaKJq6tMCMcLBR0VzR1KU5 - ZoSDjYqmi6YuTTMjHGxUNFU0tfFUbos9Qaasm2KGDXot3KGnxD9uW+Sy3JS78kgeZ3zmHNeomZEjslPI - IItMsndIucCEX+CbVNkXeSfP5ZZclKPC87tVNmZ85hzXqKGWHnrJsDyyywXuSJptC3wWa+ga2eUCV6Sx - wHuJmrtA9l7xC/DraSzwSqLmLpB9WGw4989uaSzwQHzTR+FO3pfxmXO+pm0d2WfEFrguzGwswO/Eh56U - VORwzoe3rSObm9QWYJlU6xfgv8ga+Cl8oMe19daRfU0Yzh+37ZLq/AJYFWvqCplk3xcWuJD/HS7wRqKQ - YZDJDcfwZZmQngvwcohChkHmcWGB81IPR7nAMfktUdAgyCLzktyQzdJ3AaxIFDYIsvh2xHcKvh35OUm0 - AHdpFDYIsvbLpPgZtWiBA/JdosD1IIOscfH5DdECeCE+rN/zbvxzDzL++i261wL8Tf8pFtbrjWfKNx+9 - ZNQ1zOglHXxx9kQs0Jbgp7R3fr93P72NvHKolw5lg/C6/CA+uA166letKYd66VA2ZHzT+SrRoAi19KzJ - Kod66RA1ZWelzVNBDbVRxpqhXjpETc4heSvRYHCNmqg3KYd66RA1FTbJOXkpPzI+c45rUU+tHOqFJ/+d - auQPQiXhdkHlGrsAAAAASUVORK5CYII= + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAQdEVYdFRpdGxlAE1hc2s7Um9sZTu6seyzAAACdElE + QVRYR8WWO4sUQRRGVwXFVyDiA1FEEVwNxCe6oBiIyLKimatitiI+WMTPTBBNDAwMTMyMDcREzE2usYkG + Kv6FG5mPHKheau5Uz9TMNGxwoKm+99TXM1XVPdPr9WZWk4GBHDctuOmMm/a4aY2bGJsGHLhwLtQEWHbT + y8RDN91w0yU3nXTTITftctNWN61309oE14xxjxpq6aEXR+NbrgmwlDV0zVJNgMVCY1cs1gSYLzR2xXxN + gLlCY1fM1QSYLTSO4oWb7mU7qCHWza4EcNO7tEJPh+22yU3X3HTHTQ/c9NRNzxJcM8Y9ai646aibdiYH + Lpy4txcC7MgD/HJTL/HDTR/d9MpNd910xU3H0v7d4qZ1Ca4Z4x411NJDL47GhzsGuM8D5gG+ZQ1dgzsG + uB4DfCo0dgXufSEAf09fgLeFxq7AfSSbnPWzOwZ4Epq+ppW8P8E1Y1FeU4f7bBbgVrPI8wD8J7n0VOFF + wlgur63DzSJtAhBmIAA/UdPAU0RpA/fGrcN9M03Oy21bKQB8Dz9dF+DE/SgFuJwHjQHeFwTTgpMFx+SP + OXyGBeBwiIJpwXkiBbgY/6oY4Lib/hUkk4IL51U33XbTxlEB4HNBNCm4+Drim4Kvo77J2wKwSqNoUnAd + cNPeOPGwAAfd9LsgGxccuDbHSUcFgNdBNmy/N+T7HnCM/IpuC8A7/W8mazvxGuLJRy+OvonaKAWA5+GJ + 4pk/7Oynt88XJ60JwHH5JYhroGflqJ0mAPCl87MwSRvU0hM9A5PWBoBzlbuCGmpj/9QB4LCbPhQmbeAe + NbGvswCwwU3n3fTGTX8SXDPGvVg/XoDV5D9CJeF2Ag9R6AAAAABJRU5ErkJggg== @@ -941,68 +937,69 @@ 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 + rkJggg== @@ -1011,60 +1008,62 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACF0RVh0VGl0 - bGUATWVyZ2U7TWVyZ2luZztDb21iaW5lO0dyb3Vwu4FGogAAAt9JREFUOE9tk3sslXEYx3/lOkW39Xfl - XilbctxOWqU1nTKRS6mUYohCy73L2cqxydzlPpOOZpysJHScU6QsYxg6hLFiStSqVVT79vwOYs2zffb+ - 9rzP97P3ffa+bK6WEcuXQGMOfuYzS9byhAqhMlG2CxKZEJJKunIqOELcJGILBUo+F1MgYNfu2LErJbYs - npgvDUmlENN/3uPH73FiFN9/vcW3mWF8nRnEl+l+ROZag+Y0AbB5ovKtZ9NUmjfKHfDpZw/efC6EaioH - PR/T0fUhGe3jEvRNFiEsYwcXaC8WBCZZzqaptMRSewxOSfFk0B8v38WidUyMxpFwPOrzQeNwBIJvWXKB - zmLB2QSL2TSV9tUSW/RPFqOs02mBDidICeVQKM4lbOMCfUJ3EVoEXy7TiS0SoHcihwL7/pHdsBtpjx1R - rPREWLoVIrKtEM7JtFK/0mmxRRNltblA93LeTnSNp+Ju+16UzpEvP4K2sSSoJkvwoCUOQ1P3MTBZQU9a - BtVEKXyvb+VPpacWhGdZoW00EXV9/qjt80ONyo8EbngxIoZ84AKK5N6o7Q+kvj+qX/uhvj8EPnGbuWAl - F2h7RZkrjsWYwzvaDHQmzBAg2Y7MGhFSq/ejQOGKqu5TKO/wQEmrM6RtLvCKNJvfi3oROsQKghs562nL - qOkNQF6zEDnPHdTcbnJAdpM9ilsO4GiEKRcYEIy5XzJhdaoQVtMbxB52B/CWvq94C2SdJ5HVaIesZ3bI - fGqHDKWtmtzmPXC9aMwFq/gwcw03ZlVdfkzW4csq2k/wlsHxeHOUtrojVWFDCJDaYIOUBgFS5NbIUAjh - EmLEBav5MKNhdq/Nm0lbPVjpKzfeMvCMNkVhszMylY5Ip0CawoEk9iSwRXK9DURBhgsCzyhT5hFlwlxC - jQkj3tJz9t/YePi8IQ4FG0LEoYAocJaDgZvgdGYD/w743pYs/gvzm2uItcS6/+A9WjbT+AsvV70H8klL - UwAAAABJRU5ErkJggg== + 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 + RK5CYII= @@ -1357,58 +1356,58 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAA90RVh0VGl0 - bGUATm90ZTtUZXh00fiaTQAAArRJREFUOE+lk/lLFHEYxhWP0jW1svobgqgkf5HI1S7v1dxVO+hgIyIt - S1fJK20jTU3NLDUFS8rA1MwI8th1XXU81iuzBCmMwHLJ1JVSd3UHnt7vuiPWrw18eN53Zp4PwzBjA+C/ - YIctYUfYEw6M3UExotCM5uzgTNVMyO2eZf9M7Y8DCa+C6JqjFXavrSCw6y+TagcrZBgql2GwXIrc/Dyc - LepCdNEInvZNoZKbhFjRAF1JOPpLI8DdD+uknoMgcGQlXl8PfqqWqEGU8jUq+mYhzR/Ec90U0hrG4XXp - BSbUN7AyUYq+B2Gs6SQINgyQlZ+qw1JrIBaJwMRqlHRP43TlBPzS1PBOeIOdsixwuV4wDV9Db7GENZ0F - wUbdw3CYv5OgLQyLagnyC9MRcbMRZ6omIHs0jr3yMpw4Hgn1LS8s9MejuzCENUWCwKm3OAxm9gRamQWD - JgqxV6/AMzIDuyRJkEZG41ncHnAF+zHfE4euu0GsuUkQOPfcCyVBPYzcKSwRLOfU0egqEKMuaR9qFZ5o - UnrjY1UADL3x0OYEsqarIBBxBcGrAt15Qr7Gr65z0DefxKfaYxirluBLgwwz3QnQZPmzppsgcOnMC4JZ - 3wDj0GWYCCFNQ7FY7I/BPHcRMx0XMK2RY06XSu/iMGu6CwJXbU4ACRphGk3E8qgCpg+JNFPSzjC+V8D4 - LgELw/EwjmVBrbQINgsCt/aso+B/tmDl8x0Ly5bMtu4ss+nc6m7+WgpVxkHW3CII3DXKI+ANHMzfnlh5 - vC6t8yQlwetr0ZLux5oeawJV5iHwv0dI0gF+njBowc+1U2qINprVhIpoBT+rwkCF/C+B6GWSD9eS7msx - N6cRqb6EGM0plCliNCWL8TbZB03XV6mJ8+6h3tp3wP5EF2Ir4UFsW8f2f9hhTVfCHoDNH86SXiJtqJBq - AAAAAElFTkSuQmCC + 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 - AABJRU5ErkJggg== + bGUATm90ZTtUZXh00fiaTQAAB6BJREFUWEetl2lUVOcZx69ZTNJs7emWNu2X9pw2p7bNSTUu4IISQUUY + lhkM5aABIYkFNBK2Qq0oRSyCCAKiQMKJmAOIKAMo+74M4ABBQRSIimwzLCoBZr38e9733oF7J5DkQz/8 + zvM+/+d53/u/d967DNP5mStjTgchgyATky5lOtJJlDHtaVJGOTqzAMMwKxiGeYZnhXVANtN2zpnHiWlL + cWJaUxyZ1mRHpoWQJGEAMPSA7GTND+LwF31M7lfjTE7nODngswzDvPzmH9e+sS+2NskjrmFIFlU+sis0 + L/l3G6SvEBPm84W0JPIGyJkSoSNDtqUjXdbSkS5Du4k0DmWadIG281Iokp1wLdYNoTEZ8I6vR2hWF660 + jyC75RE8Y0sRFBqCpkQJWpMd0ZrkiJYkCcdZCRRnHVoUiZItigQHchIMvZzUQLps9GlvFtjJmu9Ep6pE + l1IO31QFIvLuYP9ZBcp6J1B0ZwLJ9YM4UXwPFt5JePrwBu3XDpWI5j/u/gLNCfajzWfsOQPt6VKGnapl + yJmyU7XQtHhjrlYKzTKMlzgiMvlzROTfQXz519gTXYmi2yrEVz9A5I1+BOV0YfX7xzBcYI+5GilGLtqI + 5hu+TkRT/G7we4ahm4kkygtS6EbKMHbZdllGL9vizmfb4BVbieS6R9if1AxJVDU+PFOB4/K7CM69hc0H + M+HkLEXbGUsMZ9vgXoKlaI1vvopGQ5wdMUA2K8MoL7hQAzfPu4CdaoCm/n0eN8HYlLvhUaET3E+WIrH6 + IVyjq+AQ2warwHy845GAVW5x+L3dv3Da+y9oTrDCdKUrRi/tFK1luH8ODbG7TAZWMMpU3kCqM9jHjdA0 + uFO0je7QNC5GE2OlMvhHJiIg8yZc4xtgHZCN9T5psA7Lh+Whi3jbxgtJPqvQlGAFVbEzRr60E803PEhF + fcxOYoDcRSvofUoGbSnO0I1VYSzfgaLiozAnDOXuRs5JJ9gGZMEtthIOsfWwj6nDpqA8/EFyDD42f8J5 + z7dQenQdejO2426ilWitmVtxqPvvDmLgOc5ACjXwTGuyE9gnCmibPaEhKLioVXhSjUSTpip3R3aMI2w9 + AvE3t5NY5XwMq3fsh5/9X5Gy/8/I/nQNqmKs8OCqCwYy7aBp/mBhHcNgBmqibRcNmJ5gLUmOYJ+2Qtvi + zeNDo6bVG1oh5C5p9oaq0gO1STtwMXgdLvivQcrHb+Nzv3eQHfgurh2xQH3CdvTluuBuxm7MNHpBo+Dm + GgYzUR1lQww8LzTwrCJRAp2qDiq5DKpCGR9duSgnUTAudMVYgQyP8lzQlbYTVSc2o+I/m1ASYYnC8PUo + ibBAY9xWdKbaojNuG0YLpAtzZ7rPojpyOzGw0nQnUAPNCRKw00rolL7QKv242O4LXTsXtUpf6JR+4vFN + X8y1HsDTpo+gqvTCcMk+PJC7o++KGwau/h1D1/fi/iUX2s/N8YVh+EtUHX+PGHhBaOC5pnh7sNMd0HUc + EtPJRa25vgSzbf6Yqv8Y49U+mKj5EI8bDmAkzx3adrLOQdpjHMlGRYQ1MfCiyEDjaXvoxpuhurFPTIlZ + vlyNH49d34uRIg+MFu+lWl+aRNQ305uO8qPbiIGXhAaeb4jdDfabLuhuhVD0lGDBmNN1t4N5nUSBvlAL + gbbLNC8YY3Ivvsb1GMfyUXZkKzHwMv8soAZW1p+yAztzG/qecOi7w6HrDoOum4xJDKMa1XvCKFyPCV6j + OjdP18P1jhX6LOo9YTCqC1AabkUMkFc2NUAuw8r6mF3QTd6EuvIARwUfzVlOX4b+zD2iOTP9WSgJ20IM + vCo08EJt9E6ws3eh74uC/l4UF/uiYDCNBdq3cvOaQB8r8RdpxokSXA+lBl7jH0bUwIs1J3aAneuDYSCG + ojeLYv0UjcIeIcJeVVmAqGacrMD1kE3EwI+FBl6qjrKFfqoL4/XBFDUfzVlKN2lL1foveYry2ftXUBy0 + kRj4idDAj6oibTCveQDDYDIMD1M4Bs2gWrJI05t0Uf9ij6oqnM852CcNKAq0JAZ+yj+OuY/LymPbMa99 + CMNwGscQHwUYl6kt6EugqjkqytnpZhQGWBADPxMaeKUi4j3on/RioiXy/8pArp8onx28AfnhDcTAz4UG + Xi3/tzXmdcMwqi7BqM7i4gIkz4JRLcz5SDTaL6wv9qkbovk1uZydUUL+CTXwS/6FRA28VnpkG+b1IzCO + 5/DkCsbmkNp31RdRN55azNU5YGc7ce3gemLgDZMBshNfLw3fCv10PyaU8ZhQnqZM8lHIUtpSmPoGrgSJ + 9NnhKlz1X0cM/FpkoOSfVpjXq2CckoOdktMopmDJuNhLcvNaAdSKBFGdnbuNq35iA3QPFIdsHlX3lIHV + 9CzL/BLa9zEzWCfKRztykHvgXRXDML8wGaBPwnNeq/cUBW1UFwdtQlEgYSOl8FNLijzAEoUBlpAftkDB + JzyHNnAc3EB/V4r/enqGJvL91iLfl+cfa3H5ozUTxyVvfSB8F9AvIv79/Dr/gCC3CIG4JJAdSyAbx8Sv + eMilNPEmz28E/FYAyck65DjkFuT+nJg+TPn9QAoEcnm+D/JZ9UMgXz8EMibzyAnTPyb/A0JYFeWiGYcK + AAAAAElFTkSuQmCC @@ -1418,55 +1417,54 @@ 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 @@ -1489,12 +1487,42 @@ OCAyNCwyIDI0LDYgMTYsNiAgIiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs= + + 0 Filtered Rows + 0, 0 + + Allgemein + + + Auswertungen + + + Verwaltung + + + Grundeinstellungen + + + Workflow + + + Funktionen/App Start + + + Ad Hoc Workflows + Start + + Funktionen + + + Workflow Tabelle + Tabelle @@ -1502,13 +1530,13 @@ Aktionen - 1146, 158 + 1178, 158 - 0, 505 + 0, 666 - 1146, 22 + 1178, 22 RibbonStatusBar1 @@ -1535,7 +1563,7 @@ 4 - 913, 323 + 945, 484 10 @@ -1552,304 +1580,6 @@ 0 - - lblCaptionMainGrid - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel2 - - - 0 - - - Top - - - 233, 0 - - - 913, 24 - - - 9 - - - Panel2 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel1 - - - 1 - - - weitere Profile - - - - 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 - yg8AvH8CqUB0J/cNlPoAAAAASUVORK5CYII= - - - - 863, 17 - - - 220, 30 - - - cmsNavPane - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Left - - - Hauptansicht - - - - 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 - QmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAB10RVh0VGl0 - bGUASG9yaXpvbnRhbDtBbGlnbjtDZW50ZXIHNZ/PAAAFLUlEQVRYR8WV+VOVVRjHtcXK1LTF6pdGxQXI - mjIogggpFVB2ENlcQZDF2ES0XGr8oRxtcUE2F0iIwDU1xxZA9kXWJCfLMlJbLLL/4NvzfRfivZz0ms14 - Zj5z7znvOc/znHPP+7nDANxWlIP24heeLR/qZ/aiHLQX37As+VA/sxflILGnzQnNtGuiKr6JcpAMasMN - 7rBlVlAaJw4eu3PQd67Rmiq+iXKQGI1BGHSEcK9wnzDSxNs/hRPvt4HP7hG4TitCFd9EOUiMxp2M2LjP - q/atkpl4s3gm5Ds27PXC+j1eWFfkiexcN7xe6Im1BZ5Yk++BnDwPZG93r5V1LJjrlfFNlIPEaNzFSCa9 - /FcLLl1rxk/XGtD3Zx1+7D+Ni/3V+KH/S3z/x+e48PspfHf1U5z/7TiytrkxwChjvTK+iXKQGI0BRr0h - O73YX4VDXUtwsGsxDnQtRGVnLCo7YlB+JgofkbYFKGuNwKlzWUh79wUGGCPcxSCq+CbKQWI0FjB6Td5L - srNjkjAWFR3RKO+IlKSRKGuLEOajtCUc+1tC8WFLME72piFliysDjBVuuQAGGLNqhzu+ulImSfVdlraF - o7Q1TBLqSYubg7CvKQh7mwJw4mwqkt52YYBxxnplfBPlIDEaA4zN+MANZ/rytYQlzSGCJJWE+xoDtaS7 - G+dhd/1cFNb54Wh3IhI2zWCAB4W7GUQV30Q5SIymFbBy6/Oov7BFTyoJ9zb6a0mL6pjUFwW1PsJs5NXO - knsSh2Ubn2GAh4T/p4Dkd1xQdX4DjvUkyw6TtF0e7U7Ake7lONwdh0Ody4SlONC5BAc6FmHxeq0A8wSG - q+KbWDtDm/YWRGY7VUfnPInIbGdEZDkiPMMRYenTEJI2FcGpUxCcMgWByZMRsMIB8xInwXfpxBpZN9pY - P2BEs1lyWjp64wJiqpVW4yv1sDBeeMTExXMBF5n9x4XHBM7hG0Br8gQY41/VbO3ok7jAVC+1SqFwNw8Y - MDgZ5+KhFcDbTnjkhN/5nEVzHfXMWPw5tSIsOS2d/6jenFwPrM51R/ZOd6za8SIyt7shQ2yY/r4b0t5z - Q+pm1zqJyxMZomZrR9+9jXobNfX2Dai3StT7haj3M1HvSXx79QS+EUmd+/UIvv7lEHp/rsTZK+WaN3ou - 70fXpRIkb9a8YN4Ja05LR5+gUO8iVHaJekW/Fe1iQhv9lraKCQ0xlWhi0j1R3BSIE70rEb/pWQZXmtHa - 0QuwUW8MPu6QZO2iXyZU6LdETKg7IlDkFIA99ESDeELkxNd20bqnGVxpRmtHn2BVryQsZcK2MGOXIUP0 - a4qpsMEPhfW+hpzmIF/kdLg7HlGrnRlcaUZrxxCPSr2afhvV+i2o80F+nZ4w//SryBN21byC3BpvHBQ5 - haU7MrjSjNaOUYBVvTxWf+1Yi3isktBWv7skYa6RMLfGCzurvbC96mVsq/KUnzAWAUmTGZweGWJGZQGm - eo/3pOATTb0rNPXq+o1X6rdSqOhYKJd0IcrbY+SiymVti5Z7EwXf5ZMY3DyB6xagvQVROc7VsWunI3o1 - 9esk+nXC/EwnhGVMQ+hrUxG6ciqCUgXqN8kBAYmi4AQH+CVMgl+8qDhuInyWTsBssmQCvGOeOC1xKSbG - v24BNBWrpP14aXhsA+q1YbzzjLlcRPWaPKqAc5mcSr+hiAb/B7CQwVDPFqa7BnLRkHEF/GkH/g8sOS2d - fxon3pCnXIO5SPlMwUCz5BzcuVl4ArZjN4ty0F6mP3ebC7h1MOxvLUMuFbJnVbsAAAAASUVORK5CYII= - - - - Gesamtübersicht - - - - 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 - - - - 0, 0 - - - 233 - - - 233, 347 - - - 5 - - - NavBarControl1 - - - NavBarControl1 - - - DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Panel1 - - - 2 - - - Fill - - - Tahoma, 9pt - - - 0, 158 - - - 1146, 347 - - - 4 - - - Panel1 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 2 - - - Allgemein - - - Auswertungen - - - Verwaltung - - - Grundeinstellungen - - - Workflow - - - Funktionen/App Start - - - Ad Hoc Workflows - - - Funktionen - - - Workflow Tabelle - True @@ -1880,12 +1610,273 @@ 0 + + Top + + + 233, 0 + + + 945, 24 + + + 9 + + + Panel2 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 1 + + + weitere Profile + + + + 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 + + + + 863, 17 + 219, 26 Starte Validierung für Profil + + 220, 30 + + + cmsNavPane + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Left + + + Hauptansicht + + + + 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 + AAAAAElFTkSuQmCC + + + + Gesamtübersicht + + + + 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 + AAAASUVORK5CYII= + + + + 0, 0 + + + 233 + + + 233, 508 + + + 5 + + + NavBarControl1 + + + NavBarControl1 + + + DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Panel1 + + + 2 + + + Fill + + + Tahoma, 9pt + + + 0, 158 + + + 1178, 508 + + + 4 + + + Panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + 17, 56 @@ -1895,6 +1886,27 @@ 250, 56 + + 290, 30 + + + Popup Erinnerung deaktivieren + + + 287, 6 + + + 290, 30 + + + In den Vordergrund + + + 290, 30 + + + Out of Range - Fenster wiederherstellen + 291, 100 @@ -1990,27 +2002,6 @@ True - - 290, 30 - - - Popup Erinnerung deaktivieren - - - 287, 6 - - - 290, 30 - - - In den Vordergrund - - - 290, 30 - - - Out of Range - Fenster wiederherstellen - 605, 17 @@ -2036,10 +2027,10 @@ Bottom - 0, 527 + 0, 688 - 1146, 0 + 1178, 0 barDockControlBottom @@ -2060,7 +2051,7 @@ 0, 0 - 0, 527 + 0, 688 barDockControlLeft @@ -2078,10 +2069,10 @@ Right - 1146, 0 + 1178, 0 - 0, 527 + 0, 688 barDockControlRight @@ -2105,7 +2096,7 @@ 9, 19 - 1146, 527 + 1178, 688 Tahoma, 12pt @@ -2621,6 +2612,12 @@ DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + bsitmCount + + + DevExpress.XtraBars.BarStaticItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + RibbonPageStart @@ -3432,9 +3429,6 @@ &Ansicht - - &Hintergrund - &Seiten Layout @@ -3447,6 +3441,9 @@ Bars + + &Hintergrund + PDF Dokument @@ -3562,7 +3559,7 @@ Graphisches Dokument - 1146, 0 + 1178, 0 barDockControlTop @@ -3638,28 +3635,27 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAHNob3A7Y2FydDtidXk7c3R1ZmY7 - Z29vZHM7ZnVsbDuS5QnKAAAA+ElEQVQ4T6XRoU7DQBzH8a6CJxgOjVuGAVVDMjvBJMnkPB5JQsIDYPYK - NRM8AUsmkLwACDRBIQjZ8f1d7i5/el2bgfj0er/7/6/XtnDO/UtrWFXVFV41tq1brWFodhpNFtVhTeqs - ORRnJ+BeThCbvc5GO8cBllDjNfymugwwCuOvo9s5hvjEN46QNphDRbfoOsENVLeCbxZdTrHFF8YKxbyW - 6Onv0AbnIfPizT20+IYJSrPBGTbQ+hP0qtkG+kAPUNEuLzhGahY7KbHAGvG4H3jGHQ5h670s2FczuMAj - pj1Z0gz0kXR0NXRlSTO4hBpmPVmS/vffuOIHKxaXjFfP8Y4AAAAASUVORK5CYII= + Z29vZHM7ZnVsbDuS5QnKAAAA8klEQVQ4T6XTsS5FURAF0OcVvoBOrRMaqtVItApKiVKvV0okPkDjF16j + 8AUkCqUfoFCLSiHiyrzMjeOcvHeDYt/J2TN7n30muaOu60b/QUMEcIynqHWvRkOkQYi7qAXXY5K9wKQR + 53CTIMUbhXiKucLyjEVcpvCkTxSfBaxl/RG9PGMJb/jASmlwmENnAwlOc+6q2MfUYBOfeMd636jeHre/ + pMF2bRC4yOYzdjAuDLZwl/37fGpjEAu6rjdc4RGrpbg0CIxxhNsi7isecI7lWlwb/Ak1sYcb7A5wMw1i + SRE9BPO4mQYHKdgf4L4N6v/gt/gCKxaXjHckb5sAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAldEVYdFRpdGxlAHNob3A7Y2FydDtidXk7c3R1ZmY7 - Z29vZHM7ZnVsbDuS5QnKAAACM0lEQVRYR8XVPWgUYRCA4RglREEQiQEDIkhaW7W4Lgo2CYiV2iukSCMR - wSZoZycIthYpRARRLCUE0cpSAoqgVoJYCYmKous7x8wyOzt3n3fFXeBJLrPzd9kvexNVVY1VGhylNDhK - 3W+dTicVk0uyHo58vcQPVPiJlb6FcUBJ1kNdwh/IYO9t38I4oCTrgSPYRhz+Dcv9ClsDSrIeuAsb+hEn - MYnu9X6FrQElSY89+AJbYAGNnF6FXaH5HNawpeT1XMiJzsKGv9FYQ6/CuqlrLgOtmVkLOdF9WO4NjTX0 - Kqybuubyrv1wsRVyvGnIQbPcecScgW7BoAuch+W91lhLVlgLzQe9BY9geVc11mKF+3ENF+yC8gfvHTb1 - p39dH0hY3QHIk06G/4U8C3zfmi1wG7btabmg0netsrjVXdaYeKGxlC1wE1awIRdUet9VFrc6+etY/IrG - UrbAYXyHFZ2CxIdZ4Cjsuf8LM6gHRv7w3IM1e6KxYW7BdRd7prGe/ALH8BtSKAfnBNKnn8riu/EetsBF - NAZGfgGxDiuWRofgr5fcgtV/xV5kebW4wHH4z+0PWMQ++DxvFmfwGFYnVpHlN8QFxB34RsN4hSnE3i3Z - AlL4AFnj//EcBxH7prIFzDk8xWfIocyGiR18wkMsYReyfqnuAuOUBgXbpf9qg+aUpEGhzeKfO376FXNK - 0qCgkbyj2Dx+/hdzStKgkEahcau5/B6ut3JK0qCg0dhvwXgP4WhUE/8AVStf8Tynp0wAAAAASUVORK5C - YII= + Z29vZHM7ZnVsbDuS5QnKAAACFklEQVRYR8WVPWgVQRSF4w+igiCiQgISEFtbtfg6FWwMBCu1N5DCRgxC + mqCdnSDYWliICKJYSgiilaUEFEGtBEkViD8o8cmEGbk5c2dm9wkvgS953D1nztndeZOxwWAwtpVkg1GT + DUbNxi/ARcUt1C+En1fAD2AA/ASuVo0a0EL9hsvAegy2vKsaNaCF+iNHgDUnfBWYrRmzgBbqj9w1oZ+A + k8D2dL1mzAJaqB/YCXw1BU6rpmTMCgATwAKwHAmfJxoFzpnwt871cgHn7kKgvseFRoH7RjvvXO9VINy1 + FliuFNgdN1rSHtOMagEtMUSBC0b3RtcepkDfV/DY6K7p2lpgHzAHXBSB3XjvgaX4137+tyGNb3886UL4 + n3gWZOG2wG3T9owRuHddmSffFTN/qaFegZvGsGgE7nuvzJMvPJ00n9FQr8A48N2YTv1HgUlz7v8CDmqo + VyBwzyz2NM5Kj7o0D54bZvZcAxVb4CjwOxrDxjlROv0q8x3AB1PgkgYq+vV5YMxhoUNqaHDL+FeAPY5m + E1rguPzf/gicB/aq0XAYOAs8kVdy3dFmaIHAHVloGF4DuzTMwysQjA+dRbvyAjigQSW8Aolp4BnwJW5K + DUp8Az4Dj4ApYJuzVpFN5/1WkA0Spa9aX02LbJAoHTZ9NS2yQaJ03PbVtMgGiS6Ld9G0yAaJLo+3i6ZF + Nkh02WBdNC2ywaj5C1UrX/GNAlVkAAAAAElFTkSuQmCC diff --git a/app/TaskFlow/frmMain.vb b/app/TaskFlow/frmMain.vb index 7ba8cda..87758aa 100644 --- a/app/TaskFlow/frmMain.vb +++ b/app/TaskFlow/frmMain.vb @@ -1,24 +1,25 @@ -Imports System.Globalization -Imports DevExpress.Utils -Imports DevExpress.XtraGrid.Views.Grid.ViewInfo -Imports DevExpress.XtraGrid.Views.Grid -Imports DevExpress.XtraGrid -Imports DevExpress.XtraNavBar -Imports DevExpress.XtraGrid.Columns -Imports System.Threading -Imports System.ComponentModel +Imports System.ComponentModel +Imports System.Globalization Imports System.IO -Imports DevExpress.XtraPrinting -Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback -Imports DigitalData.Modules.EDMI.API.Constants -Imports DigitalData.Modules.Windream -Imports DigitalData.GUIs.Common -Imports DevExpress.XtraGrid.Views.BandedGrid -Imports DevExpress.XtraBars.Ribbon -Imports DigitalData.Modules.ZooFlow +Imports System.Threading Imports DevExpress.LookAndFeel -Imports DigitalData.Modules.Base +Imports DevExpress.Utils +Imports DevExpress.XtraBars.Ribbon +Imports DevExpress.XtraExport.Helpers +Imports DevExpress.XtraGrid +Imports DevExpress.XtraGrid.Columns +Imports DevExpress.XtraGrid.Views.BandedGrid Imports DevExpress.XtraGrid.Views.Base +Imports DevExpress.XtraGrid.Views.Grid +Imports DevExpress.XtraGrid.Views.Grid.ViewInfo +Imports DevExpress.XtraNavBar +Imports DevExpress.XtraPrinting +Imports DigitalData.GUIs.Common +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.EDMI.API.Constants +Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback +Imports DigitalData.Modules.Windream +Imports DigitalData.Modules.ZooFlow Public Class frmMain Private Property FormHelper As FormHelper @@ -1404,8 +1405,8 @@ Public Class frmMain cultureInfo.DateTimeFormat.ShortDatePattern = USER_DATE_FORMAT Thread.CurrentThread.CurrentCulture = cultureInfo Thread.CurrentThread.CurrentUICulture = cultureInfo - cultureInfo.DefaultThreadCurrentCulture = cultureInfo - cultureInfo.DefaultThreadCurrentUICulture = cultureInfo + CultureInfo.DefaultThreadCurrentCulture = cultureInfo + CultureInfo.DefaultThreadCurrentUICulture = cultureInfo End If Catch ex As Exception LOGGER.Error(ex) @@ -2159,12 +2160,10 @@ Public Class frmMain RestoreLayout() Try - Dim oSQLFormat = "SELECT * FROM TBDD_COLUMNS_FORMAT WHERE MODULE = 'taskFLOW' AND GRIDVIEW = 'GridViewWorkflows'" - Dim dtColFormat As DataTable = Await DatabaseFallback.GetDatatableECMAsync(oSQLFormat) For Each oColumn As DevExpress.XtraGrid.Columns.GridColumn In GridViewWorkflows.Columns - For Each oRow As DataRow In dtColFormat.Rows + For Each oRow As DataRow In BASEDATA_TBDD_COLUMNS_FORMAT.Rows Dim colName = oRow("COLUMN_TITLE").ToString() If oColumn.FieldName = colName Then @@ -2179,7 +2178,10 @@ Public Class frmMain If oColumn.ColumnType = GetType(DateTime) And oColumn.DisplayFormat.FormatString <> "dd.MM.yyyy HH:mm:ss" Then oColumn.DisplayFormat.FormatString = "dd.MM.yyyy HH:mm:ss" End If - + ElseIf oSollFormatType = "Numeric" Then + If oColumn.ColumnType <> GetType(Int32) Then + oColumn.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric + End If End If End If Next @@ -2242,50 +2244,84 @@ Public Class frmMain Item_Scope("DOUBLECLICK") End Sub + 'Private Sub GridViewWorkflows_CustomDrawGroupRow(sender As Object, e As Views.Base.RowObjectCustomDrawEventArgs) Handles GridViewWorkflows.CustomDrawGroupRow + ' Try + ' ' Added + ' If FormOpenClose = True And GridIsLoaded = False Then + ' Exit Sub + ' End If + + ' Dim info As GridGroupRowInfo = TryCast(e.Info, GridGroupRowInfo) + ' Dim view As GridView = sender + + ' If info.Column.FieldName = "GROUP_TEXT" Then + ' info.GroupText = info.GroupValueText + + ' Dim oColorString As String = "LightGray" + ' Dim oFontColorString As String = "Black" + ' Dim oFoundConfig As Boolean = False + ' Dim oGROUP_TEXT_COL As String + ' If USER_LANGUAGE = "de-DE" Then + ' oGROUP_TEXT_COL = "GROUP_TEXT" + ' Else + ' oGROUP_TEXT_COL = "GROUP_TEXT_LANG" + ' End If + + + ' For Each oProfileRow As DataRow In CURR_DT_VWPM_PROFILE_ACTIVE.Rows + ' If oProfileRow.Item(oGROUP_TEXT_COL) = info.GroupValueText Then + ' oFoundConfig = True + ' oColorString = oProfileRow.Item("GROUP_COLOR") + ' oFontColorString = oProfileRow.Item("GROUP_FONT_COLOR") + ' ' Added + ' Exit For + ' End If + ' Next + ' If oFoundConfig = False Then + ' LOGGER.Info($"CustomDrawGroupRow: Could not find a ColorConfig for ProfileGroupValueText [{info.GroupValueText}]...") + ' ' Added + ' Exit Sub + ' End If + + ' Dim oColor As Color = ParseColorString(oColorString, Color.LightGray, "Background Color") + ' Dim oFontColor As Color = ParseColorString(oFontColorString, Color.Black, "Font Color") + + ' info.Appearance.BackColor = oColor + ' info.Appearance.ForeColor = oFontColor + ' End If + ' Catch ex As Exception + ' LOGGER.Error(ex) + ' End Try + 'End Sub + Private Sub GridViewWorkflows_CustomDrawGroupRow(sender As Object, e As Views.Base.RowObjectCustomDrawEventArgs) Handles GridViewWorkflows.CustomDrawGroupRow Try - ' Added + If FormOpenClose = True And GridIsLoaded = False Then Exit Sub End If - Dim info As GridGroupRowInfo = TryCast(e.Info, GridGroupRowInfo) - Dim view As GridView = sender + Dim oInfo As GridGroupRowInfo = TryCast(e.Info, GridGroupRowInfo) + If oInfo Is Nothing OrElse oInfo.Column Is Nothing Then + Exit Sub + End If - If info.Column.FieldName = "GROUP_TEXT" Then - info.GroupText = info.GroupValueText + Dim oView As GridView = sender + + If oInfo.Column.FieldName = "GROUP_TEXT" Then + oInfo.GroupText = oInfo.GroupValueText Dim oColorString As String = "LightGray" Dim oFontColorString As String = "Black" - Dim oFoundConfig As Boolean = False - Dim oGROUP_TEXT_COL As String - If USER_LANGUAGE = "de-DE" Then - oGROUP_TEXT_COL = "GROUP_TEXT" - Else - oGROUP_TEXT_COL = "GROUP_TEXT_LANG" - End If + Dim oChildRowHandle As Integer = oView.GetChildRowHandle(oInfo.RowHandle, 0) - - For Each oProfileRow As DataRow In CURR_DT_VWPM_PROFILE_ACTIVE.Rows - If oProfileRow.Item(oGROUP_TEXT_COL) = info.GroupValueText Then - oFoundConfig = True - oColorString = oProfileRow.Item("GROUP_COLOR") - oFontColorString = oProfileRow.Item("GROUP_FONT_COLOR") - ' Added - Exit For - End If - Next - If oFoundConfig = False Then - LOGGER.Info($"CustomDrawGroupRow: Could not find a ColorConfig for ProfileGroupValueText [{info.GroupValueText}]...") - ' Added - Exit Sub - End If + oColorString = oView.GetRowCellValue(oChildRowHandle, "GROUP_COLOR") Dim oColor As Color = ParseColorString(oColorString, Color.LightGray, "Background Color") Dim oFontColor As Color = ParseColorString(oFontColorString, Color.Black, "Font Color") - info.Appearance.BackColor = oColor - info.Appearance.ForeColor = oFontColor + oInfo.Appearance.BackColor = oColor + oInfo.Appearance.ForeColor = oFontColor End If Catch ex As Exception LOGGER.Error(ex) @@ -2478,10 +2514,6 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G oStopWatch.Done() End Sub Private Async Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown - If USER_USERNAME = "SchreiberM" Then - frmDashboard1.Show() - End If ' - If RIBBON_COLOR_SCHEME <> "" Then Me.LookAndFeel.UseDefaultLookAndFeel = False If RIBBON_COLOR_SCHEME = "Blue".ToUpper Then @@ -2858,13 +2890,16 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G End If If Ev_Filter_Panel_Closed = False Then - Dim oTermFilterActive As String = S.Filter_aktiv + Dim oTermFilterActive As String = String.Format("{0} ({1})", S.Filter_aktiv, GridViewWorkflows.RowCount) If GridViewWorkflows.ActiveFilterString <> String.Empty Then - If Not lblCaptionMainGrid.Text.Contains(oTermFilterActive) Then - lblCaptionMainGrid.Text += $"|{oTermFilterActive}" - Else + If lblCaptionMainGrid.Text.Contains(oTermFilterActive) Then Ev_Filter_Panel_Closed = False End If + lblCaptionMainGrid.Text = String.Format("{0} - {1}", S.Gesamtübersicht, oTermFilterActive) + bsitmCount.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + bsitmCount.Caption = oTermFilterActive + Else + bsitmCount.Visibility = DevExpress.XtraBars.BarItemVisibility.Never End If End If @@ -2941,7 +2976,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G Timer5Mins.Stop() TimerRefresh.Stop() TimerReminder.Stop() - LOGGER.Info("Inactivity recognized. Automatic Logout in process!") + LOGGER.Info("Inactivity recognized. Automatic Logout In process!") Hide() ClassAllgemeineFunktionen.LoginOut("LOGOUT") TimerInactivity.Stop() @@ -2976,8 +3011,8 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G MyProcess.StartInfo.FileName = bbtniCW.Tag MyProcess.Start() Else - LOGGER.Warn($"easyFLOW-Exe not found [{bbtniCW.Tag}]") - FormHelper.ShowInfoMessage("Clipboard Watcher could not be started!", omsgTitleWarning) + LOGGER.Warn($"easyFLOW-Exe Not found [{bbtniCW.Tag}]") + FormHelper.ShowInfoMessage("Clipboard Watcher could Not be started!", omsgTitleWarning) End If Catch ex As Exception @@ -3062,7 +3097,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G Private Sub BarButtonItemFileLink_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemFileLink.ItemClick Dim oReceipiant = "" Dim oFocusedDocGUID = GridViewWorkflows.GetFocusedRowCellValue(GridViewWorkflows.Columns("GUID")) - Dim oSQL = $"SELECT [dbo].[FNPM_GET_FILEPATH] ({oFocusedDocGUID},1)" + Dim oSQL = $"Select [dbo].[FNPM_GET_FILEPATH] ({oFocusedDocGUID}, 1)" Dim oFilePath = DatabaseFallback.GetScalarValueECM(oSQL) If File.Exists(oFilePath) Then Dim oLink = "

Link zur Datei

" @@ -3116,6 +3151,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G If CURRENT_DT_PROFILE.Rows.Count = 1 Then CURRENT_ProfilName = CURRENT_DT_PROFILE.Rows(0).Item("NAME") PROFILE_SHOW_DOCUMENT = CURRENT_DT_PROFILE.Rows(0).Item("SHOW_DOCUMENT") + PROFILE_NOT_RESP_COMMENT = CURRENT_DT_PROFILE.Rows(0).Item("NOT_RESP_COMMENT") ActiveWorkflowType = 1 Else Exit Sub @@ -3230,6 +3266,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G Private Sub GridViewWFItems_SubstituteFilter(sender As Object, e As DevExpress.Data.SubstituteFilterEventArgs) Handles GridViewWorkflows.SubstituteFilter GridLayout_Changed("GridViewWFItems_SubstituteFilter") + End Sub Private Sub BbtnitmAHWF1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BbtnitmAHWF1.ItemClick, BbtnitmAHWF2.ItemClick, BbtnitmAHWF3.ItemClick, BbtnitmAHWF4.ItemClick @@ -3262,7 +3299,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G LOGGER.Debug($"oTargetPath with NowParams: {oTargetPath}") - Dim oResult = WINDREAM_MOD.NewFileStream(oSourcePath, oTargetPath, oWMObjecttype, True) + Dim oResult = WINDREAM_MOD.NewFileStream(oSourcePath, oTargetPath, oWMObjecttype) If oResult = True Then WM_AHWF_docPath = oTargetPath Dim oDocID = WINDREAM_MOD.NewDocumentID diff --git a/app/TaskFlow/frmMassValidator.vb b/app/TaskFlow/frmMassValidator.vb index 5880341..fa5f710 100644 --- a/app/TaskFlow/frmMassValidator.vb +++ b/app/TaskFlow/frmMassValidator.vb @@ -323,7 +323,7 @@ Public Class frmMassValidator lookup.Properties.AllowAddNewValues = oControlRow.Item("VKT_ADD_ITEM") lookup.Properties.MultiSelect = oMultiselect - If NotNull(oControlRow.Item("DEFAULT_VALUE"), "") <> "" Then + If ClassAllgemeineFunktionen.NotNullString(oControlRow.Item("DEFAULT_VALUE"), "") <> "" Then lookup.Properties.SelectedValues = New List(Of String) From {oControlRow.Item("DEFAULT_VALUE")} End If @@ -355,7 +355,7 @@ Public Class frmMassValidator LOGGER.Debug("Versuch Tabelle zu laden") Dim oDTMyColumns As DataTable = DatabaseFallback.GetDatatableECM($"SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = {oControlRow.Item("GUID")} ORDER BY SEQUENCE") ', "MV_LoadControls1") - oControl = ControlCreator.CreateExistingGridControl(oControlRow, oDTMyColumns, False) + oControl = ControlCreator.CreateExistingGridControl(oControlRow, oDTMyColumns, False, CURRENT_DOC_CURRENCY) End Select If oControl IsNot Nothing AndAlso TypeOf oControl IsNot Label Then @@ -449,7 +449,7 @@ Public Class frmMassValidator End If Dim idxname As String = controlRow.Item("INDEX_NAME") ' Wenn kein defaultValue existiert, leeren String setzen - Dim defaultValue As String = NotNull(controlRow.Item("DEFAULT_VALUE"), String.Empty) + Dim defaultValue As String = ClassAllgemeineFunktionen.NotNullString(controlRow.Item("DEFAULT_VALUE"), String.Empty) indexname = idxname Dim LoadIDX As Boolean = controlRow.Item("LOAD_IDX_VALUE") LOGGER.Debug("INDEX: " & idxname & " - CONTROLNAME: " & oControl.Name & " - LOAD IDXVALUES: " & LoadIDX.ToString) @@ -474,7 +474,7 @@ Public Class frmMassValidator If wertWD = "" And defaultValue <> "" Then oControl.Text = defaultValue Else - oControl.Text = NotNull(wertWD, defaultValue) + oControl.Text = ClassAllgemeineFunktionen.NotNullString(wertWD, defaultValue) End If End If @@ -1339,15 +1339,14 @@ Public Class frmMassValidator Dim oSQL = $"SELECT [dbo].[FNPM_GET_WM_FILE_PATH] ({CURRENT_DOC_GUID},{_CheckStandard})" oResult = DatabaseFallback.GetScalarValueECM(oSQL) LOGGER.Debug($"Checking file 0 GDP [{oResult}] exists?...") + LOGGER.Debug($"GetWMDocPathWindows returned false - trying with standard again...") + oSQL = $"SELECT [dbo].[FNPM_GET_WM_FILE_PATH] ({CURRENT_DOC_GUID},1)" + oResult = DatabaseFallback.GetScalarValueECM(oSQL) + LOGGER.Debug($"Checking file 1 GDP [{oResult}] exists?...") If File.Exists(oResult) = False Then - LOGGER.Debug($"GetWMDocPathWindows returned false - trying with standard again...") - oSQL = $"SELECT [dbo].[FNPM_GET_WM_FILE_PATH] ({CURRENT_DOC_GUID},1)" - oResult = DatabaseFallback.GetScalarValueECM(oSQL) - LOGGER.Debug($"Checking file 1 GDP [{oResult}] exists?...") - If File.Exists(oResult) = False Then - Return False - End If + Return False End If + WMDocPathWindows = oResult CURRENT_DOC_PATH = WMDocPathWindows diff --git a/app/TaskFlow/frmValidator.Designer.vb b/app/TaskFlow/frmValidator.Designer.vb index 1aa525c..72f9431 100644 --- a/app/TaskFlow/frmValidator.Designer.vb +++ b/app/TaskFlow/frmValidator.Designer.vb @@ -90,7 +90,6 @@ Partial Class frmValidator Me.barbtnitmExport = New DevExpress.XtraBars.BarButtonItem() Me.ToggleSwitchItemLoadonClick = New DevExpress.XtraBars.BarToggleSwitchItem() Me.Attmnt_bbtnitm_LoadonClick = New DevExpress.XtraBars.BarCheckItem() - Me.BarButtonItem6 = New DevExpress.XtraBars.BarButtonItem() Me.bbtnitmInfoWorkflow = New DevExpress.XtraBars.BarButtonItem() Me.bchkitmNotes = New DevExpress.XtraBars.BarCheckItem() Me.BarButtonGroup1 = New DevExpress.XtraBars.BarButtonGroup() @@ -515,7 +514,7 @@ Partial Class frmValidator 'RibbonControl1 ' Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bsiError, Me.bsiInformation, Me.bsiDocID, Me.BarButtonItemFileView, Me.BarButtonItem3, Me.BarButtonItem4, Me.bbtniRefresh, Me.bbtniRefreshSearches, Me.bbtniNext, Me.bbtniDelete, Me.bbtniAnnotation, Me.bsiInfo1, Me.bsiInfo2, Me.BbtnitmSave, Me.BarButtonItem5, Me.Attmt_bbtnitmShow, Me.barbtnitmExport, Me.ToggleSwitchItemLoadonClick, Me.Attmnt_bbtnitm_LoadonClick, Me.BarButtonItem6, Me.bbtnitmInfoWorkflow, Me.bchkitmNotes, Me.BarButtonGroup1}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bsiError, Me.bsiInformation, Me.bsiDocID, Me.BarButtonItemFileView, Me.BarButtonItem3, Me.BarButtonItem4, Me.bbtniRefresh, Me.bbtniRefreshSearches, Me.bbtniNext, Me.bbtniDelete, Me.bbtniAnnotation, Me.bsiInfo1, Me.bsiInfo2, Me.BbtnitmSave, Me.BarButtonItem5, Me.Attmt_bbtnitmShow, Me.barbtnitmExport, Me.ToggleSwitchItemLoadonClick, Me.Attmnt_bbtnitm_LoadonClick, Me.bbtnitmInfoWorkflow, Me.bchkitmNotes, Me.BarButtonGroup1}) resources.ApplyResources(Me.RibbonControl1, "RibbonControl1") Me.RibbonControl1.MaxItemId = 38 Me.RibbonControl1.Name = "RibbonControl1" @@ -692,16 +691,6 @@ Partial Class frmValidator Me.Attmnt_bbtnitm_LoadonClick.ItemInMenuAppearance.Pressed.Options.UseForeColor = True Me.Attmnt_bbtnitm_LoadonClick.Name = "Attmnt_bbtnitm_LoadonClick" ' - 'BarButtonItem6 - ' - resources.ApplyResources(Me.BarButtonItem6, "BarButtonItem6") - Me.BarButtonItem6.Id = 32 - Me.BarButtonItem6.ImageOptions.Image = CType(resources.GetObject("BarButtonItem6.ImageOptions.Image"), System.Drawing.Image) - Me.BarButtonItem6.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem6.ImageOptions.LargeImage"), System.Drawing.Image) - Me.BarButtonItem6.Name = "BarButtonItem6" - Me.BarButtonItem6.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.Large - Me.BarButtonItem6.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - ' 'bbtnitmInfoWorkflow ' resources.ApplyResources(Me.bbtnitmInfoWorkflow, "bbtnitmInfoWorkflow") @@ -746,10 +735,10 @@ Partial Class frmValidator ' 'RbnPgGrpActions ' + Me.RbnPgGrpActions.AllowTextClipping = False Me.RbnPgGrpActions.ItemLinks.Add(Me.bbtniNext) Me.RbnPgGrpActions.ItemLinks.Add(Me.bbtniDelete) Me.RbnPgGrpActions.ItemLinks.Add(Me.bbtniAnnotation) - Me.RbnPgGrpActions.ItemLinks.Add(Me.BarButtonItem6) Me.RbnPgGrpActions.Name = "RbnPgGrpActions" resources.ApplyResources(Me.RbnPgGrpActions, "RbnPgGrpActions") Me.RbnPgGrpActions.Visible = False @@ -939,7 +928,6 @@ Partial Class frmValidator Friend WithEvents FolderBrowserDialog1 As FolderBrowserDialog Friend WithEvents ToggleSwitchItemLoadonClick As DevExpress.XtraBars.BarToggleSwitchItem Friend WithEvents Attmnt_bbtnitm_LoadonClick As DevExpress.XtraBars.BarCheckItem - Friend WithEvents BarButtonItem6 As DevExpress.XtraBars.BarButtonItem Friend WithEvents pnlMain As DevExpress.XtraEditors.PanelControl Friend WithEvents btnSave As DevExpress.XtraEditors.SimpleButton Friend WithEvents DESCRIPTIONLabel As DevExpress.XtraEditors.LabelControl diff --git a/app/TaskFlow/frmValidator.resx b/app/TaskFlow/frmValidator.resx index 9be6b41..b5951fa 100644 --- a/app/TaskFlow/frmValidator.resx +++ b/app/TaskFlow/frmValidator.resx @@ -126,7 +126,10 @@
- 2, 289 + 2, 358 + + + 4, 4, 4, 4 Fill @@ -134,6 +137,9 @@ 0, 0 + + 4, 4, 4, 4 + Segoe UI, 9.75pt @@ -188,8 +194,11 @@ 0, 0 + + 4, 4, 4, 4 + - 197, 50 + 253, 62 @@ -283,8 +292,11 @@ 0, 0 + + 4, 4, 4, 4 + - 182, 50 + 235, 62 0 @@ -317,7 +329,7 @@ 1 - 389, 50 + 500, 62 46 @@ -410,8 +422,11 @@ 0, 0 + + 4, 4, 4, 4 + - 250, 50 + 323, 62 2 @@ -447,7 +462,7 @@ 1 - 649, 50 + 835, 62 45 @@ -468,7 +483,10 @@ Fill - 0, 158 + 0, 194 + + + 4, 4, 4, 4 Top, Bottom, Left, Right @@ -477,10 +495,13 @@ Segoe UI, 8.25pt - 6, 58 + 8, 72 + + + 4, 4, 4, 4 - 642, 225 + 824, 279 3 @@ -508,10 +529,13 @@ None - 6, 33 + 8, 41 + + + 4, 4, 4, 4 - 643, 26 + 826, 32 1 @@ -541,10 +565,13 @@ None - 5, 5 + 6, 6 + + + 4, 4, 4, 4 - 643, 28 + 826, 35 1 @@ -570,8 +597,11 @@ 0, 0 + + 4, 4, 4, 4 + - 653, 341 + 839, 422 25 @@ -607,10 +637,10 @@ 0, 0 - 4, 5, 4, 5 + 5, 6, 5, 6 - 519, 341 + 668, 422 0 @@ -619,7 +649,7 @@ DocumentViewer1 - DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null + DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=2.4.0.0, Culture=neutral, PublicKeyToken=null SplitContainer1.Panel2 @@ -640,10 +670,13 @@ 1 - 1176, 341 + 1512, 422 - 653 + 839 + + + 5 37 @@ -672,8 +705,11 @@ 0, 0 + + 4, 4, 4, 4 + - 1176, 0 + 1512, 0 barDockControlTop @@ -691,10 +727,13 @@ Bottom - 0, 521 + 0, 644 + + + 4, 4, 4, 4 - 1176, 0 + 1512, 0 barDockControlBottom @@ -714,8 +753,11 @@ 0, 0 + + 4, 4, 4, 4 + - 0, 521 + 0, 644 barDockControlLeft @@ -733,10 +775,13 @@ Right - 1176, 0 + 1512, 0 + + + 4, 4, 4, 4 - 0, 521 + 0, 644 barDockControlRight @@ -757,10 +802,10 @@ 82 - 7, 17 + 9, 21 - 1176, 521 + 1512, 644 Tahoma, 8.25pt, style=Bold @@ -1179,38 +1224,6 @@ Tahoma, 8.25pt, style=Bold - - Beleg anzeigen - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPdEVYdFRpdGxlAFNob3c7RXllO0njByUAAAExSURB - VDhPpZKxSsRQFET3Nyy18wOExcYv8G/0B+TAgkXKgAhmyzQWgsViY7FFZItsFFJobyMuWggLJuHKPHzh - mSgavDBwM3dmktz3RmY2+g96xFD0CGAXOI3j2CaTiQPwIE6zrj40bgJX0+nUlsulrVYrq+vaQb04zaSR - 9ksAsAe8ZFlmqrd1Zdd3j3Z4duOew5JGWnlcALANvJZl2ZqPz29t/2jm8F1JK4+8CpgtFot2qDd7808B - KnnkVcC6qqp2oM/+S4A88v4aECLcSRhw4Zen6v5CCM18AQfyKmALeC6Kwg26S/QQp5lKWnnk9ce4E0WR - zefzNsQfo6Dem6UBnuTpXqSNNE0tSRLL89xdnqZpHNSLAzLgUtreTQyCxsAJcA+8f0K9uHFX3wsYih4x - FB8q0AjdQAvTBwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPdEVYdFRpdGxlAFNob3c7RXllO0njByUAAAJSSURB - VFhHxZY9i1NBFIZ3/RNbbG1nJf4Nuy232dY/IcpavRYLW22ZEAvLEEIkkJRiYZYQi7QmYiCYRTTICgmO - PNe5YXJmbj4WvR544XLmnPc8k/sxOXDOHfxPRYmyFSXKVpQoW1GibEWJshUlNknSI0kvJHUkfZb004tr - cqxRQ20k67cTgKR7kk4lfZDkdhS19NB7dwBJDyT1cuNqteq63a4bjUZuPp+7xWKRiWtyrFETgNCLx/4A - kp5IusWoVqu5fr/vdg1q6fEQeOAVzUgCSDrUn8gMWq3WmvmXb7eu/u6je/rqvTt92V1bs0Fv8GsQh3Ze - CuAibxoOh2uGw09f3fnra/f4+ZuVtgUeAcSFnWeHn+XFk8lkzYid2+G7ABB4BRBnSQBJx5J+UDQYDKxH - 9rPb4bsCEHh6AGYcpwCuKGg0GrY3C+65Hb4PAIG3h7hKAdywOJvNbF8WPHB2+L4AeHuAmxTAjMXpdGr7 - sigCSKno7cDbA7DLCOCSxXq9bvuyKLoFKVGbCrw9wGUK4EjSdwra7bbtLXwIU6LWBp5+ODOOIgAPcSLp - F4Xj8XjNoOg1tKKG2jDw8sPxPglnrgF4iPP8nbWf39SHyA6nJgw8cj+87bwIwEI0m023XC5XhvZTjLgm - F+6cHno3DS8E8BAcp9kzUalUXK/XW5lvC2rpCe45XtGMjQAe4r6kt/kuMO10OoXHMWvBYEQvHvsfxwEE - pyMP53VgvE3U0kNvNvzOAAbmoaRnG/6SsUbNauhfBfgXihJlK0qUrShRtqJE2YoSZes3UL0KST/PhM0A - AAAASUVORK5CYII= - - Anzeigen @@ -1266,6 +1279,9 @@ 0, 0 + + 4, 4, 4, 4 + Datei @@ -1322,13 +1338,16 @@ Combo - 1176, 158 + 1512, 194 - 0, 499 + 0, 616 + + + 4, 4, 4, 4 - 1176, 22 + 1512, 28 RibbonStatusBar1 @@ -1556,7 +1575,7 @@ - 3, 4, 3, 4 + 4, 5, 4, 5 frmValidator @@ -1861,12 +1880,6 @@ DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - BarButtonItem6 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - bbtnitmInfoWorkflow @@ -1991,11 +2004,11 @@ CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAABDDlmZmbmVuIChTdHJnK08pBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29s + AAAAAAAAiwEAAAAGDAAAABDDlmZmbmVuIChTdHJnK08pBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29s VGlwSXRlbQcAAAANQWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdp ZHRoEk93bmVyQWxsb3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRC b29sZWFuAwAAABNTeXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ - dGVtSW1hZ2VPcHRpb25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAAb + dGVtSW1hZ2VPcHRpb25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAAIsBAAAABg8AAAAb w5ZmZm5lbiBTaWUgZWluZSBQREYtRGF0ZWkuBQsAAAAoRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRl bUltYWdlT3B0aW9ucwUAAAAISW1hZ2VVcmkMU3ZnSW1hZ2VTaXplCUFsaWdubWVudApJbWFnZUluZGV4 E0ltYWdlVG9UZXh0RGlzdGFuY2UBBAQAABNTeXN0ZW0uRHJhd2luZy5TaXplCQAAACZEZXZFeHByZXNz @@ -2027,11 +2040,11 @@ CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAABZTcGVpY2hlcm4gYWxzIChTdHJnK1MpBQgAAAAcRGV2RXhwcmVzcy5VdGls + AAAAAAAAiwEAAAAGDAAAABZTcGVpY2hlcm4gYWxzIChTdHJnK1MpBQgAAAAcRGV2RXhwcmVzcy5VdGls cy5Ub29sVGlwSXRlbQcAAAANQWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50 CE1heFdpZHRoEk93bmVyQWxsb3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRl ZmF1bHRCb29sZWFuAwAAABNTeXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRv - b2xUaXBJdGVtSW1hZ2VPcHRpb25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAA + b2xUaXBJdGVtSW1hZ2VPcHRpb25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAAIsBAAAA Bg8AAAAYU3BlaWNoZXJuIGRlciBQREYtRGF0ZWkuBQsAAAAoRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlw SXRlbUltYWdlT3B0aW9ucwUAAAAISW1hZ2VVcmkMU3ZnSW1hZ2VTaXplCUFsaWdubWVudApJbWFnZUlu ZGV4E0ltYWdlVG9UZXh0RGlzdGFuY2UBBAQAABNTeXN0ZW0uRHJhd2luZy5TaXplCQAAACZEZXZFeHBy @@ -2063,11 +2076,11 @@ CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAABBEcnVja2VuIChTdHJnK1ApBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29s + AAAAAAAAiwEAAAAGDAAAABBEcnVja2VuIChTdHJnK1ApBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29s VGlwSXRlbQcAAAANQWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdp ZHRoEk93bmVyQWxsb3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRC b29sZWFuAwAAABNTeXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ - dGVtSW1hZ2VPcHRpb25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAAN + dGVtSW1hZ2VPcHRpb25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAAIsBAAAABg8AAAAN RGF0ZWkgZHJ1Y2tlbgULAAAAKERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMF AAAACEltYWdlVXJpDFN2Z0ltYWdlU2l6ZQlBbGlnbm1lbnQKSW1hZ2VJbmRleBNJbWFnZVRvVGV4dERp c3RhbmNlAQQEAAATU3lzdGVtLkRyYXdpbmcuU2l6ZQkAAAAmRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlw @@ -2099,11 +2112,11 @@ CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAAAlWb3JoZXJpZ2UFCAAAABxEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVt + AAAAAAAAiwEAAAAGDAAAAAlWb3JoZXJpZ2UFCAAAABxEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVt BwAAAA1BbGxvd0h0bWxUZXh0BEljb24MSW1hZ2VPcHRpb25zCkxlZnRJbmRlbnQITWF4V2lkdGgST3du ZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJlc3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4D AAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFn - ZU9wdGlvbnMCAAAACAgBAgAAAAHz/////P///wIAAAAKCQ4AAAAAAAAAPAEAAAAGDwAAABlWb3JoZXJp + ZU9wdGlvbnMCAAAACAgBAgAAAAHz/////P///wIAAAAKCQ4AAAAAAAAAiwEAAAAGDwAAABlWb3JoZXJp Z2UgU2VpdGUgYW56ZWlnZW4uBQsAAAAoRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbUltYWdlT3B0 aW9ucwUAAAAISW1hZ2VVcmkMU3ZnSW1hZ2VTaXplCUFsaWdubWVudApJbWFnZUluZGV4E0ltYWdlVG9U ZXh0RGlzdGFuY2UBBAQAABNTeXN0ZW0uRHJhd2luZy5TaXplCQAAACZEZXZFeHByZXNzLlV0aWxzLlRv @@ -2135,11 +2148,11 @@ CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAAAhOw6RjaHN0ZQUIAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0H + AAAAAAAAiwEAAAAGDAAAAAhOw6RjaHN0ZQUIAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0H AAAADUFsbG93SHRtbFRleHQESWNvbgxJbWFnZU9wdGlvbnMKTGVmdEluZGVudAhNYXhXaWR0aBJPd25l ckFsbG93SHRtbFRleHQEVGV4dAQEBAAAAAEfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVhbgMA AAATU3lzdGVtLkRyYXdpbmcuSWNvbgkAAAAoRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbUltYWdl - T3B0aW9ucwIAAAAICAECAAAAAfP////8////AgAAAAoJDgAAAAAAAAA8AQAAAAYPAAAAF07DpGNoc3Rl + T3B0aW9ucwIAAAAICAECAAAAAfP////8////AgAAAAoJDgAAAAAAAACLAQAAAAYPAAAAF07DpGNoc3Rl IFNlaXRlIGFuemVpZ2VuBQsAAAAoRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbUltYWdlT3B0aW9u cwUAAAAISW1hZ2VVcmkMU3ZnSW1hZ2VTaXplCUFsaWdubWVudApJbWFnZUluZGV4E0ltYWdlVG9UZXh0 RGlzdGFuY2UBBAQAABNTeXN0ZW0uRHJhd2luZy5TaXplCQAAACZEZXZFeHByZXNzLlV0aWxzLlRvb2xU @@ -2171,11 +2184,11 @@ CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAAA9GaW5kZW4gKFN0cmcrRikFCAAAABxEZXZFeHByZXNzLlV0aWxzLlRvb2xU + AAAAAAAAiwEAAAAGDAAAAA9GaW5kZW4gKFN0cmcrRikFCAAAABxEZXZFeHByZXNzLlV0aWxzLlRvb2xU aXBJdGVtBwAAAA1BbGxvd0h0bWxUZXh0BEljb24MSW1hZ2VPcHRpb25zCkxlZnRJbmRlbnQITWF4V2lk dGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJlc3MuVXRpbHMuRGVmYXVsdEJv b2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0 - ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAHz/////P///wIAAAAKCQ4AAAAAAAAAPAEAAAAGDwAAAAtU + ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAHz/////P///wIAAAAKCQ4AAAAAAAAAiwEAAAAGDwAAAAtU ZXh0IHN1Y2hlbgULAAAAKERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMFAAAA CEltYWdlVXJpDFN2Z0ltYWdlU2l6ZQlBbGlnbm1lbnQKSW1hZ2VJbmRleBNJbWFnZVRvVGV4dERpc3Rh bmNlAQQEAAATU3lzdGVtLkRyYXdpbmcuU2l6ZQkAAAAmRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSW1h @@ -2255,11 +2268,11 @@ CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAAARab29tBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQcAAAAN + AAAAAAAAiwEAAAAGDAAAAARab29tBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQcAAAAN QWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdpZHRoEk93bmVyQWxs b3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRCb29sZWFuAwAAABNT eXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVtSW1hZ2VPcHRp - b25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAApw4RuZGVybiBkZXIg + b25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAAIsBAAAABg8AAAApw4RuZGVybiBkZXIg Wm9vbS1TdHVmZSBkZXMgUERGLURva3VtZW50cy4FCwAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ dGVtSW1hZ2VPcHRpb25zBQAAAAhJbWFnZVVyaQxTdmdJbWFnZVNpemUJQWxpZ25tZW50CkltYWdlSW5k ZXgTSW1hZ2VUb1RleHREaXN0YW5jZQEEBAAAE1N5c3RlbS5EcmF3aW5nLlNpemUJAAAAJkRldkV4cHJl diff --git a/app/TaskFlow/frmValidator.vb b/app/TaskFlow/frmValidator.vb index 3f4d2a5..377b9a3 100644 --- a/app/TaskFlow/frmValidator.vb +++ b/app/TaskFlow/frmValidator.vb @@ -43,8 +43,7 @@ Public Class frmValidator ''' Contains all grid columns for the current profile ''' Private Property DT_COLUMNS_GRID As DataTable - - + Private Property GIT_TEST As Boolean = False ''' ''' Contains all grid columns for the current profile which have an sql but don't have a reference to a control ''' @@ -76,6 +75,7 @@ Public Class frmValidator Private CountAction As Int16 = 0 Public Shared Property WMDocPathWindows As String Private Property DocPathWindows As String + Private Property DocCurrency As String = "EUR" 'Anzahl der Validierungsdokumente Private Property Amount_Docs2Validate As Integer Private Property first_control As Control @@ -94,9 +94,6 @@ Public Class frmValidator Public Property _FormLoaded As Boolean = False Private Property _FormClosing As Boolean = False Private Property _ControlHandleStarted As Boolean = False - Private Property _ItemWorked As Boolean = False - - Private Property Override As Boolean = False Private Property OverrideAll As Boolean = False Private Property Override_SQLCommand As String = "" @@ -106,7 +103,7 @@ Public Class frmValidator Private ControlCreator As ClassControlCreator Private PerformanceLogger As Logger Private Validator As Validator - Private Const LOG_PERF = True + Private Const LOG_PERF = False Private ReadOnly MyValidationLogger As Logger Private Property OperationMode As OperationMode @@ -194,7 +191,6 @@ Public Class frmValidator Validator = New Validator(LOGCONFIG) Override = False - _ItemWorked = False SplitContainer1.Panel2Collapsed = True first_control = Nothing _FormClosing = False @@ -297,7 +293,7 @@ Public Class frmValidator PROFIL_FINISH_SQL = oProfileRow.Item("SQL_BTN_FINISH") PROFIL_VEKTORINDEX = oProfileRow.Item("PM_VEKTOR_INDEX") PROFIL_CURRENCY_ATTRIBUTE = oProfileRow.Item("CURRENCY_ATTRIBUTE") - + PROFILE_NOT_RESP_COMMENT = oProfileRow.Item("NOT_RESP_COMMENT") PROFIL_REJECT_ACTIONS_ATTRIBUTE = oProfileRow.Item("REJECT_ACTIONS_ATTRIBUTE") PROFIL_REJECT_COMMENT_ATTRIBUTE = oProfileRow.Item("REJECT_COMMENT_ATTRIBUTE") PROFIL_NOT_RESP_COMMENT_ATTR = oProfileRow.Item("NOT_RESP_COMMENT_ATTRIBUTE") @@ -399,7 +395,7 @@ Public Class frmValidator If oProfileRejectionText <> String.Empty And oProfile_REJECT_SQL_REASONS <> String.Empty Then functBtnReject = True End If - If oProfileNotResponsibleText <> String.Empty And oProfile_NOT_RESP_SQL <> String.Empty Then + If (oProfileNotResponsibleQuestion <> String.Empty Or oProfileNotResponsibleText <> String.Empty) And oProfile_NOT_RESP_SQL <> String.Empty Then If IDB_ACTIVE = True Then functBtnNR = True End If @@ -453,11 +449,9 @@ Public Class frmValidator End If End If - bbtniNext.Visibility = BarItemVisibility.Always + bbtniNext.Visibility = BarItemVisibility.Never If CURRENT_JUMP_DOC_GUID <> 0 Then - bbtniNext.Visibility = BarItemVisibility.Never - Amount_Docs2Validate = 1 Else @@ -544,12 +538,9 @@ Public Class frmValidator If CURRENT_DOC_GUID <> 0 Then Try - If _ItemWorked = False Then - Dim sql = $"UPDATE TBPM_PROFILE_FILES Set IN_WORK = 0, IN_WORK_WHEN = NULL, WORK_USER = NULL WHERE GUID = {CURRENT_DOC_GUID}" - DatabaseFallback.ExecuteNonQueryECM(sql) - 'PRTF_PROFILE_FILES_WORK("FreeFile") - End If - + Dim sql = $"UPDATE TBPM_PROFILE_FILES Set IN_WORK = 0, IN_WORK_WHEN = NULL, WORK_USER = NULL WHERE GUID = {CURRENT_DOC_GUID}" + DatabaseFallback.ExecuteNonQueryECM(sql) + 'PRTF_PROFILE_FILES_WORK("FreeFile") Catch ex As Exception MyValidationLogger.Error(ex) @@ -1147,7 +1138,7 @@ Public Class frmValidator Continue For End If - Dim oGrid = ControlCreator.CreateExistingGridControl(oControlRow, oFilteredDatatable, False) + Dim oGrid = ControlCreator.CreateExistingGridControl(oControlRow, oFilteredDatatable, False, DocCurrency) oMyControl = oGrid 'AddHandler oGrid.Views(0).c AddressOf GridView_CustomColumnDisplayText @@ -1253,7 +1244,7 @@ Public Class frmValidator End If SetControlValues_FromControl(oTextbox) - + Controls2beEnabled(oTextbox.Name) ControlCreator.GridTables_HandleControlValueChange(PanelValidatorControl, DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER) End Sub @@ -1355,6 +1346,7 @@ Public Class frmValidator Dim oTitle Dim oCaption Dim oColor + Dim oIncludeFI As Boolean = False Try oAction = oDT_ACTIONS?.Rows(0).Item("ActionType") Catch ex As Exception @@ -1385,12 +1377,17 @@ Public Class frmValidator Catch ex As Exception oColor = "" End Try + Try + oIncludeFI = oDT_ACTIONS?.Rows(0).Item("IncludeFI") + Catch ex As Exception + End Try Try OverrideAll = oDT_ACTIONS?.Rows(0).Item("OverrideAll") Catch ex As Exception MyValidationLogger.Warn($"Could not set OverrideAll {ex.Message}") OverrideAll = False End Try + If OverrideAll = True Then MyValidationLogger.Info($"CURRENT_DOC_ID: {CURRENT_DOC_ID} - OverrideAll will be in Action!") End If @@ -1405,7 +1402,7 @@ Public Class frmValidator result = MessageBox.Show(oQuestion, oTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) If result = MsgBoxResult.Yes Then Override = True - Finish_WFStep() + Finish_WFStep(oIncludeFI) End If End If Case "Update_Single_Control".ToUpper @@ -1451,7 +1448,7 @@ Public Class frmValidator Case "Override_Direct".ToUpper Override = True If Check_UpdateIndexe() = True Then - Finish_WFStep(False) + Finish_WFStep(oIncludeFI) End If Case "Override incFinal".ToUpper @@ -1490,7 +1487,7 @@ Public Class frmValidator Dim sql_Statement = ROW.Item("SQL_UEBERPRUEFUNG") Dim cellvalue = dgv.Rows(dgv.Rows.Count - 2).Cells(0).Value.ToString() sql_Statement = sql_Statement.ToString.Replace(dgv.Name, cellvalue) - 'Dim resultDT As DataTable = ClassDatabase.Return_Datatable_ConId(sql_Statement, ROW.Item(1), $"oControlID[{CONTROL_ID}]") + 'Dim resultDT: DataTable = ClassDatabase.Return_Datatable_ConId(sql_Statement, ROW.Item(1), $"oControlID[{CONTROL_ID}") Dim resultDT As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(sql_Statement, DatabaseType.ECM) With { .ConnectionId = ROW.Item("CONNECTION_ID") }) @@ -1643,7 +1640,7 @@ Public Class frmValidator Dim oControlname2Set = oRow.Item("NAME") MyValidationLogger.Debug($"Workin on SetControLValue for {oControlname2Set} ...") - Dim oConnectionId = oRow.ItemEx("CONNECTION_ID", -1) + Dim oConnectionId = oRow.ItemEx("CONNECTION_ID", 0) Dim oControlDataSql = oRow.ItemEx("SET_CONTROL_DATA", String.Empty) If oConnectionId = -1 Or oControlDataSql = String.Empty Then @@ -1700,7 +1697,7 @@ Public Class frmValidator Dim oControl As Control = oControlObject2Set Dim oMeta As ClassControlCreator.ControlMetadata = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata) - MyValidationLogger.Debug($"Got the Control2Set: {oControlId2Set}..Setting the values..") + MyValidationLogger.Debug(String.Format("Got the Control2Set: {0}..Setting the values..", {oControl.Name})) Select Case True @@ -1762,8 +1759,42 @@ Public Class frmValidator Catch ex As Exception MyValidationLogger.Warn($"Error while Control2Set (Combobox): {ex.Message}") End Try + Case oControl.GetType() = GetType(DevExpress.XtraEditors.DateEdit) + Try + Dim oDateEdit As DevExpress.XtraEditors.DateEdit = DirectCast(oControl, DevExpress.XtraEditors.DateEdit) + Dim parsed As DateTime + If String.IsNullOrWhiteSpace(oControlCaption) Then + oDateEdit.EditValue = Nothing + ElseIf DateTime.TryParse(oControlCaption, parsed) Then + oDateEdit.EditValue = parsed + ElseIf DateTime.TryParse(oControlCaption, CultureInfo.CurrentCulture, DateTimeStyles.None, parsed) Then + oDateEdit.EditValue = parsed + ElseIf DateTime.TryParse(oControlCaption, CultureInfo.InvariantCulture, DateTimeStyles.None, parsed) Then + oDateEdit.EditValue = parsed + Else + oDateEdit.EditValue = Nothing + End If + Catch ex As Exception + MyValidationLogger.Warn($"Error While Control2Set (DateEdit): {ex.Message}") + End Try + Case oControl.GetType() = GetType(System.Windows.Forms.DateTimePicker) + Try + Dim dtp As System.Windows.Forms.DateTimePicker = DirectCast(oControl, System.Windows.Forms.DateTimePicker) + Dim parsed As DateTime + If String.IsNullOrWhiteSpace(oControlCaption) Then + dtp.Value = DateTimePicker.MinimumDateTime + ElseIf DateTime.TryParse(oControlCaption, parsed) _ + OrElse DateTime.TryParse(oControlCaption, CultureInfo.CurrentCulture, DateTimeStyles.None, parsed) _ + OrElse DateTime.TryParse(oControlCaption, CultureInfo.InvariantCulture, DateTimeStyles.None, parsed) Then + dtp.Value = parsed + Else + dtp.Value = DateTimePicker.MinimumDateTime + End If + Catch ex As Exception + MyValidationLogger.Warn($"Error While Control2Set (DateTimePicker): {ex.Message}") + End Try Case oControl.GetType() = GetType(Windows.Forms.CheckBox) Dim oBitValue As Boolean @@ -1782,7 +1813,7 @@ Public Class frmValidator End Try Catch ex As Exception - MyValidationLogger.Warn($"Error while Control2Set (Checkbox): {ex.Message}") + MyValidationLogger.Warn($"Error while Control2Set (Checkbox) {ex.Message}") End Try @@ -1796,7 +1827,7 @@ Public Class frmValidator End If If oFound = False Then - MyValidationLogger.Debug($"Could not find the Control2Set with ID {oControlGUID2Set} on panel!!!") + MyValidationLogger.Debug($"Could Not find the Control2Set with ID {oControlGUID2Set} on panel!!!") End If Catch ex As Exception MyValidationLogger.Error(ex) @@ -1810,10 +1841,10 @@ Public Class frmValidator Dim oLOOKUPValue = SelectedValues.Item(0 ) Dim oLOOKUPName = LookupControl.Name - MyValidationLogger.Debug($"oLOOKUPValue is [{oLOOKUPValue}]!") + MyValidationLogger.Debug($"oLOOKUPValue Is [{oLOOKUPValue}]!") Dim oControlID = DirectCast(LookupControl.Tag, ClassControlCreator.ControlMetadata).Guid Dim oFilteredDatatable As DataTable = DT_CONTROLS.Clone() - Dim oExpression = $"SQL_UEBERPRUEFUNG like '%#CTRL#{oLOOKUPName}%'" + Dim oExpression = $"SQL_UEBERPRUEFUNG Like '%#CTRL#{oLOOKUPName}%'" DT_CONTROLS.Select(oExpression).CopyToDataTable(oFilteredDatatable, LoadOption.PreserveChanges) If oFilteredDatatable.Rows.Count > 0 Then MyValidationLogger.Debug($"We got {oFilteredDatatable.Rows.Count} depending controls!!") @@ -1825,7 +1856,7 @@ Public Class frmValidator Dim oDEPENDING_CtrlName = oRowDependingControl.Item("NAME") MyValidationLogger.Debug($"Control {oDEPENDING_CtrlName} is depending on lookUp {oLOOKUPName}..") If _DependingControl_In_Action = True Then - MyValidationLogger.Debug($"..but _dependingControl_in_action = True ==> Exit Sub!") + MyValidationLogger.Info($"..but _dependingControl_in_action = True ==> Exit Sub!") Exit Sub End If If Not IsDBNull(oRowDependingControl.Item("CONNECTION_ID")) And Not IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) Then @@ -1848,6 +1879,7 @@ Public Class frmValidator Case oControl.GetType() = GetType(DevExpress.XtraEditors.TextEdit) Or oControl.GetType() = GetType(MemoEdit) Try Dim oValue As Object = oDTDEPENDING_RESULT.Rows(0).Item(0) + MyValidationLogger.Debug(String.Format("Setting EditValue with value [{0}]", oValue)) oValue = ObjectEx.NotNull(Of Object)(oValue, Nothing) Try 'oControl.Text = oValue @@ -1959,6 +1991,7 @@ Public Class frmValidator Dim oSqlCommand = IIf(IsDBNull(oRowDependingControl.Item("SQL_UEBERPRUEFUNG")), "", oRowDependingControl.Item("SQL_UEBERPRUEFUNG")) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) _DependingControl_In_Action = True + MyValidationLogger.Debug($"_DependingControl_In_Action: Control {oDEPENDING_CtrlName} ...") 'Dim oDTDEPENDING_RESULT As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oRowDependingControl.Item("CONNECTION_ID"), $"CheckBox_DependingControls - oControlID: {oControlID}") Dim oDTDEPENDING_RESULT As DataTable = DatabaseFallback.GetDatatable(New GetDatatableOptions(oSqlCommand, DatabaseType.ECM) With { .ConnectionId = oRowDependingControl.Item("CONNECTION_ID") @@ -2231,6 +2264,7 @@ Public Class frmValidator If Not IsDBNull(oRowEnablingControl.Item("CONNECTION_ID")) And Not IsDBNull(oRowEnablingControl.Item("SQL_ENABLE")) Then Dim oSqlCommand = IIf(IsDBNull(oRowEnablingControl.Item("SQL_ENABLE")), "", oRowEnablingControl.Item("SQL_ENABLE")) oSqlCommand = clsPatterns.ReplaceAllValues(oSqlCommand, PanelValidatorControl, True) + MyValidationLogger.Debug($"_DependingControl_In_Action: oENABLE_CtrlName {oENABLE_CtrlName} ...") _DependingControl_In_Action = True Dim oConnectionId As Integer = oRowEnablingControl.Item("CONNECTION_ID") @@ -2252,7 +2286,7 @@ Public Class frmValidator End If Next - + _DependingControl_In_Action = False If oFound = False Then MyValidationLogger.Debug($"Could not find the enabling Control with ID {oENABLE_GUID} on panel!!!") End If @@ -2291,8 +2325,8 @@ Public Class frmValidator ' Logger.Error(ex) ' End Try 'End Sub - Private Sub Controls2B_EnDisabled_on_Load() - If LOG_PERF Then PerformanceLogger.Info("Controls2B_EnDisabled_on_Load") + Private Sub Controls2B_EnDisabled() + If LOG_PERF Then PerformanceLogger.Info("Controls2B_EnDisabled") Try Dim oFilteredDatatable As DataTable = DT_CONTROLS.Clone() @@ -2319,8 +2353,10 @@ Public Class frmValidator Try MyValidationLogger.Debug($"Result of Enable SQL [{oResult}]...") - oControl.Enabled = oResult + + oControl.Enabled = CBool(oResult) Catch ex As Exception + MyValidationLogger.Warn($"Could not convert value [oResult] to Boolean!") MyValidationLogger.Warn($"Error en/disabling control onLoad: [{ex.Message}]") End Try @@ -2419,7 +2455,7 @@ Public Class frmValidator MyValidationLogger.Debug("SQL Check is not configured!") Return True End If - If check.ToString.Length > 0 And dr.Item("INDEX_NAME") <> "DD PM-ONLY FOR DISPLAY" Then + If check.ToString.Length > 0 And Not {"@@DISPLAY_ONLY", "DD PM-ONLY FOR DISPLAY"}.Contains(dr.Item("INDEX_NAME")) Then Dim cs As String = DatabaseFallback.GetConnectionString(dr.Item("CONNECTION_ID")) If allgFunk.CheckValue_Exists(dr.Item("SQL_UEBERPRUEFUNG"), "@Eingabe", control.Text, dr.Item("TYP"), cs, CURRENT_ProfilGUID) = True Then @@ -2483,7 +2519,7 @@ Public Class frmValidator End Try Try - Amount_Docs2Validate = oDT.Rows(0).Item(2) + Amount_Docs2Validate = CInt(oDT.Rows(0).Item(2)) MyValidationLogger.Debug($"Get_Next_GUID: Amount_Docs2Validate [{Amount_Docs2Validate}]...") Catch ex As Exception Amount_Docs2Validate = 0 @@ -2561,25 +2597,23 @@ Public Class frmValidator WMDocPathWindows = String.Empty If OPERATION_MODE_FS <> ClassConstants.OpModeFS_ZF Then + Dim oSQL = $"SELECT dbo.FNPM_GET_FILEPATH ({CURRENT_DOC_GUID},{_CheckStandard})" + oResult = DatabaseFallback.GetScalarValueECM(oSQL) + MyValidationLogger.Debug($"First Checking file [{oResult}] exists?...") If File.Exists(oResult) = False Then - Dim oSQL = $"SELECT dbo.FNPM_GET_FILEPATH ({CURRENT_DOC_GUID},{_CheckStandard})" - oResult = DatabaseFallback.GetScalarValueECM(oSQL) - MyValidationLogger.Debug($"Checking file 0 [{oResult}] exists?...") - DocPathWindows = oResult - MyValidationLogger.Info($"GetWMDocPathWindows returned false [{oResult}] - trying with standard again...") + MyValidationLogger.Info($"Getting filepath with standard 1 ...") oSQL = $"SELECT [dbo].[FNPM_GET_FILEPATH] ({CURRENT_DOC_GUID},1)" - oResult = DatabaseFallback.GetScalarValueECM(oSQL) - - MyValidationLogger.Debug($"Checking file 1[{oResult}] exists?...") + MyValidationLogger.Debug($"Second Checking file [{oResult}] exists?...") If File.Exists(oResult) = False Then - MyValidationLogger.Info($"GetWMDocPathWindows FileExists2 also returned false [{oResult}]!") + MyValidationLogger.Info($"Second FileExists also returned false [{oResult}]!") DocPathWindows = oResult MyValidationLogger.Warn($"GetDocPathWindows: File [{oResult}] not existing!") Return False End If - End If + DocPathWindows = oResult + Else oResult = ClassConstants.OpModeFS_ZF MyValidationLogger.Debug($"GetDocPathWindows: Filestore is {ClassConstants.OpModeFS_ZF}") @@ -2678,14 +2712,22 @@ Public Class frmValidator DatabaseFallback.ExecuteNonQueryECM(sql) ' ############ Infos eintragen ################# - ' txtDateipfad.Text = Document_Path - 'Dim omsg = $"{ClassAllgemeineFunktionen.GUI_LANGUAGE_INFO("remainingOps")}: {Amount_Docs2Validate}" - Dim omsg = String.Format(S.Verbleibende_Vorgänge___0_, Amount_Docs2Validate) - If Amount_Docs2Validate > 0 Then + If Amount_Docs2Validate > 1 Then + Dim omsg = String.Format(S.Verbleibende_Vorgänge___0_, Amount_Docs2Validate) bsiInformation.Caption = omsg + + bsiInformation.Caption = omsg + If RbnPgGrpActions.Visible = False Then + RbnPgGrpActions.Visible = True + End If + bbtniNext.Visibility = BarItemVisibility.Always Else - bsiInformation.Caption = "Could not get the amount of remaining docs!" + bbtniNext.Visibility = BarItemVisibility.Never + If bbtniDelete.Visibility = BarItemVisibility.Never And bbtniAnnotation.Visibility = BarItemVisibility.Never Then + RbnPgGrpActions.Visible = False + End If + bsiInformation.Caption = "" End If bsiDocID.Caption = "Document-ID: " & CURRENT_DOC_ID & " - GUID: " & CURRENT_DOC_GUID @@ -2754,24 +2796,24 @@ Public Class frmValidator End If If Not IsNothing(oCurrency) Then - - Dim oValueType = oCurrency.GetType.ToString - If IsDBNull(oCurrency) Then - oCurrency = "EUR" + DocCurrency = oCurrency + Dim oValueType = DocCurrency.GetType.ToString + If IsDBNull(DocCurrency) Then + DocCurrency = "EUR" Else Try - oCurrency = oCurrency.ToString + DocCurrency = DocCurrency.ToString Catch ex As Exception MyValidationLogger.Warn($"Unexpected error in Converting oCurreny to string: " & ex.Message) - oCurrency = "EUR" + DocCurrency = "EUR" End Try End If - If oCurrency <> String.Empty Then - If oCurrency.ToString.Length <> 3 Then - MyValidationLogger.Info("oCurrency-Length = 3 - Setting to EUR") - oCurrency = "EUR" + If DocCurrency <> String.Empty Then + If DocCurrency.ToString.Length <> 3 Then + MyValidationLogger.Info("DocCurrency-Length = 3 - Setting to EUR") + DocCurrency = "EUR" End If - MyValidationLogger.Debug($"oCurrency = {oCurrency}") + MyValidationLogger.Debug($"DocCurrency = {DocCurrency}") For Each oControl As Control In PanelValidatorControl.Controls Try Dim oMeta = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata) @@ -2783,7 +2825,7 @@ Public Class frmValidator DT_COLUMNS_GRID.Select(oExpression, "SEQUENCE").CopyToDataTable(oFilteredDatatable, LoadOption.PreserveChanges) Dim oCultureInfo As CultureInfo = New CultureInfo("de-DE") - oCultureInfo.NumberFormat.CurrencySymbol = oCurrency + oCultureInfo.NumberFormat.CurrencySymbol = DocCurrency Dim riTextEdit As RepositoryItemTextEdit = New RepositoryItemTextEdit() riTextEdit.MaskSettings.Configure(Of MaskSettings.Numeric)(Sub(settings) settings.MaskExpression = "c" @@ -2817,7 +2859,7 @@ Public Class frmValidator End Try Next Else - MyValidationLogger.Warn($"oCurrency is String.empty! ") + MyValidationLogger.Warn($"DocCurrency is String.empty! ") End If Else MyValidationLogger.Warn($"oCurrency is Nothing - Check PROFIL_CURRENCY_ATTRIBUTE! ") @@ -2832,7 +2874,7 @@ Public Class frmValidator Catch ex As Exception MyValidationLogger.Error(ex) End Try - + Controls2B_EnDisabled() MyValidationLogger.Debug("frmValidator: LoadNextDocument finished!") Catch ex As Exception @@ -2899,13 +2941,13 @@ Public Class frmValidator End If SplitContainer1.Panel2Collapsed = True If Not IsNothing(DocumentViewer1) Then - DocumentViewer1.Visible = False - End If + DocumentViewer1.Visible = False + End If - RibbonPageFile.Visible = False - Exit Sub - Else - If Not IsNothing(DocumentViewer1) Then + RibbonPageFile.Visible = False + Exit Sub + Else + If Not IsNothing(DocumentViewer1) Then DocumentViewer1.Visible = True End If @@ -3282,7 +3324,9 @@ Public Class frmValidator oIndexName = oSourceIndexName oControName = oControl.Name Dim oLoadIndex As Boolean = oControlRow.Item("LOAD_IDX_VALUE") - + If oIndexName = "@@DISPLAY_ONLY" Then + oLoadIndex = False + End If MyValidationLogger.Debug("INDEX: " & oSourceIndexName & " - CONTROLNAME: " & oControl.Name & " - LOAD IDXVALUES: " & oLoadIndex.ToString) @@ -3300,10 +3344,13 @@ Public Class frmValidator Exit For End If If oSourceIndexName Is Nothing = False Then - If oLoadIndex = False Or oSourceIndexName = "DD PM-ONLY FOR DISPLAY" Then - ' Wenn kein Index exisitiert, defaultValue laden - oTextBox.EditValue = oDefaultValue - MyValidationLogger.Debug("Indexwert soll nicht geladen werden.") + If oLoadIndex = False Then + MyValidationLogger.Debug($" oControl {oControl.Name}: Indexwert soll nicht geladen werden.") + If Not {"@@DISPLAY_ONLY", "DD PM-ONLY FOR DISPLAY"}.Contains(oSourceIndexName) Then + ' Wenn kein Index exisitiert, defaultValue laden + oTextBox.EditValue = oDefaultValue + End If + Exit Select End If @@ -3339,7 +3386,7 @@ Public Class frmValidator MyValidationLogger.Debug("Value from Source: [{0}]", oValueFromSource) Try - 'Dim oFormatString As String = oControlRow.ItemEx("CTRL_FORMAT_STRING", "") + Dim oFormatString As String = oControlRow.ItemEx("CTRL_FORMAT_STRING", "") 'oFormattedValue = ClassFormat.GetFormattedValue(oControl.Name, oValueFromSource, oFormatString) 'If Not IsNothing(oFormattedValue) And oFormattedValue <> String.Empty Then @@ -3376,7 +3423,6 @@ Public Class frmValidator MyValidationLogger.Warn($"Unexpected error in Set Backcolor [{oControl.Name}]: {ex.Message}") MyValidationLogger.Error(ex) End Try - ControlCreator.GridTables_HandleControlValueChange(PanelValidatorControl, DT_COLUMNS_GRID_WITH_SQL_WITH_CTRL_PLACEHOLDER) Catch ex As Exception @@ -3408,13 +3454,16 @@ Public Class frmValidator Exit For End If If oSourceIndexName Is Nothing = False Then - If oLoadIndex = False Or oSourceIndexName = "DD PM-ONLY FOR DISPLAY" Then - If oDefaultValue = String.Empty Then - oMyCombobox.SelectedIndex = -1 - Else - oMyCombobox.Text = oDefaultValue - End If + If oLoadIndex = False Then MyValidationLogger.Debug($" oMyComboBox {oMyCombobox.Name}: Indexwert soll nicht geladen werden.") + If Not {"@@DISPLAY_ONLY", "DD PM-ONLY FOR DISPLAY"}.Contains(oSourceIndexName) Then + If oDefaultValue = String.Empty Then + oMyCombobox.SelectedIndex = -1 + Else + oMyCombobox.Text = oDefaultValue + End If + End If + Exit Select End If @@ -3494,6 +3543,7 @@ Public Class frmValidator End If If oSourceIndexName Is Nothing = False Then If oLoadIndex = False Then + MyValidationLogger.Debug($" oControl {oControl.Name}: Indexwert soll nicht geladen werden.") MyValidationLogger.Debug("Indexwert soll nicht geladen werden.") Exit Select End If @@ -3554,12 +3604,26 @@ Public Class frmValidator End If Dim oRowData As New List(Of Object) + MyValidationLogger.Debug(String.Format("Now creating the rows for DevexpressGrid ...")) + Dim oMSG = "" + Try + For index = 1 To oColValuesfromSource.Length + oMSG = "" + Dim oValue = oColValuesfromSource(index - 1) + oMSG = String.Format("...Index [{0}] - Value [{1}]", index, oValue) + MyValidationLogger.Debug(oMSG) + Dim oColumnType = oDTColumnsPerDevExGrid.Rows.Item(index - 1).Item("TYPE_COLUMN") + Dim oConvertedValue = ClassFormat.GetConvertedValue(oValue, oColumnType) + oRowData.Add(oConvertedValue) + Next + Catch ex As Exception + MyValidationLogger.Warn(String.Format("Unexpected error while working on IDB Fill GridControl: {0}", oControl.Name)) + If Not oMSG = String.Empty Then + MyValidationLogger.Warn(String.Format("oMSG: {0}", oMSG)) + End If + MyValidationLogger.Error(ex) + End Try - For index = 1 To oColValuesfromSource.Length - Dim oColumnType = oDTColumnsPerDevExGrid.Rows.Item(index - 1).Item("TYPE_COLUMN") - Dim oConvertedValue = ClassFormat.GetConvertedValue(oColValuesfromSource(index - 1), oColumnType) - oRowData.Add(oConvertedValue) - Next oDataSource.Rows.Add(oRowData.ToArray()) @@ -3658,7 +3722,7 @@ Public Class frmValidator MyValidationLogger.Error(ex) MyValidationLogger.Info(">> Unexpected error in FillIndexValues(GridControl: " & oMyGridControl.Name & "): " & ex.Message, True) MyValidationLogger.Info(">> Controltype: " & oControlType) - MyValidationLogger.Info(">> Indexname windream: " & oIndexName) + MyValidationLogger.Info(">> Attributname: " & oIndexName) errormessage = "Unexpected error in FillIndexValues(Combobox: " & oMyGridControl.Name & "): " & vbNewLine & ex.Message & vbNewLine & "Check Logfile" My.Settings.Save() frmError.ShowDialog() @@ -3676,8 +3740,9 @@ Public Class frmValidator Dim myCheckBox As CheckBox = oControl - If oLoadIndex = False Or oSourceIndexName = "DD PM-ONLY FOR DISPLAY" Then - MyValidationLogger.Debug("Indexwert soll nicht geladen werden.") + If oLoadIndex = False Or {"@@DISPLAY_ONLY", "DD PM-ONLY FOR DISPLAY"}.Contains(oSourceIndexName) Then + MyValidationLogger.Debug($" oControl {oControl.Name}: Indexwert soll nicht geladen werden.") + Exit Select End If @@ -4013,7 +4078,6 @@ Public Class frmValidator ' Refresh_FileList() Load_Next_Document(True) - Controls2B_EnDisabled_on_Load() _DependingControl_In_Action = False _DependingColumn_In_Action = False @@ -4229,8 +4293,7 @@ Public Class frmValidator End Function Sub Finish_WFStep(Optional includeFI As Boolean = True) btnSave.Enabled = False - MyValidationLogger.Debug("Abschluss für Dok: " & CURRENT_DOC_PATH & " gestartet") - _ItemWorked = True + MyValidationLogger.Debug("Abschluss für DocID " & CURRENT_DOC_ID & " wird gestartet ...") Dim oErrorOcurred As Boolean = False If OverrideAll = False Then 'Eingaben auf Form überprüfen @@ -4273,7 +4336,6 @@ Public Class frmValidator My.Settings.Save() frmError.ShowDialog() oErrorOcurred = True - _ItemWorked = False End If If Not IsNothing(oSQLCommand) Then Dim oResultfromSQL As Object = DatabaseFallback.GetScalarValueWithConnection(oSQLCommand, oConnectionID) @@ -4285,7 +4347,6 @@ Public Class frmValidator My.Settings.Save() frmError.ShowDialog() oErrorOcurred = True - _ItemWorked = False Else MyValidationLogger.Warn($"FinalIndexResult from SQL is DBNull - AttributeName [{oFinalIndexRow.Item("INDEXNAME")}] - oContinueOnIndifferentState = true, Continuing with next Attribute and Replacing with empty String") oResultfromSQL = "" @@ -4299,7 +4360,6 @@ Public Class frmValidator My.Settings.Save() frmError.ShowDialog() oErrorOcurred = True - _ItemWorked = False Else MyValidationLogger.Warn($"FinalIndexResult from SQL is EmptyValue - AttributeName [{oFinalIndexRow.Item("INDEXNAME")}] - oContinueOnIndifferentState = true, So continuing with next Attribute") Continue For @@ -4344,7 +4404,6 @@ Public Class frmValidator My.Settings.Save() frmError.ShowDialog() oErrorOcurred = True - _ItemWorked = False End If Else MyValidationLogger.Debug("Now the final indexing...") @@ -4376,12 +4435,10 @@ Public Class frmValidator My.Settings.Save() frmError.ShowDialog() oErrorOcurred = True - _ItemWorked = False End If End If If oErrorOcurred = True Then - _ItemWorked = False Exit For End If Next @@ -4501,35 +4558,38 @@ Public Class frmValidator DatabaseFallback.ExecuteNonQueryECM(ins) Dim oFIsql As String 'Close_document_viewer() - If Current_Document.Extension = "pdf" Then - If Not IsNothing(WORK_HISTORY_ENTRY) Then - If CBool(CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_WORK_HISTORY_ENTRY")) = True Then - oFIsql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE GUID = (SELECT MAX(GUID) FROM TBPM_FILES_WORK_HISTORY WHERE PROFIL_ID = {0} AND DOC_ID = {1})", CURRENT_ProfilGUID, CURRENT_DOC_ID) - Dim DT_ENTRY As DataTable = DatabaseFallback.GetDatatableECM(oFIsql) ', "Finish_WFStep2") - If Not IsNothing(DT_ENTRY) Then - If DT_ENTRY.Rows.Count = 1 Then - Dim AnnotationString = DT_ENTRY.Rows(0).Item("WORKED_WHEN") & " " & DT_ENTRY.Rows(0).Item("WORKED_BY") & ": " & DT_ENTRY.Rows(0).Item("STATUS_COMMENT") - ClassAnnotation.Annotate_PDF("Workflow-State:", AnnotationString, 0, False) + If Not IsNothing(Current_Document) Then + If Current_Document.Extension = "pdf" Then + If Not IsNothing(WORK_HISTORY_ENTRY) Then + If CBool(CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_WORK_HISTORY_ENTRY")) = True Then + oFIsql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE GUID = (SELECT MAX(GUID) FROM TBPM_FILES_WORK_HISTORY WHERE PROFIL_ID = {0} AND DOC_ID = {1})", CURRENT_ProfilGUID, CURRENT_DOC_ID) + Dim DT_ENTRY As DataTable = DatabaseFallback.GetDatatableECM(oFIsql) ', "Finish_WFStep2") + If Not IsNothing(DT_ENTRY) Then + If DT_ENTRY.Rows.Count = 1 Then + Dim AnnotationString = DT_ENTRY.Rows(0).Item("WORKED_WHEN") & " " & DT_ENTRY.Rows(0).Item("WORKED_BY") & ": " & DT_ENTRY.Rows(0).Item("STATUS_COMMENT") + ClassAnnotation.Annotate_PDF("Workflow-State:", AnnotationString, 0, False) + End If End If End If - End If - Dim oAnnotateAllWHEs = CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_ALL_WORK_HISTORY_ENTRIES") - If CBool(oAnnotateAllWHEs) = True Then - oFIsql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE DOC_ID = {1} ORDER BY GUID", CURRENT_ProfilGUID, CURRENT_DOC_ID) - Dim DT_ENTRIES As DataTable = DatabaseFallback.GetDatatableECM(oFIsql) ', "Finish_WFStep3") - If Not IsNothing(DT_ENTRIES) Then - If DT_ENTRIES.Rows.Count > 0 Then - Dim AnnotationString As String = "" - For Each rw As DataRow In DT_ENTRIES.Rows - AnnotationString = AnnotationString & rw.Item("WORKED_WHEN") & " " & rw.Item("WORKED_BY") & ": " & rw.Item("STATUS_COMMENT") & vbNewLine - Next - ClassAnnotation.Annotate_PDF("Workflow History:", AnnotationString, 0, False, 10, 40) + Dim oAnnotateAllWHEs = CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_ALL_WORK_HISTORY_ENTRIES") + If CBool(oAnnotateAllWHEs) = True Then + oFIsql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE DOC_ID = {1} ORDER BY GUID", CURRENT_ProfilGUID, CURRENT_DOC_ID) + Dim DT_ENTRIES As DataTable = DatabaseFallback.GetDatatableECM(oFIsql) ', "Finish_WFStep3") + If Not IsNothing(DT_ENTRIES) Then + If DT_ENTRIES.Rows.Count > 0 Then + Dim AnnotationString As String = "" + For Each rw As DataRow In DT_ENTRIES.Rows + AnnotationString = AnnotationString & rw.Item("WORKED_WHEN") & " " & rw.Item("WORKED_BY") & ": " & rw.Item("STATUS_COMMENT") & vbNewLine + Next + ClassAnnotation.Annotate_PDF("Workflow History:", AnnotationString, 0, False, 10, 40) + End If End If End If End If End If End If + 'wenn Move2Folder aktiviert wurde If Move2Folder <> "" And (OPERATION_MODE_FS = ClassConstants.OpModeFS_PWM Or OPERATION_MODE_FS = ClassConstants.OpModeFS_IDBWM) Then idxerr_message = allgFunk.Move2Folder(WMDocPathWindows, Move2Folder, CURRENT_ProfilGUID, WINDREAM_ALLG) @@ -4538,7 +4598,6 @@ Public Class frmValidator My.Settings.Save() frmError.ShowDialog() oErrorOcurred = True - _ItemWorked = False End If End If @@ -4552,7 +4611,6 @@ Public Class frmValidator My.Settings.Save() frmError.ShowDialog() oErrorOcurred = True - _ItemWorked = False MyValidationLogger.Info("Unexpected error in Finish: " & ex.Message, True) Exit Sub End Try @@ -4562,7 +4620,6 @@ Public Class frmValidator errormessage = oErrMsgMissingInput frmError.ShowDialog() oErrorOcurred = True - _ItemWorked = False Exit Sub End If Else @@ -4577,7 +4634,6 @@ Public Class frmValidator End If If oErrorOcurred = True Then MsgBox("Unhandled error occured in Finish Workflow-Step...Please check your log!", MsgBoxStyle.Exclamation, ADDITIONAL_TITLE) - _ItemWorked = False Else 'PRTF_PROFILE_FILES_WORK("Worked") MyValidationLogger.Debug("Validation of document ended successfully!") @@ -4756,10 +4812,10 @@ Public Class frmValidator Dim oOVERWRITE_DATA = oControlRow.Item("OVERWRITE_DATA") 'Nur wenn der Name der Zeile entspricht und der Index READ_ONLY FALSE ist - If oDBControlName = oControl.Name And oIndexName <> "DD PM-ONLY FOR DISPLAY" Then + If oDBControlName = oControl.Name And Not {"@@DISPLAY_ONLY", "DD PM-ONLY FOR DISPLAY"}.Contains(oIndexName) Then MyValidationLogger.Debug("Indexierung für Control (" & oControlId & ") '" & oControlName & "' gestartet. Indexname '" & oIndexName & "'") If oIndexName = "" Then - MyValidationLogger.Info(" >> Indexname is unexpected empty.") + MyValidationLogger.Info(">> Indexname is unexpected empty.") Continue For End If Select Case True @@ -4965,7 +5021,6 @@ Public Class frmValidator oMissing = True oErrMsgMissingInput = oWrongInputMessage & " textbox '" & oControl.Name & "'" - MyValidationLogger.Warn(oErrMsgMissingInput) If oRegexMessage <> String.Empty Then oErrMsgMissingInput &= ":" & vbCrLf & oRegexMessage @@ -5936,7 +5991,6 @@ Public Class frmValidator My.Settings.Save() End Sub Private Sub btnSave_MouseHover(sender As Object, e As EventArgs) - 'Dim oMsg = ClassAllgemeineFunktionen.GUI_LANGUAGE_INFO("F2forSave") ToolTip1.Show(S.F2_für_Speichern, btnSave) End Sub @@ -5950,8 +6004,14 @@ Public Class frmValidator Sub SetStatusLabel(infotext As String, Optional pColor As String = "") bsiInformation.Caption = infotext & " " & Now.ToString If pColor <> String.Empty Then - bsiInformation.ItemAppearance.Normal.BackColor = Color.FromName(pColor) - bsiInformation.ItemAppearance.Normal.ForeColor = GraphicsEx.GetContrastedColor(Color.FromName(pColor)) + Try + bsiInformation.ItemAppearance.Normal.BackColor = Color.FromName(pColor) + bsiInformation.ItemAppearance.Normal.ForeColor = GraphicsEx.GetContrastedColor(Color.FromName(pColor)) + Catch ex As Exception + bsiInformation.ItemAppearance.Normal.BackColor = Color.Transparent + bsiInformation.ItemAppearance.Normal.ForeColor = Color.Black + End Try + Else bsiInformation.ItemAppearance.Normal.BackColor = Color.Transparent bsiInformation.ItemAppearance.Normal.ForeColor = Color.Black @@ -5999,7 +6059,6 @@ Public Class frmValidator Private Sub bbtniRefresh_ItemClick(sender As Object, e As ItemClickEventArgs) Handles bbtniRefresh.ItemClick Reload_Controls("") Try - 'btnSave.Text = ClassAllgemeineFunktionen.GUI_LANGUAGE_INFO("frmValidator.ValidationButton") btnSave.Text = S.Speichern___Nächster_Vorgang__F2_ Catch ex As Exception @@ -6250,17 +6309,42 @@ Public Class frmValidator End If End If Next - - - oProfile_NOT_RESP_SQL = clsPatterns.ReplaceAllValues(oProfile_NOT_RESP_SQL, PanelValidatorControl, True) + Dim oIncludeFI As Boolean = False + OverrideAll = True + Override = True + Override_SQLCommand = clsPatterns.ReplaceAllValues(oProfile_NOT_RESP_SQL, PanelValidatorControl, True) Dim oCaption As String = "Bestätigung - " If USER_LANGUAGE <> "de-DE" Then oCaption = "Confirmation - " End If - Dim frmDialog As New frmYesNo(oProfileNotResponsibleQuestion, oCaption + oProfileNotResponsibleText, oCommentSoFar) + Dim frmDialog As New frmYesNo(oProfileNotResponsibleQuestion, oCaption + oProfileNotResponsibleText, oCommentSoFar, PROFILE_NOT_RESP_COMMENT) frmDialog.ShowDialog() ' result = MessageBox.Show(oProfileNotResponsibleQuestion, ADDITIONAL_TITLE, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) If frmDialog.DialogResult = DialogResult.OK Then + Dim oOverrideDT As DataTable = DatabaseFallback.GetDatatableECM(Override_SQLCommand) + If Not IsNothing(oOverrideDT) Then + If oOverrideDT.Rows.Count = 1 Then + Try + OverrideAll = oOverrideDT?.Rows(0).Item("OverrideAll") + Catch ex As Exception + MyValidationLogger.Warn($"Could not set OverrideAll {ex.Message}") + End Try + Try + oIncludeFI = oOverrideDT?.Rows(0).Item("IncludeFI") + Catch ex As Exception + MyValidationLogger.Warn($"Could not set oIncludeFI {ex.Message}") + End Try + Else + MyValidationLogger.Info(String.Format("Result of oProfile_NOT_RESP_SQL did not delivered a Datatable - OverrideAll = True")) + End If + Else + MyValidationLogger.Warn(String.Format("oProfile_NOT_RESP_SQL returned Nothing - OverrideAll = True")) + End If + + If OverrideAll = True Then + MyValidationLogger.Info($"CURRENT_DOC_ID: {CURRENT_DOC_ID} - OverrideAll will be in Action!") + End If + 'For Each oControl As Control In PanelValidatorControl.Controls ' If DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Attribute = PROFIL_NOT_RESP_COMMENT_ATTR Then @@ -6282,13 +6366,8 @@ Public Class frmValidator Indexiere_File(CURRENT_WMFILE, PROFIL_NOT_RESP_COMMENT_ATTR, frmDialog.oComment) Else Dim oREsult = IDBData.SetVariableValue(PROFIL_NOT_RESP_COMMENT_ATTR, frmDialog.oComment) - End If - - OverrideAll = True - Override_SQLCommand = oProfile_NOT_RESP_SQL - Override = True - Finish_WFStep() + Finish_WFStep(oIncludeFI) End If End Sub diff --git a/app/TaskFlow/frmValidatorSearch.Designer.vb b/app/TaskFlow/frmValidatorSearch.Designer.vb index f15b712..b5e6a1a 100644 --- a/app/TaskFlow/frmValidatorSearch.Designer.vb +++ b/app/TaskFlow/frmValidatorSearch.Designer.vb @@ -150,7 +150,7 @@ Partial Class frmValidatorSearch ' Me.SplitContainerControlDoc.Panel2.Controls.Add(Me.DocumentViewer1) resources.ApplyResources(Me.SplitContainerControlDoc.Panel2, "SplitContainerControlDoc.Panel2") - Me.SplitContainerControlDoc.SplitterPosition = 351 + Me.SplitContainerControlDoc.SplitterPosition = 468 ' 'XtraTabControlDocs ' @@ -162,12 +162,13 @@ Partial Class frmValidatorSearch 'XtraTabPageDoc1 ' Me.XtraTabPageDoc1.Controls.Add(Me.GridControlDocSearch1) - Me.XtraTabPageDoc1.Name = "XtraTabPageDoc1" resources.ApplyResources(Me.XtraTabPageDoc1, "XtraTabPageDoc1") + Me.XtraTabPageDoc1.Name = "XtraTabPageDoc1" ' 'GridControlDocSearch1 ' resources.ApplyResources(Me.GridControlDocSearch1, "GridControlDocSearch1") + Me.GridControlDocSearch1.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlDocSearch1.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) GridLevelNode1.RelationName = "Level1" Me.GridControlDocSearch1.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode1}) Me.GridControlDocSearch1.MainView = Me.GridViewDocSearch1 @@ -180,6 +181,7 @@ Partial Class frmValidatorSearch Me.GridViewDocSearch1.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewDocSearch1.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewDocSearch1.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewDocSearch1.DetailHeight = 458 Me.GridViewDocSearch1.GridControl = Me.GridControlDocSearch1 Me.GridViewDocSearch1.Name = "GridViewDocSearch1" Me.GridViewDocSearch1.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -194,12 +196,13 @@ Partial Class frmValidatorSearch 'XtraTabPageDoc2 ' Me.XtraTabPageDoc2.Controls.Add(Me.GridControlDocSearch2) - Me.XtraTabPageDoc2.Name = "XtraTabPageDoc2" resources.ApplyResources(Me.XtraTabPageDoc2, "XtraTabPageDoc2") + Me.XtraTabPageDoc2.Name = "XtraTabPageDoc2" ' 'GridControlDocSearch2 ' resources.ApplyResources(Me.GridControlDocSearch2, "GridControlDocSearch2") + Me.GridControlDocSearch2.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlDocSearch2.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) Me.GridControlDocSearch2.MainView = Me.GridViewDocSearch2 Me.GridControlDocSearch2.Name = "GridControlDocSearch2" Me.GridControlDocSearch2.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDocSearch2}) @@ -210,6 +213,7 @@ Partial Class frmValidatorSearch Me.GridViewDocSearch2.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewDocSearch2.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewDocSearch2.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewDocSearch2.DetailHeight = 458 Me.GridViewDocSearch2.GridControl = Me.GridControlDocSearch2 Me.GridViewDocSearch2.Name = "GridViewDocSearch2" Me.GridViewDocSearch2.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -224,12 +228,13 @@ Partial Class frmValidatorSearch 'XtraTabPageDoc3 ' Me.XtraTabPageDoc3.Controls.Add(Me.GridControlDocSearch3) - Me.XtraTabPageDoc3.Name = "XtraTabPageDoc3" resources.ApplyResources(Me.XtraTabPageDoc3, "XtraTabPageDoc3") + Me.XtraTabPageDoc3.Name = "XtraTabPageDoc3" ' 'GridControlDocSearch3 ' resources.ApplyResources(Me.GridControlDocSearch3, "GridControlDocSearch3") + Me.GridControlDocSearch3.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlDocSearch3.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) Me.GridControlDocSearch3.MainView = Me.GridViewDocSearch3 Me.GridControlDocSearch3.Name = "GridControlDocSearch3" Me.GridControlDocSearch3.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDocSearch3}) @@ -240,6 +245,7 @@ Partial Class frmValidatorSearch Me.GridViewDocSearch3.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewDocSearch3.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewDocSearch3.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewDocSearch3.DetailHeight = 458 Me.GridViewDocSearch3.GridControl = Me.GridControlDocSearch3 Me.GridViewDocSearch3.Name = "GridViewDocSearch3" Me.GridViewDocSearch3.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -254,12 +260,13 @@ Partial Class frmValidatorSearch 'XtraTabPageDoc4 ' Me.XtraTabPageDoc4.Controls.Add(Me.GridControlDocSearch4) - Me.XtraTabPageDoc4.Name = "XtraTabPageDoc4" resources.ApplyResources(Me.XtraTabPageDoc4, "XtraTabPageDoc4") + Me.XtraTabPageDoc4.Name = "XtraTabPageDoc4" ' 'GridControlDocSearch4 ' resources.ApplyResources(Me.GridControlDocSearch4, "GridControlDocSearch4") + Me.GridControlDocSearch4.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlDocSearch4.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) Me.GridControlDocSearch4.MainView = Me.GridViewDocSearch4 Me.GridControlDocSearch4.Name = "GridControlDocSearch4" Me.GridControlDocSearch4.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDocSearch4}) @@ -270,6 +277,7 @@ Partial Class frmValidatorSearch Me.GridViewDocSearch4.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewDocSearch4.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewDocSearch4.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewDocSearch4.DetailHeight = 458 Me.GridViewDocSearch4.GridControl = Me.GridControlDocSearch4 Me.GridViewDocSearch4.Name = "GridViewDocSearch4" Me.GridViewDocSearch4.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -284,12 +292,13 @@ Partial Class frmValidatorSearch 'XtraTabPageDoc5 ' Me.XtraTabPageDoc5.Controls.Add(Me.GridControlDocSearch5) - Me.XtraTabPageDoc5.Name = "XtraTabPageDoc5" resources.ApplyResources(Me.XtraTabPageDoc5, "XtraTabPageDoc5") + Me.XtraTabPageDoc5.Name = "XtraTabPageDoc5" ' 'GridControlDocSearch5 ' resources.ApplyResources(Me.GridControlDocSearch5, "GridControlDocSearch5") + Me.GridControlDocSearch5.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlDocSearch5.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) Me.GridControlDocSearch5.MainView = Me.GridViewDocSearch5 Me.GridControlDocSearch5.Name = "GridControlDocSearch5" Me.GridControlDocSearch5.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDocSearch5}) @@ -300,6 +309,7 @@ Partial Class frmValidatorSearch Me.GridViewDocSearch5.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewDocSearch5.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewDocSearch5.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewDocSearch5.DetailHeight = 458 Me.GridViewDocSearch5.GridControl = Me.GridControlDocSearch5 Me.GridViewDocSearch5.Name = "GridViewDocSearch5" Me.GridViewDocSearch5.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -313,9 +323,11 @@ Partial Class frmValidatorSearch ' 'DocumentViewer1 ' + Me.DocumentViewer1.BackColor = System.Drawing.SystemColors.ControlLightLight resources.ApplyResources(Me.DocumentViewer1, "DocumentViewer1") Me.DocumentViewer1.FileLoaded = False Me.DocumentViewer1.Name = "DocumentViewer1" + Me.DocumentViewer1.Viewer_ForceTemporaryMode = False ' 'SplitContainerSearches ' @@ -344,12 +356,13 @@ Partial Class frmValidatorSearch 'XtraTabPageSearch1 ' Me.XtraTabPageSearch1.Controls.Add(Me.GridControlSearch1) - Me.XtraTabPageSearch1.Name = "XtraTabPageSearch1" resources.ApplyResources(Me.XtraTabPageSearch1, "XtraTabPageSearch1") + Me.XtraTabPageSearch1.Name = "XtraTabPageSearch1" ' 'GridControlSearch1 ' resources.ApplyResources(Me.GridControlSearch1, "GridControlSearch1") + Me.GridControlSearch1.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlSearch1.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) GridLevelNode2.RelationName = "Level1" Me.GridControlSearch1.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode2}) Me.GridControlSearch1.MainView = Me.GridViewSearch1 @@ -362,6 +375,7 @@ Partial Class frmValidatorSearch Me.GridViewSearch1.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewSearch1.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewSearch1.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewSearch1.DetailHeight = 458 Me.GridViewSearch1.GridControl = Me.GridControlSearch1 Me.GridViewSearch1.Name = "GridViewSearch1" Me.GridViewSearch1.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -376,12 +390,13 @@ Partial Class frmValidatorSearch 'XtraTabPageSearch2 ' Me.XtraTabPageSearch2.Controls.Add(Me.GridControlSearch2) - Me.XtraTabPageSearch2.Name = "XtraTabPageSearch2" resources.ApplyResources(Me.XtraTabPageSearch2, "XtraTabPageSearch2") + Me.XtraTabPageSearch2.Name = "XtraTabPageSearch2" ' 'GridControlSearch2 ' resources.ApplyResources(Me.GridControlSearch2, "GridControlSearch2") + Me.GridControlSearch2.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlSearch2.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) GridLevelNode3.RelationName = "Level1" Me.GridControlSearch2.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode3}) Me.GridControlSearch2.MainView = Me.GridViewSearch2 @@ -394,6 +409,7 @@ Partial Class frmValidatorSearch Me.GridViewSearch2.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewSearch2.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewSearch2.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewSearch2.DetailHeight = 458 Me.GridViewSearch2.GridControl = Me.GridControlSearch2 Me.GridViewSearch2.Name = "GridViewSearch2" Me.GridViewSearch2.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -408,12 +424,13 @@ Partial Class frmValidatorSearch 'XtraTabPageSearch3 ' Me.XtraTabPageSearch3.Controls.Add(Me.GridControlSearch3) - Me.XtraTabPageSearch3.Name = "XtraTabPageSearch3" resources.ApplyResources(Me.XtraTabPageSearch3, "XtraTabPageSearch3") + Me.XtraTabPageSearch3.Name = "XtraTabPageSearch3" ' 'GridControlSearch3 ' resources.ApplyResources(Me.GridControlSearch3, "GridControlSearch3") + Me.GridControlSearch3.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlSearch3.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) GridLevelNode4.RelationName = "Level1" Me.GridControlSearch3.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode4}) Me.GridControlSearch3.MainView = Me.GridViewSearch3 @@ -426,6 +443,7 @@ Partial Class frmValidatorSearch Me.GridViewSearch3.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewSearch3.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewSearch3.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewSearch3.DetailHeight = 458 Me.GridViewSearch3.GridControl = Me.GridControlSearch3 Me.GridViewSearch3.Name = "GridViewSearch3" Me.GridViewSearch3.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -440,12 +458,13 @@ Partial Class frmValidatorSearch 'XtraTabPageSearch4 ' Me.XtraTabPageSearch4.Controls.Add(Me.GridControlSearch4) - Me.XtraTabPageSearch4.Name = "XtraTabPageSearch4" resources.ApplyResources(Me.XtraTabPageSearch4, "XtraTabPageSearch4") + Me.XtraTabPageSearch4.Name = "XtraTabPageSearch4" ' 'GridControlSearch4 ' resources.ApplyResources(Me.GridControlSearch4, "GridControlSearch4") + Me.GridControlSearch4.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlSearch4.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) GridLevelNode5.RelationName = "Level1" Me.GridControlSearch4.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode5}) Me.GridControlSearch4.MainView = Me.GridViewSearch4 @@ -458,6 +477,7 @@ Partial Class frmValidatorSearch Me.GridViewSearch4.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewSearch4.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewSearch4.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewSearch4.DetailHeight = 458 Me.GridViewSearch4.GridControl = Me.GridControlSearch4 Me.GridViewSearch4.Name = "GridViewSearch4" Me.GridViewSearch4.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -472,12 +492,13 @@ Partial Class frmValidatorSearch 'XtraTabPageSearch5 ' Me.XtraTabPageSearch5.Controls.Add(Me.GridControlSearch5) - Me.XtraTabPageSearch5.Name = "XtraTabPageSearch5" resources.ApplyResources(Me.XtraTabPageSearch5, "XtraTabPageSearch5") + Me.XtraTabPageSearch5.Name = "XtraTabPageSearch5" ' 'GridControlSearch5 ' resources.ApplyResources(Me.GridControlSearch5, "GridControlSearch5") + Me.GridControlSearch5.EmbeddedNavigator.Margin = CType(resources.GetObject("GridControlSearch5.EmbeddedNavigator.Margin"), System.Windows.Forms.Padding) GridLevelNode6.RelationName = "Level1" Me.GridControlSearch5.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode6}) Me.GridControlSearch5.MainView = Me.GridViewSearch5 @@ -490,6 +511,7 @@ Partial Class frmValidatorSearch Me.GridViewSearch5.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewSearch5.Appearance.SelectedRow.BackColor = System.Drawing.Color.Lime Me.GridViewSearch5.Appearance.SelectedRow.Options.UseBackColor = True + Me.GridViewSearch5.DetailHeight = 458 Me.GridViewSearch5.GridControl = Me.GridControlSearch5 Me.GridViewSearch5.Name = "GridViewSearch5" Me.GridViewSearch5.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] @@ -539,6 +561,7 @@ Partial Class frmValidatorSearch ' 'ToolStrip1 ' + Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(20, 20) Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripDropDownButtonFile, Me.ToolStripButtonRefreshSearches}) resources.ApplyResources(Me.ToolStrip1, "ToolStrip1") Me.ToolStrip1.Name = "ToolStrip1" diff --git a/app/TaskFlow/frmValidatorSearch.resx b/app/TaskFlow/frmValidatorSearch.resx index f85acc3..8668086 100644 --- a/app/TaskFlow/frmValidatorSearch.resx +++ b/app/TaskFlow/frmValidatorSearch.resx @@ -125,20 +125,32 @@ 0, 0 + + 4, 4, 4, 4 + Fill 0, 0 + + 4, 4, 4, 4 + Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 233, 373 + 583, 933 @@ -156,8 +168,11 @@ 0 + + 5, 5, 5, 5 + - 349, 559 + 466, 746 XtraTabPage1 @@ -175,7 +190,7 @@ 0 - 351, 582 + 468, 764 4 @@ -183,11 +198,17 @@ Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 233, 373 + 583, 920 1 @@ -204,8 +225,11 @@ 0 + + 5, 5, 5, 5 + - 349, 559 + 466, 736 XtraTabPage2 @@ -225,11 +249,17 @@ Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 233, 373 + 583, 916 1 @@ -246,8 +276,11 @@ 0 + + 5, 5, 5, 5 + - 349, 559 + 466, 733 XtraTabPage1 @@ -267,11 +300,17 @@ Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 233, 373 + 583, 916 1 @@ -288,8 +327,11 @@ 0 + + 5, 5, 5, 5 + - 349, 559 + 466, 733 XtraTabPage2 @@ -309,11 +351,17 @@ Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 233, 373 + 583, 916 1 @@ -330,8 +378,11 @@ 0 + + 5, 5, 5, 5 + - 349, 559 + 466, 733 XtraTabPage3 @@ -381,8 +432,11 @@ 0, 0 + + 5, 5, 5, 5 + - 286, 582 + 621, 764 0 @@ -391,7 +445,7 @@ DocumentViewer1 - DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null + DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=2.4.0.0, Culture=neutral, PublicKeyToken=null SplitContainerControlDoc.Panel2 @@ -415,7 +469,7 @@ 1 - 647, 582 + 1101, 764 6 @@ -436,7 +490,10 @@ Fill - 0, 25 + 0, 31 + + + 4, 4, 4, 4 Fill @@ -444,14 +501,23 @@ 0, 0 + + 4, 4, 4, 4 + Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 374, 375 + 639, 926 1 @@ -468,8 +534,11 @@ 0 + + 5, 5, 5, 5 + - 561, 562 + 511, 741 Search1 @@ -487,7 +556,7 @@ 0 - 563, 585 + 513, 769 4 @@ -495,11 +564,17 @@ Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 374, 375 + 639, 915 2 @@ -516,8 +591,11 @@ 0 + + 4, 4, 4, 4 + - 561, 562 + 511, 732 Search2 @@ -537,11 +615,17 @@ Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 374, 375 + 639, 915 2 @@ -558,8 +642,11 @@ 0 + + 4, 4, 4, 4 + - 561, 562 + 511, 732 XtraTabPage1 @@ -579,11 +666,17 @@ Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 374, 375 + 639, 915 2 @@ -600,8 +693,11 @@ 0 + + 4, 4, 4, 4 + - 561, 562 + 511, 732 XtraTabPage2 @@ -621,11 +717,17 @@ Fill + + 4, 4, 4, 4 + 0, 0 + + 4, 4, 4, 4 + - 374, 375 + 639, 915 2 @@ -642,8 +744,11 @@ 0 + + 4, 4, 4, 4 + - 561, 562 + 511, 732 XtraTabPage3 @@ -676,19 +781,22 @@ 595, 17 - 91, 17 + 115, 20 No action so far - 0, 17 + 0, 20 - 0, 585 + 0, 769 + + + 1, 0, 19, 0 - 563, 22 + 513, 26 5 @@ -727,22 +835,22 @@ Bottom - 61, 22 + 79, 28 tslblDocID - 91, 22 + 115, 28 No action so far - 0, 582 + 0, 764 - 647, 25 + 1101, 31 3 @@ -775,7 +883,10 @@ 1 - 1214, 607 + 1619, 795 + + + 5 3 @@ -796,13 +907,13 @@ 17, 17 - 148, 22 + 184, 26 Öffnen - 148, 22 + 184, 26 Eigenschaften @@ -811,7 +922,7 @@ Magenta - 63, 22 + 79, 28 Datei @@ -820,7 +931,7 @@ Magenta - 131, 22 + 162, 28 Aktualisiere Ansicht @@ -829,7 +940,7 @@ 0, 0 - 1214, 25 + 1619, 31 0 @@ -855,7 +966,7 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAZCAYAAABQDyyRAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6 - JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsOAAALDgFAvuFBAAACbElE + JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsMAAALDAE/QCLIAAACbElE QVRIS8WQb0gTcRyHJYig3hgkBBlRb8I3UvNdEHm9iOjUbU6mopUL2rIgx0SwUTTILUTJSJpJKbHWKlkm EUhW4Mxw2h9tI0PT6bYWbbkyk+n+3Se8mun9or3Quw4e7u6B+32f+6YASPmfEEJoCCE0hBAaQggNIf5F R5txrbW1cfRpu2FSX606+Oi2LnarSYebRh2aG7Ro1FdCpy5hjHVarcxKXZRZqW7uGVwIkYzONpNlbtJg @@ -870,7 +981,7 @@ - 189, 30 + 218, 30 Eigenschaften Datei @@ -922,7 +1033,7 @@ XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+ tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/ - 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDgAACw4BQL7hQQAAAYdJREFUOE+NkG0rQ2Ec + 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDAAACwwBP0AiyAAAAYdJREFUOE+NkG0rQ2Ec h/clfBS+gFdEXox3iqI85d0UjUKTp02O7axlM9vMkZ0sIxQSIdsLUUZ5bnmIzZrZ5uzBOT/d01bOjjN3 XXV397+uuv8KAAophgzO8gGKQfeoHcO0C2qtrVc8Qyh4yNGooqFs09WTe2ePtWSQYtClma1rUBnwr4CY drWpurZDh5q2ycKA0bkOKei5NThXfeNkRtk+gZpWClUteumA1JmyraCssjkfkUI2MGFxY/PQn4toxXLR @@ -933,28 +1044,28 @@ - 189, 30 + 218, 30 Datei öffnen - 186, 6 + 215, 6 - 189, 30 + 218, 30 Aktualisieren - 189, 30 + 218, 30 Layout zurücksetzen - 190, 130 + 219, 130 ContextMenuStripWMFile @@ -966,16 +1077,16 @@ 423, 17 - 147, 6 + 168, 6 - 150, 30 + 171, 30 Aktualisieren - 151, 40 + 172, 40 ContextMenuStripSQL @@ -990,10 +1101,10 @@ 81 - 6, 13 + 8, 17 - 1214, 632 + 1619, 826 Tahoma, 8.25pt @@ -1031,6 +1142,9 @@ AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAP//AAA= + + 4, 4, 4, 4 + Zusätzliche Suchen diff --git a/app/TaskFlow/frmValidatorSearch.vb b/app/TaskFlow/frmValidatorSearch.vb index 2eb1841..22ca51c 100644 --- a/app/TaskFlow/frmValidatorSearch.vb +++ b/app/TaskFlow/frmValidatorSearch.vb @@ -87,6 +87,7 @@ Public Class frmValidatorSearch '#### SQL Tabs Design Laden If DTSQL.Rows.Count > 0 Then + LOGGER.Debug(String.Format("[{0} SQL-Definitions]", DTSQL.Rows.Count)) For p As Integer = 0 To XtraTabControlSQL.TabPages.Count - 1 If XtraTabControlSQL.TabPages(p).TabIndex >= TabCountSQL Then XtraTabControlSQL.TabPages(p).PageVisible = False @@ -102,6 +103,7 @@ Public Class frmValidatorSearch End If If DTDOC.Rows.Count > 0 Then + LOGGER.Debug(String.Format("[{0} Doc-Definitions]", DTDOC.Rows.Count)) '#### Doc Tabs Design Laden For p As Integer = 0 To XtraTabControlDocs.TabPages.Count - 1 If XtraTabControlDocs.TabPages(p).TabIndex >= TabCountDoc Then @@ -454,9 +456,14 @@ Public Class frmValidatorSearch End If End If If My.Settings.frmValidatorSearchSize.IsEmpty = False Then - Size = My.Settings.frmValidatorSearchSize + If My.Settings.frmValidatorSearchSize.Height > 120 And My.Settings.frmValidatorSearchSize.Width > 120 Then + Me.Size = My.Settings.frmValidatorSearchSize + End If End If - SplitContainerSearches.SplitterDistance = My.Settings.frmValSearchSplitterDistance + If My.Settings.frmValSearchSplitterDistance > 20 Then + SplitContainerSearches.SplitterDistance = My.Settings.frmValSearchSplitterDistance + End If + ToolStripDropDownButtonFile.Visible = False End Sub diff --git a/app/TaskFlow/frmYesNo.Designer.vb b/app/TaskFlow/frmYesNo.Designer.vb index a51ee36..825f6ba 100644 --- a/app/TaskFlow/frmYesNo.Designer.vb +++ b/app/TaskFlow/frmYesNo.Designer.vb @@ -56,7 +56,7 @@ Partial Class frmYesNo ' resources.ApplyResources(Me.PictureEdit1, "PictureEdit1") Me.PictureEdit1.Name = "PictureEdit1" - Me.PictureEdit1.Properties.Appearance.BackColor = System.Drawing.SystemColors.Control + Me.PictureEdit1.Properties.Appearance.BackColor = System.Drawing.Color.White Me.PictureEdit1.Properties.Appearance.Options.UseBackColor = True Me.PictureEdit1.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder Me.PictureEdit1.Properties.ShowCameraMenuItem = DevExpress.XtraEditors.Controls.CameraMenuItemVisibility.[Auto] @@ -64,7 +64,7 @@ Partial Class frmYesNo ' 'txtQuestion ' - Me.txtQuestion.BackColor = System.Drawing.SystemColors.Control + Me.txtQuestion.BackColor = System.Drawing.Color.White Me.txtQuestion.BorderStyle = System.Windows.Forms.BorderStyle.None resources.ApplyResources(Me.txtQuestion, "txtQuestion") Me.txtQuestion.Name = "txtQuestion" diff --git a/app/TaskFlow/frmYesNo.resx b/app/TaskFlow/frmYesNo.resx index c2424e8..252f229 100644 --- a/app/TaskFlow/frmYesNo.resx +++ b/app/TaskFlow/frmYesNo.resx @@ -187,7 +187,7 @@ 1 - 242, 277 + 243, 265 4, 4, 4, 4 @@ -273,7 +273,7 @@ True - 378, 68 + 378, 54 3 @@ -330,7 +330,7 @@ True - 428, 139 + 429, 135 0 @@ -354,7 +354,7 @@ 7, 16 - 452, 326 + 453, 316 Tahoma, 9.75pt diff --git a/app/TaskFlow/frmYesNo.vb b/app/TaskFlow/frmYesNo.vb index 01aa811..98c243a 100644 --- a/app/TaskFlow/frmYesNo.vb +++ b/app/TaskFlow/frmYesNo.vb @@ -3,18 +3,20 @@ Public Class frmYesNo Dim oQuestion As String Dim oCaption As String + Dim CommentInput As Boolean Public oComment As String - Public Sub New(pQuestion As String, pCaption As String, pCommentSoFar As String) + Public Sub New(pQuestion As String, pCaption As String, pCommentSoFar As String, pCommentInput As Boolean) MyBase.New() oQuestion = pQuestion oCaption = pCaption oComment = pCommentSoFar + CommentInput = pCommentInput InitializeComponent() ' Add any initialization after the InitializeComponent() call. End Sub Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click - If txtReason.Text = String.Empty Then + If txtReason.Text = String.Empty And CommentInput = True Then Dim oStop As String If USER_LANGUAGE = "de-DE" Then oStop = "Bitte eine Begründung eingeben!" @@ -42,6 +44,15 @@ Public Class frmYesNo Private Sub frmYesNo_Load(sender As Object, e As EventArgs) Handles Me.Load txtQuestion.Text = oQuestion txtReason.Text = oComment + If CommentInput = False Then + LabelControl1.Visible = False + txtReason.Visible = False + Me.Size = New Drawing.Size(455, 170) + Else + LabelControl1.Visible = True + txtReason.Visible = True + Me.Size = New Drawing.Size(455, 330) + End If Me.Text = oCaption End Sub End Class diff --git a/app/TaskFlow/GdPicture.NET.14.Imaging.Rendering.Skia.64.dll b/app/TaskFlow/lib/GdPicture14/GdPicture.NET.14.Imaging.Rendering.Skia.64.dll similarity index 100% rename from app/TaskFlow/GdPicture.NET.14.Imaging.Rendering.Skia.64.dll rename to app/TaskFlow/lib/GdPicture14/GdPicture.NET.14.Imaging.Rendering.Skia.64.dll diff --git a/app/TaskFlow/GdPicture.NET.14.filters.64.dll b/app/TaskFlow/lib/GdPicture14/GdPicture.NET.14.filters.64.dll similarity index 100% rename from app/TaskFlow/GdPicture.NET.14.filters.64.dll rename to app/TaskFlow/lib/GdPicture14/GdPicture.NET.14.filters.64.dll diff --git a/app/TaskFlow/GdPicture.NET.14.image.gdimgplug.64.dll b/app/TaskFlow/lib/GdPicture14/GdPicture.NET.14.image.gdimgplug.64.dll similarity index 100% rename from app/TaskFlow/GdPicture.NET.14.image.gdimgplug.64.dll rename to app/TaskFlow/lib/GdPicture14/GdPicture.NET.14.image.gdimgplug.64.dll diff --git a/app/TaskFlow/packages.config b/app/TaskFlow/packages.config index e74c9ff..607cd16 100644 --- a/app/TaskFlow/packages.config +++ b/app/TaskFlow/packages.config @@ -1,19 +1,9 @@  - - - - - - - - - - - + @@ -35,7 +25,7 @@ - +