diff --git a/app/DD_PM_WINDREAM/ClassControlCreator.vb b/app/DD_PM_WINDREAM/ClassControlCreator.vb index d43de9d..35e7e0a 100644 --- a/app/DD_PM_WINDREAM/ClassControlCreator.vb +++ b/app/DD_PM_WINDREAM/ClassControlCreator.vb @@ -288,6 +288,7 @@ Public Class ClassControlCreator oControl.Text = row.Item("CTRL_TEXT") oControl.Height = row.Item("HEIGHT") oControl.Width = row.Item("WIDTH") + If Not IsNothing(ctrl_image) And Not IsNothing(oBitmap) Then oControl.Image = oBitmap oControl.ImageAlign = ContentAlignment.MiddleLeft diff --git a/app/DD_PM_WINDREAM/ClassIDBData.vb b/app/DD_PM_WINDREAM/ClassIDBData.vb index 4a2b4dc..e9f6efd 100644 --- a/app/DD_PM_WINDREAM/ClassIDBData.vb +++ b/app/DD_PM_WINDREAM/ClassIDBData.vb @@ -13,11 +13,13 @@ Public Function GetIndicesByBE(ByVal BusinessEntity As String) As String() Try ' Array für Indizes vorbereiten - Dim aIndexNames(DTVWIDB_BE_ATTRIBUTE.Rows.Count - 1) As String + Dim aIndexNames(DTVWIDB_BE_ATTRIBUTE.Rows.Count) As String Dim oCount As Integer = 0 + aIndexNames(oCount) = "ObjectID" For Each oRow As DataRow In DTVWIDB_BE_ATTRIBUTE.Rows - aIndexNames(oCount) = oRow.Item("ATTR_TITLE") oCount += 1 + aIndexNames(oCount) = oRow.Item("ATTR_TITLE") + Next diff --git a/app/DD_PM_WINDREAM/ClassInit.vb b/app/DD_PM_WINDREAM/ClassInit.vb index 058a1f1..210332b 100644 --- a/app/DD_PM_WINDREAM/ClassInit.vb +++ b/app/DD_PM_WINDREAM/ClassInit.vb @@ -248,12 +248,21 @@ Public Class ClassInit Public Shared Sub InitBasics() Try - Dim sql = String.Format("select * from TBPM_KONFIGURATION WHERE GUID = 1") - CURRENT_DT_CONFIG = ClassDatabase.Return_Datatable(sql) + Dim oSql = String.Format("select * from TBPM_KONFIGURATION WHERE GUID = 1") + CURRENT_DT_CONFIG = ClassDatabase.Return_Datatable(oSql) - sql = "select * from TBDD_CONNECTION" - CURRENT_DT_TBDD_CONNECTION = ClassDatabase.Return_Datatable(sql) + oSql = "select * from TBDD_CONNECTION" + CURRENT_DT_TBDD_CONNECTION = ClassDatabase.Return_Datatable(oSql) Settings_LoadBasicConfig() + + oSql = "Select * from TBDD_3RD_PARTY_MODULES" + Dim oDT As DataTable = ClassDatabase.Return_Datatable(oSql) + For Each oROW As DataRow In oDT.Rows + If oROW.Item("NAME") = "GDPICTURE" Then + GDPICTURE_LICENSE = oROW.Item("LICENSE") + End If + Next + Catch ex As Exception LOGGER.Error(ex) LOGGER.Info("Unexpected Error in InitBasics: " & ex.Message, True) diff --git a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj index d15d8a6..d4dbe35 100644 --- a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj +++ b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj @@ -385,6 +385,7 @@ + diff --git a/app/DD_PM_WINDREAM/ModuleHelper.vb b/app/DD_PM_WINDREAM/ModuleHelper.vb new file mode 100644 index 0000000..cbfbd23 --- /dev/null +++ b/app/DD_PM_WINDREAM/ModuleHelper.vb @@ -0,0 +1,28 @@ +Module ModuleHelper + Public Function ByteArrayToBitmap(bytearray() As Byte) As Bitmap + Return New Bitmap(New System.IO.MemoryStream(bytearray)) + End Function + + Public Function StringToByteArray(ByVal hex As String) As Byte() + Dim NumberChars As Integer = hex.Length + + Dim bytes(NumberChars / 2) As Byte + + For i As Integer = 0 To NumberChars - 1 Step 2 + bytes(i / 2) = Convert.ToByte(hex.Substring(i, 2), 16) + Next + + Return bytes + End Function + + Public Function BitmapToByteArray(bitmap As Bitmap) As Byte() + Dim bytearray As Byte() + + Using stream As New System.IO.MemoryStream + bitmap.Save(stream, bitmap.RawFormat) + bytearray = stream.ToArray() + End Using + + Return bytearray + End Function +End Module diff --git a/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb b/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb index 4a03bb1..df8c025 100644 --- a/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb +++ b/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb @@ -92,4 +92,6 @@ Module ModuleRuntimeVariables Public LOGCONFIG As LogConfig Public LOGGER As Logger Public CONFIG As ConfigManager(Of ClassConfig) + + Public GDPICTURE_LICENSE As String End Module diff --git a/app/DD_PM_WINDREAM/clsPatterns.vb b/app/DD_PM_WINDREAM/clsPatterns.vb index 7ec6b67..da1b560 100644 --- a/app/DD_PM_WINDREAM/clsPatterns.vb +++ b/app/DD_PM_WINDREAM/clsPatterns.vb @@ -193,7 +193,13 @@ Public Class clsPatterns While ContainsPattern(result, PATTERN_IDBA) Dim indexName As String = GetNextPattern(result, PATTERN_IDBA).Value - Dim oIDBValue = IDBData.GetVariableValue(indexName) + Dim oIDBValue + If indexName = "ObjectID" Then + oIDBValue = CURRENT_DOC_ID + Else + oIDBValue = IDBData.GetVariableValue(indexName) + End If + If IsNothing(oIDBValue) And oTryCounter = MAX_TRY_COUNT Then LOGGER.Warn("Exit from ReplaceWindreamIndicies as oWMValue is still nothing and oTryCounter is 500!") Throw New Exception("Max tries in ReplaceWindreamIndicies exceeded.") diff --git a/app/DD_PM_WINDREAM/frmAdministration.Designer.vb b/app/DD_PM_WINDREAM/frmAdministration.Designer.vb index 7970c61..8dc647b 100644 --- a/app/DD_PM_WINDREAM/frmAdministration.Designer.vb +++ b/app/DD_PM_WINDREAM/frmAdministration.Designer.vb @@ -140,6 +140,7 @@ Partial Class frmAdministration Me.TabPage1 = New System.Windows.Forms.TabPage() Me.tabctrl_Profilkonfig = New System.Windows.Forms.TabControl() Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.Label7 = New System.Windows.Forms.Label() Me.Label4 = New System.Windows.Forms.Label() Me.Label9 = New System.Windows.Forms.Label() Me.DISPLAY_MODEComboBox = New System.Windows.Forms.ComboBox() @@ -249,7 +250,6 @@ Partial Class frmAdministration Me.FNPM_GET_FREE_USER_FOR_PROFILETableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.FNPM_GET_FREE_USER_FOR_PROFILETableAdapter() Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter = New DD_PM_WINDREAM.FinalIndexDataSetTableAdapters.TBPM_PROFILE_FINAL_INDEXINGTableAdapter() Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components) - Me.Label7 = New System.Windows.Forms.Label() GUIDLabel = New System.Windows.Forms.Label() NAMELabel = New System.Windows.Forms.Label() DESCRIPTIONLabel = New System.Windows.Forms.Label() @@ -1140,6 +1140,11 @@ Partial Class frmAdministration Me.TabPage5.Name = "TabPage5" Me.TabPage5.UseVisualStyleBackColor = True ' + 'Label7 + ' + resources.ApplyResources(Me.Label7, "Label7") + Me.Label7.Name = "Label7" + ' 'Label4 ' resources.ApplyResources(Me.Label4, "Label4") @@ -1870,11 +1875,6 @@ Partial Class frmAdministration ' Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter.ClearBeforeFill = True ' - 'Label7 - ' - resources.ApplyResources(Me.Label7, "Label7") - Me.Label7.Name = "Label7" - ' 'frmAdministration ' resources.ApplyResources(Me, "$this") diff --git a/app/DD_PM_WINDREAM/frmAdministration.resx b/app/DD_PM_WINDREAM/frmAdministration.resx index d5e5443..691a857 100644 --- a/app/DD_PM_WINDREAM/frmAdministration.resx +++ b/app/DD_PM_WINDREAM/frmAdministration.resx @@ -2570,7 +2570,7 @@ 6 - 627, 278 + 627, 281 93 @@ -2597,7 +2597,7 @@ 627, 0 - 323, 278 + 323, 281 91 @@ -2618,7 +2618,7 @@ 3, 166 - 950, 278 + 950, 281 94 diff --git a/app/DD_PM_WINDREAM/frmAdministration.vb b/app/DD_PM_WINDREAM/frmAdministration.vb index 739840e..95510f1 100644 --- a/app/DD_PM_WINDREAM/frmAdministration.vb +++ b/app/DD_PM_WINDREAM/frmAdministration.vb @@ -67,8 +67,6 @@ Public Class frmAdministration End If ObjekttypenEintragen() Indexe_eintragen() - - End Sub Sub Indexe_eintragen() If cmbObjekttypen.Text <> "" Then @@ -80,6 +78,8 @@ Public Class frmAdministration If IDB_ACTIVE = False Then PM_VEKTOR_INDEXComboBox.Enabled = True Label4.Enabled = True + cmbLOGIndex.Enabled = True + Label9.Enabled = True Try Dim indexe = WINDREAM.GetIndicesByObjecttype(cmbObjekttypen.Text) If indexe IsNot Nothing Then @@ -111,7 +111,19 @@ Public Class frmAdministration PM_VEKTOR_INDEXComboBox.SelectedIndex = -1 cmbLOGIndex.SelectedIndex = -1 End Try + If Me.PM_VEKTOR_INDEXComboBox.Text <> "" Then + PM_VEKTOR_INDEXComboBox.SelectedIndex = PM_VEKTOR_INDEXComboBox.FindStringExact(Me.PM_VEKTOR_INDEXComboBox.Text) + Else + PM_VEKTOR_INDEXComboBox.SelectedIndex = -1 + End If + If Me.cmbLOGIndex.Text <> "" Then + cmbLOGIndex.SelectedIndex = cmbLOGIndex.FindStringExact(Me.cmbLOGIndex.Text) + Else + cmbLOGIndex.SelectedIndex = -1 + End If Else + cmbLOGIndex.Enabled = False + Label9.Enabled = False PM_VEKTOR_INDEXComboBox.Enabled = False Label4.Enabled = False Try @@ -137,16 +149,7 @@ Public Class frmAdministration End If - If Me.PM_VEKTOR_INDEXComboBox.Text <> "" Then - PM_VEKTOR_INDEXComboBox.SelectedIndex = PM_VEKTOR_INDEXComboBox.FindStringExact(Me.PM_VEKTOR_INDEXComboBox.Text) - Else - PM_VEKTOR_INDEXComboBox.SelectedIndex = -1 - End If - If Me.cmbLOGIndex.Text <> "" Then - cmbLOGIndex.SelectedIndex = cmbLOGIndex.FindStringExact(Me.cmbLOGIndex.Text) - Else - cmbLOGIndex.SelectedIndex = -1 - End If + End If diff --git a/app/DD_PM_WINDREAM/frmFormDesigner.vb b/app/DD_PM_WINDREAM/frmFormDesigner.vb index 65c156b..f25761a 100644 --- a/app/DD_PM_WINDREAM/frmFormDesigner.vb +++ b/app/DD_PM_WINDREAM/frmFormDesigner.vb @@ -5,6 +5,7 @@ Imports DevExpress.XtraGrid.Columns Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid.Views.Grid.ViewInfo Imports DigitalData.Controls.LookupGrid +Imports System.Drawing Public Class frmFormDesigner Public ProfileId As Integer @@ -673,57 +674,65 @@ Public Class frmFormDesigner End Sub Private Sub OnControl_MouseUp(sender As Control, e As MouseEventArgs) - Mouse_IsPressed = False + Try + Mouse_IsPressed = False - ' Control Eigenschaften laden - LoadControlProperties(sender) + ' Control Eigenschaften laden + LoadControlProperties(sender) + + If Mouse_IsMoving = False Then + MyBase.Cursor = Cursors.Default + Exit Sub + End If + + Mouse_IsMoving = False + + Dim CurrentPosition = CurrentControl.Location + Dim OldPosition As Point = DirectCast(pgControls.SelectedObject, BaseProperties).Location + + If CurrentPosition.X = OldPosition.X + 2 And CurrentPosition.Y = OldPosition.Y + 2 Then + CurrentControl.Location = New Point(CurrentPosition.X - 2, CurrentPosition.Y - 2) + MyBase.Cursor = Cursors.Default + Exit Sub + End If + + If Not Point.op_Inequality(CurrentPosition, OldPosition) Then + MyBase.Cursor = Cursors.Default + Exit Sub + End If + + ' Das Control sollte nicht außerhalb des Panels geschoben werden (Koordinaten kleiner 0) + If CurrentPosition.X < 0 Then + CurrentControl.Location = New Point(0, CurrentControl.Location.Y) + End If + + If CurrentPosition.Y < 0 Then + CurrentControl.Location = New Point(CurrentControl.Location.X, 0) + End If + + ' Ebenso nicht über die Größe des Panels (X-Achse) + If CurrentPosition.X > pnldesigner.Width Then + CurrentControl.Location = New Point(pnldesigner.Width - CurrentControl.Width, CurrentControl.Location.Y) + End If + + ' Ebenso nicht über die Größe des Panels (Y-Achse) + If CurrentPosition.Y > pnldesigner.Height Then + CurrentControl.Location = New Point(CurrentControl.Location.X, pnldesigner.Height - CurrentControl.Height) + End If + + DirectCast(pgControls.SelectedObject, BaseProperties).Location = CurrentControl.Location + + UpdateSingleValue("X_LOC", CurrentControl.Location.X) + UpdateSingleValue("Y_LOC", CurrentControl.Location.Y) - If Mouse_IsMoving = False Then MyBase.Cursor = Cursors.Default - Exit Sub - End If + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Critical) + LOGGER.Error(ex) + Mouse_IsMoving = False + Mouse_IsPressed = False + End Try - Mouse_IsMoving = False - - Dim CurrentPosition = CurrentControl.Location - Dim OldPosition As Point = DirectCast(pgControls.SelectedObject, BaseProperties).Location - - If CurrentPosition.X = OldPosition.X + 2 And CurrentPosition.Y = OldPosition.Y + 2 Then - CurrentControl.Location = New Point(CurrentPosition.X - 2, CurrentPosition.Y - 2) - MyBase.Cursor = Cursors.Default - Exit Sub - End If - - If Not Point.op_Inequality(CurrentPosition, OldPosition) Then - MyBase.Cursor = Cursors.Default - Exit Sub - End If - - ' Das Control sollte nicht außerhalb des Panels geschoben werden (Koordinaten kleiner 0) - If CurrentPosition.X < 0 Then - CurrentControl.Location = New Point(0, CurrentControl.Location.Y) - End If - - If CurrentPosition.Y < 0 Then - CurrentControl.Location = New Point(CurrentControl.Location.X, 0) - End If - - ' Ebenso nicht über die Größe des Panels (X-Achse) - If CurrentPosition.X > pnldesigner.Width Then - CurrentControl.Location = New Point(pnldesigner.Width - CurrentControl.Width, CurrentControl.Location.Y) - End If - - ' Ebenso nicht über die Größe des Panels (Y-Achse) - If CurrentPosition.Y > pnldesigner.Height Then - CurrentControl.Location = New Point(CurrentControl.Location.X, pnldesigner.Height - CurrentControl.Height) - End If - - DirectCast(pgControls.SelectedObject, BaseProperties).Location = CurrentControl.Location - - UpdateSingleValue("X_LOC", CurrentControl.Location.X) - UpdateSingleValue("Y_LOC", CurrentControl.Location.Y) - - MyBase.Cursor = Cursors.Default End Sub Private Sub OnControl_MouseMove(sender As Control, e As MouseEventArgs) @@ -910,8 +919,12 @@ Public Class frmFormDesigner oButtonProps.Override_SQL = New SQLValue(NotNull(row.Item("SQL2"), "")) oButtonProps.Enable_SQL = New SQLValue(NotNull(row.Item("SQL_ENABLE"), "")) If Not IsDBNull(row.Item("IMAGE_CONTROL")) Then - oButtonProps.CtrlImage = New ImageValue(row.Item("IMAGE_CONTROL")) + Dim obimg() As Byte = row.Item("IMAGE_CONTROL") + Dim oBitmap As Bitmap = ByteArrayToBitmap(obimg) + oButtonProps.CtrlImage = New ImageValue(Nothing) + oButton.Image = oBitmap End If + props = oButtonProps Else MsgBox("This is not a supported control type!") @@ -928,7 +941,7 @@ Public Class frmFormDesigner Private Sub pgControls_PropertyValueChanged(s As Object, e As PropertyValueChangedEventArgs) Handles pgControls.PropertyValueChanged Dim oldValue As Object = e.OldValue - Dim newValue As Object = e.ChangedItem.Value + Dim newValue = e.ChangedItem.Value Dim prop As String = e.ChangedItem.Label Select Case prop @@ -1009,7 +1022,10 @@ Public Class frmFormDesigner Case "SQLCommand" UpdateSingleValue("SQL_UEBERPRUEFUNG", newValue) UpdateSingleValue("CHOICE_LIST", "") - + Case "Enable_SQL" + UpdateSingleValue("SQL_ENABLE", newValue) + Case "Override_SQL" + UpdateSingleValue("SQL2", newValue) Case "ChoiceList" UpdateSingleValue("CHOICE_LIST", newValue) UpdateSingleValue("SQL_UEBERPRUEFUNG", "") @@ -1031,9 +1047,39 @@ Public Class frmFormDesigner Case "RegexMessage" UpdateSingleValue("REGEX_MESSAGE_DE", newValue) + Case "CtrlImage" + Dim myPath As ImageValue = newValue + UpdateImage(myPath.Value) End Select End Sub + Private Function UpdateImage(ImageLocation As String) + Try + Dim image As Bitmap = CType(System.Drawing.Image.FromFile(ImageLocation, True), Bitmap) + Dim bimage() As Byte = BitmapToByteArray(image) + 'UPDATE TBPMO_FORM_CONSTRUCTOR SET MENU_IMG = @MENU_IMG, WHERE GUID = @GUID" + Dim SQL As String = "UPDATE TBPM_PROFILE_CONTROLS SET IMAGE_CONTROL = @MENU_IMG WHERE GUID = @GUID" + Dim conn As SqlClient.SqlConnection = New SqlClient.SqlConnection(CONNECTION_STRING) + Dim cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand(SQL, conn) + cmd.Parameters.Add("@MENU_IMG", SqlDbType.VarBinary).Value = bimage + cmd.Parameters.Add("@GUID", SqlDbType.Int).Value = CURRENT_CONTROL_ID + + conn.Open() + cmd.ExecuteNonQuery() + conn.Close() + + tslblAenderungen.Visible = True + tslblAenderungen.Text = "Änderungen gespeichert - " & Now + Return True + + Catch ex As Exception + LOGGER.Error(ex) + Dim msg = $"UpdateImage - Error while saving Control (Id: {CURRENT_CONTROL_ID}): {vbCrLf}{ex.Message}" + MsgBox(msg) + LOGGER.Info(msg) + Return False + End Try + End Function Private Function UpdateSingleValue(columnName As String, value As Object) Dim guid As Integer = CURRENT_CONTROL_ID Dim escapedValue = value diff --git a/app/DD_PM_WINDREAM/frmMain.vb b/app/DD_PM_WINDREAM/frmMain.vb index 97e322c..c0d5735 100644 --- a/app/DD_PM_WINDREAM/frmMain.vb +++ b/app/DD_PM_WINDREAM/frmMain.vb @@ -980,8 +980,21 @@ Public Class frmMain If TimerRefresh.Enabled Then TimerRefresh.Stop() End If + Dim th As System.Threading.Thread + If Not Application.OpenForms().OfType(Of frmValidator).Any Then + th = New Threading.Thread(AddressOf Task_A) + th.SetApartmentState(ApartmentState.STA) + th.Start() + Else + LOGGER.Debug("Validator is already open...") + Exit Sub + End If - frmValidator.Show() + ' frmValidator.ShowDialog() + Do While th.IsAlive + + Loop + LOGGER.Debug("th has ended!") 'Catch ex As Exception ' LOGGER.Error(ex) ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Load_Profil_from_Grid: ") @@ -990,6 +1003,10 @@ Public Class frmMain Decide_Load() End Sub + Public Sub Task_A() + Dim frmA = New frmValidator() ' Must be created on this thread! + Application.Run(frmA) + End Sub Private Sub ContextMenuGrid_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ContextMenuGrid.Opening CMFileStart.Enabled = False CMGroupStart.Enabled = False diff --git a/app/DD_PM_WINDREAM/frmValidator.Designer.vb b/app/DD_PM_WINDREAM/frmValidator.Designer.vb index 1565b75..7fe41aa 100644 --- a/app/DD_PM_WINDREAM/frmValidator.Designer.vb +++ b/app/DD_PM_WINDREAM/frmValidator.Designer.vb @@ -96,7 +96,6 @@ Partial Class frmValidator Me.TBPM_PROFILE_FINAL_INDEXINGBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter = New DD_PM_WINDREAM.FinalIndexDataSetTableAdapters.TBPM_PROFILE_FINAL_INDEXINGTableAdapter() Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components) - Me.CheckBox1 = New System.Windows.Forms.CheckBox() CType(Me.BarAndDockingController3, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.BarAndDockingController2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.BarAndDockingController1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -161,7 +160,6 @@ Partial Class frmValidator 'Panel1 ' Me.Panel1.BackColor = System.Drawing.SystemColors.ControlLight - Me.Panel1.Controls.Add(Me.CheckBox1) Me.Panel1.Controls.Add(Me.TITLELabel1) Me.Panel1.Controls.Add(Me.btnSave) Me.Panel1.Controls.Add(Me.DESCRIPTIONLabel) @@ -589,12 +587,6 @@ Partial Class frmValidator ' Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter.ClearBeforeFill = True ' - 'CheckBox1 - ' - resources.ApplyResources(Me.CheckBox1, "CheckBox1") - Me.CheckBox1.Name = "CheckBox1" - Me.CheckBox1.UseVisualStyleBackColor = True - ' 'frmValidator ' resources.ApplyResources(Me, "$this") @@ -615,7 +607,6 @@ Partial Class frmValidator Me.StatusStrip1.ResumeLayout(False) Me.StatusStrip1.PerformLayout() Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TBPM_PROFILE_CONTROLSBindingSource, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TBDD_CONNECTIONBindingSource, System.ComponentModel.ISupportInitialize).EndInit() @@ -710,5 +701,4 @@ Partial Class frmValidator Friend WithEvents ToolStripButtonSearchesReload As ToolStripButton Friend WithEvents ToolTip1 As ToolTip Friend WithEvents DocumentViewer1 As DigitalData.Controls.DocumentViewer.DocumentViewer - Friend WithEvents CheckBox1 As CheckBox End Class diff --git a/app/DD_PM_WINDREAM/frmValidator.resx b/app/DD_PM_WINDREAM/frmValidator.resx index f12b750..c3c7b18 100644 --- a/app/DD_PM_WINDREAM/frmValidator.resx +++ b/app/DD_PM_WINDREAM/frmValidator.resx @@ -130,6 +130,31 @@ 608, 17 + + Segoe UI, 9pt, style=Bold + + + 22, 17 + + + sss + + + + False + + + 89, 17 + + + Anzahl Dateien: + + + 82, 17 + + + Document-ID: + 0, 621 @@ -140,7 +165,6 @@ 962, 22 - 4 @@ -159,117 +183,6 @@ 2 - - Segoe UI, 9pt, style=Bold - - - 22, 17 - - - sss - - - False - - - 89, 17 - - - Anzahl Dateien: - - - 82, 17 - - - Document-ID: - - - CheckBox1 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel1 - - - 0 - - - TITLELabel1 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel1 - - - 1 - - - btnSave - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel1 - - - 2 - - - DESCRIPTIONLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel1 - - - 3 - - - pnldesigner - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel1 - - - 4 - - - Fill - - - 0, 0 - - - 3, 4, 3, 4 - - - 477, 593 - - - 24 - - - Panel1 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainer1.Panel1 - - - 0 - Top, Left, Right @@ -304,7 +217,7 @@ Panel1 - 1 + 0 Bottom, Left, Right @@ -340,7 +253,7 @@ Panel1 - 2 + 1 Top, Left, Right @@ -367,7 +280,7 @@ Panel1 - 3 + 2 Top, Bottom, Left, Right @@ -397,7 +310,34 @@ Panel1 - 4 + 3 + + + Fill + + + 0, 0 + + + 3, 4, 3, 4 + + + 477, 593 + + + 24 + + + Panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainer1.Panel1 + + + 0 725, 17 @@ -546,6 +486,69 @@ Segoe UI, 9.75pt + + 156, 22 + + + Datei öffnen + + + 156, 22 + + + Info + + + 156, 22 + + + Eigenschaften + + + Magenta + + + 67, 22 + + + Datei + + + Magenta + + + 212, 22 + + + Zusätzliche Suchen aktualisieren + + + Magenta + + + 165, 22 + + + Datei überspringen (F4) + + + Magenta + + + 106, 22 + + + Datei löschen + + + Magenta + + + 105, 22 + + + Annotationen + 0, 0 @@ -1409,39 +1412,6 @@ Zoom - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxOC4xLCBWZXJzaW9uPTE4LjEu - NS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFlE - ZXZFeHByZXNzLkRhdGEudjE4LjEsIFZlcnNpb249MTguMS41LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVi - bGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29s - VGlwBwAAAA1BbGxvd0h0bWxUZXh0EUZpeGVkVG9vbFRpcFdpZHRoCkl0ZW1zQ291bnQJaXRlbVR5cGUw - BWl0ZW0wCWl0ZW1UeXBlMQVpdGVtMQQAAAQEBAQfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVh - bgMAAAABCCVEZXZFeHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAgAAACFEZXZFeHByZXNz - LlV0aWxzLlRvb2xUaXBUaXRsZUl0ZW0CAAAAJURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29sVGlwSXRl - bVR5cGUCAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0CAAAAAgAAAAX8////H0RldkV4cHJl - c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4BAAAAB3ZhbHVlX18ACAMAAAACAAAAAAIAAAAF+////yVEZXZF - eHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAQAAAAd2YWx1ZV9fAAgCAAAAAQAAAAkGAAAA - Afn////7////AAAAAAkIAAAADAkAAABRU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs - dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQYAAAAhRGV2RXhwcmVz - cy5VdGlscy5Ub29sVGlwVGl0bGVJdGVtBwAAAA1BbGxvd0h0bWxUZXh0BEljb24MSW1hZ2VPcHRpb25z - CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl - c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl - c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAAARab29tBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQcAAAAN - QWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdpZHRoEk93bmVyQWxs - b3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRCb29sZWFuAwAAABNT - eXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVtSW1hZ2VPcHRp - b25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAApw4RuZGVybiBkZXIg - Wm9vbS1TdHVmZSBkZXMgUERGLURva3VtZW50cy4FCwAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ - dGVtSW1hZ2VPcHRpb25zBQAAAAhJbWFnZVVyaQxTdmdJbWFnZVNpemUJQWxpZ25tZW50CkltYWdlSW5k - ZXgTSW1hZ2VUb1RleHREaXN0YW5jZQEEBAAAE1N5c3RlbS5EcmF3aW5nLlNpemUJAAAAJkRldkV4cHJl - c3MuVXRpbHMuVG9vbFRpcEltYWdlQWxpZ25tZW50AgAAAAgIAgAAAAYQAAAAAAXv////E1N5c3RlbS5E - cmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgJAAAAAAAAAAAAAAAF7v///yZEZXZFeHByZXNz - LlV0aWxzLlRvb2xUaXBJbWFnZUFsaWdubWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAD/////DgAAAAEO - AAAACwAAAAkQAAAAAe3////v////AAAAAAAAAAAB7P///+7///8AAAAA/////w4AAAAL - - 10% @@ -1484,6 +1454,39 @@ sichtbare einpassen + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxOC4xLCBWZXJzaW9uPTE4LjEu + NS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFlE + ZXZFeHByZXNzLkRhdGEudjE4LjEsIFZlcnNpb249MTguMS41LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVi + bGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29s + VGlwBwAAAA1BbGxvd0h0bWxUZXh0EUZpeGVkVG9vbFRpcFdpZHRoCkl0ZW1zQ291bnQJaXRlbVR5cGUw + BWl0ZW0wCWl0ZW1UeXBlMQVpdGVtMQQAAAQEBAQfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVh + bgMAAAABCCVEZXZFeHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAgAAACFEZXZFeHByZXNz + LlV0aWxzLlRvb2xUaXBUaXRsZUl0ZW0CAAAAJURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29sVGlwSXRl + bVR5cGUCAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0CAAAAAgAAAAX8////H0RldkV4cHJl + c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4BAAAAB3ZhbHVlX18ACAMAAAACAAAAAAIAAAAF+////yVEZXZF + eHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAQAAAAd2YWx1ZV9fAAgCAAAAAQAAAAkGAAAA + Afn////7////AAAAAAkIAAAADAkAAABRU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQYAAAAhRGV2RXhwcmVz + cy5VdGlscy5Ub29sVGlwVGl0bGVJdGVtBwAAAA1BbGxvd0h0bWxUZXh0BEljb24MSW1hZ2VPcHRpb25z + CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl + c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl + c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA + AAAAAAAAPAEAAAAGDAAAAARab29tBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQcAAAAN + QWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdpZHRoEk93bmVyQWxs + b3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRCb29sZWFuAwAAABNT + eXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVtSW1hZ2VPcHRp + b25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAApw4RuZGVybiBkZXIg + Wm9vbS1TdHVmZSBkZXMgUERGLURva3VtZW50cy4FCwAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ + dGVtSW1hZ2VPcHRpb25zBQAAAAhJbWFnZVVyaQxTdmdJbWFnZVNpemUJQWxpZ25tZW50CkltYWdlSW5k + ZXgTSW1hZ2VUb1RleHREaXN0YW5jZQEEBAAAE1N5c3RlbS5EcmF3aW5nLlNpemUJAAAAJkRldkV4cHJl + c3MuVXRpbHMuVG9vbFRpcEltYWdlQWxpZ25tZW50AgAAAAgIAgAAAAYQAAAAAAXv////E1N5c3RlbS5E + cmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgJAAAAAAAAAAAAAAAF7v///yZEZXZFeHByZXNz + LlV0aWxzLlRvb2xUaXBJbWFnZUFsaWdubWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAD/////DgAAAAEO + AAAACwAAAAkQAAAAAe3////v////AAAAAAAAAAAB7P///+7///8AAAAA/////w4AAAAL + + BarButtonItem1 @@ -1493,69 +1496,6 @@ 407, 173 - - Magenta - - - 67, 22 - - - Datei - - - 156, 22 - - - Datei öffnen - - - 156, 22 - - - Info - - - 156, 22 - - - Eigenschaften - - - Magenta - - - 212, 22 - - - Zusätzliche Suchen aktualisieren - - - Magenta - - - 165, 22 - - - Datei überspringen (F4) - - - Magenta - - - 106, 22 - - - Datei löschen - - - Magenta - - - 105, 22 - - - Annotationen - 779, 173 @@ -1568,31 +1508,4 @@ 322, 212 - - True - - - 245, 37 - - - 89, 21 - - - 19 - - - CheckBox1 - - - CheckBox1 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel1 - - - 0 - \ No newline at end of file diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index a0c6f75..d4dbbd5 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -57,6 +57,7 @@ Public Class frmValidator Private FormLoaded As Boolean = False Private ItemWorked As Boolean = False Private Override As Boolean = False + Private OverrideAll As Boolean = False Private Override_SQLCommand As String = "" Private ControlHandleStarted As Boolean = False @@ -88,6 +89,7 @@ Public Class frmValidator End Function Private Sub frmValidation_Load(sender As Object, e As System.EventArgs) Handles Me.Load Override = False + ItemWorked = False SplitContainer1.Panel2Collapsed = True docCounter = 1 OLD_Document_Path = "" @@ -107,7 +109,7 @@ Public Class frmValidator Dim _step = 0 Try - DocumentViewer1.Init(LOGCONFIG, "21182889975216572111813147150675976632") + DocumentViewer1.Init(LOGCONFIG, GDPICTURE_LICENSE) Catch ex As Exception LOGGER.Error(ex) End Try @@ -171,14 +173,14 @@ Public Class frmValidator Try If finalProfile = True Then - Dim text As String = IIf(IsDBNull(dr.Item("FINAL_TEXT")), "", dr.Item("FINAL_TEXT")) + Dim text As String = IIf(IsDBNull(dr.Item("FINAL_TEXT")), "", dr.Item("FINAL_TEXT") & (" (F2)")) If text <> "" Then btnSave.Text = text Else - btnSave.Text = "Validierung speichern - Nächstes Dokument" + btnSave.Text = "Validierung speichern - Nächstes Dokument & (F2)" End If Else - btnSave.Text = "Validierung speichern - Nächstes Dokument" + btnSave.Text = "Validierung speichern - Nächstes Dokument & (F2)" End If LOGGER.Debug("Final profile Text geladen") Catch ex As Exception @@ -215,7 +217,7 @@ Public Class frmValidator End If LOGGER.Debug("Right_Delete: " & USER_RIGHT_FILE_DELETE.ToString) - Load_Controls() + Create_Controls() End If @@ -262,15 +264,14 @@ 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, EDIT = 0 WHERE GUID = {CURRENT_DOC_GUID}" - ClassDatabase.Execute_non_Query(sql) + Free_File() End If Catch ex As Exception LOGGER.Error(ex) allgFunk.Insert_LogEntry(CURRENT_ProfilGUID, "Fehler bei Freigabe der Dok-ID: " & CURRENT_DOC_GUID & " - ERROR: " & ex.Message, USER_USERNAME) End Try End If - + DocumentViewer1.Done() 'If VIEWER_ALL = "docview" Then ' If IDB_ACTIVE = False Then ' CloseWDDocview() @@ -549,7 +550,7 @@ Public Class frmValidator Return myObject End If End Function - Sub Load_Controls() + Sub Create_Controls() Try pnldesigner.Controls.Clear() @@ -992,7 +993,15 @@ Public Class frmValidator ' = $"select SQL_UEBERPRUEFUNG,SQL2 FROM TBPM_PROFILE_CONTROLS WHERE GUID = {oControlID}" oSQL = clsPatterns.ReplaceAllValues(oSQL, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) LOGGER.Debug($"oSQL after replace {oSQL}") + oSQL = clsPatterns.ReplaceAllValues(oSQL2, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) Dim oDT_ACTIONS As DataTable = ClassDatabase.Return_Datatable(oSQL) + If IsNothing(oDT_ACTIONS) Then + MsgBox("Something went wrong in custom action - Please check Your log!", MsgBoxStyle.Exclamation) + Exit Sub + ElseIf oDT_ACTIONS.Rows.Count = 0 Then + MsgBox("Something went wrong in custom action (No row) - Please check Your log!", MsgBoxStyle.Exclamation) + Exit Sub + End If 'Select Case'Override' as Action_Type, 'Sind Sie sicher dass Sie nicht zuständig sind?' as Question,'Nicht Zuständig' as Caption,'Red' as Color Dim oAction Dim oQuestion @@ -1015,7 +1024,7 @@ Public Class frmValidator oTitle = "" End Try Try - oCaption = oDT_ACTIONS?.Rows(0).Item("Caption").ToString + oCaption = oDT_ACTIONS?.Rows(0).Item("CaptionButton").ToString Catch ex As Exception oCaption = "" End Try @@ -1024,28 +1033,38 @@ Public Class frmValidator Catch ex As Exception oColor = "" End Try + Try + OverrideAll = CBool(oDT_ACTIONS?.Rows(0).Item("OverrideAll")) + Catch ex As Exception + OverrideAll = False + End Try Try Override_SQLCommand = oSQL2 Override_SQLCommand = clsPatterns.ReplaceAllValues(Override_SQLCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + LOGGER.Debug($"Override_SQLCommand after replace {Override_SQLCommand}") + Catch ex As Exception Override_SQLCommand = "" End Try Select Case oAction Case "SetButton" - btnSave.Text = oCaption + btnSave.Text = oCaption & " (F2)" btnSave.BackColor = oColor - Case "Override" + Case "Override_Question" If oQuestion <> "" Then Dim result As MsgBoxResult result = MessageBox.Show(oQuestion, oTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) If result = MsgBoxResult.Yes Then Override = True - + Finish_WFStep() End If End If - - + Case "Override_Direct" + Override = True + Finish_WFStep() + Case Else + MsgBox($"No configured action provided [{oAction}]", MsgBoxStyle.Exclamation, "") End Select @@ -1592,9 +1611,9 @@ Public Class frmValidator Dim Profilstring = $"DD-PMLog{Delimiter}Loaded profile: [{CURRENT_ProfilName}]{Delimiter}{USER_USERNAME}{Delimiter}{Now.ToString}" If IDB_ACTIVE = False Then WMIndexVectofield(Profilstring, PROFIL_LOGINDEX) - Else - IDBData.SetVariableValue(PROFIL_LOGINDEX, Profilstring) - LOGGER.Debug("Profilname erfolgreich in Vektorfeld LOG geschrieben") + 'Else + 'IDBData.SetVariableValue(PROFIL_LOGINDEX, Profilstring) + 'LOGGER.Debug("Profilname erfolgreich in Vektorfeld LOG geschrieben") 'Else ' errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message ' My.Settings.Save() @@ -2614,7 +2633,7 @@ Public Class frmValidator End Sub Private Sub btnSave_Click(sender As System.Object, e As System.EventArgs) Handles btnSave.Click btnSave.Enabled = False - Abschluss() + Finish_WFStep() btnSave.Enabled = True End Sub 'Sub CloseWDDocview() @@ -2647,306 +2666,319 @@ Public Class frmValidator ' ' LOGGER.Info("### " & ex.Message & " ###") ' 'End Try 'End Sub - Sub Abschluss() + Sub Finish_WFStep() btnSave.Enabled = False LOGGER.Debug("Abschluss für Dok: " & CURRENT_DOC_PATH & " gestartet") - 'Eingaben auf Form überprüfen - If Check_UpdateIndexe() = False Then - 'lblerror.Visible = False - 'Try - Dim oErrorOcurred As Boolean = False - ItemWorked = True - TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Fill(FinalIndexDataSet.TBPM_PROFILE_FINAL_INDEXING, CURRENT_ProfilName) - Dim oDTFinalIndexes As DataTable = FinalIndexDataSet.TBPM_PROFILE_FINAL_INDEXING - If oDTFinalIndexes.Rows.Count > 0 Then - 'Jetzt finale Indexe setzen - LOGGER.Debug("FINAL INDEXING STARTING...") - For Each oFinalIndexRow As DataRow In oDTFinalIndexes.Rows - Dim oValue As String = oFinalIndexRow.Item("VALUE").ToString - Dim oIndexType = 0 - If IDB_ACTIVE = False Then - oIndexType = WINDREAM.GetTypeOfIndex(oFinalIndexRow.Item("INDEXNAME")) - End If - If oValue.ToUpper = "SQL-Command".ToUpper Then '###### Indexierung mit variablen SQL ### - LOGGER.Debug("Indexierung mit dynamischem SQL!") - Dim oSQLCommand = oFinalIndexRow.Item("SQL_COMMAND") - - LOGGER.Debug("SQL_COMMAND before ReplaceAllValues: " & oSQLCommand) - oSQLCommand = clsPatterns.ReplaceAllValues(oSQLCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) - If IsNothing(oSQLCommand) Then - errormessage = "Error while replacing Values in final indexing - Check the log" - My.Settings.Save() - frmError.ShowDialog() - oErrorOcurred = True - End If - If Not IsNothing(oSQLCommand) Then - LOGGER.Debug("SQL_COMMAND after ReplaceAllValues: " & oSQLCommand) - Dim dynamic_value = ClassDatabase.Execute_Scalar(oSQLCommand, CONNECTION_STRING, True) - - If Not IsNothing(dynamic_value) Then - LOGGER.Debug("DYNAMIC VALUE IS: " & dynamic_value.ToString) - oValue = dynamic_value - Else - LOGGER.Info("ATTENTION: DYNAMIC VALUE IS NOTHING!") - End If - End If - - Else - If oValue.StartsWith("v") Then - Select Case oFinalIndexRow.Item("VALUE").ToString - Case "vDate" - oValue = Now.ToShortDateString - Case "vUserName" - oValue = USER_USERNAME - Case Else - oValue = oFinalIndexRow.Item("VALUE") - End Select - End If - End If - If oErrorOcurred Then - Exit For - End If - Dim oResult() As String - ReDim Preserve oResult(0) - oResult(0) = oValue - - LOGGER.Debug($"oIndexType {oIndexType.ToString}") - If oIndexType > 4000 And oIndexType < 5000 Then - 'If dr.Item("INDEXNAME").ToString.StartsWith("[%VKT") Then - ' Dim PM_String = Return_PM_VEKTOR(value, dr.Item("INDEXNAME")) - 'Hier muss nun separat als Vektorfeld indexiert werden - If WMIndexVectofield(oValue, oFinalIndexRow.Item("INDEXNAME"), oFinalIndexRow.Item("PREVENT_DUPLICATES"), oFinalIndexRow.Item("ALLOW_NEW_VALUES")) = False Then - LOGGER.Debug("FINALER Vektorindex '" & oFinalIndexRow.Item("INDEXNAME").ToString & "' WURDE ERFOLGREICH GESETZT") - Else - errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message - My.Settings.Save() - frmError.ShowDialog() - oErrorOcurred = True - End If - Else - LOGGER.Debug("Now the final indexing...") - Dim oFIResult As Boolean = False + If OverrideAll = False Then + 'Eingaben auf Form überprüfen + If Check_UpdateIndexe() = False Then + 'lblerror.Visible = False + 'Try + Dim oErrorOcurred As Boolean = False + ItemWorked = True + TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Fill(FinalIndexDataSet.TBPM_PROFILE_FINAL_INDEXING, CURRENT_ProfilName) + Dim oDTFinalIndexes As DataTable = FinalIndexDataSet.TBPM_PROFILE_FINAL_INDEXING + If oDTFinalIndexes.Rows.Count > 0 Then + 'Jetzt finale Indexe setzen + LOGGER.Debug("FINAL INDEXING STARTING...") + For Each oFinalIndexRow As DataRow In oDTFinalIndexes.Rows + Dim oValue As String = oFinalIndexRow.Item("VALUE").ToString + Dim oIndexType = 0 If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oFinalIndexRow.Item("INDEXNAME"), oResult) = True Then - oFIResult = True - LOGGER.Debug("FINALER INDEX '" & oFinalIndexRow.Item("INDEXNAME") & "' WURDE ERFOLGREICH GESETZT") + oIndexType = WINDREAM.GetTypeOfIndex(oFinalIndexRow.Item("INDEXNAME")) + End If + If oValue.ToUpper = "SQL-Command".ToUpper Then '###### Indexierung mit variablen SQL ### + LOGGER.Debug("Indexierung mit dynamischem SQL!") + Dim oSQLCommand = oFinalIndexRow.Item("SQL_COMMAND") - 'Nun das Logging - If PROFIL_LOGINDEX <> "" Then - Dim logstr = Return_LOGString(oValue, "DDFINALINDEX", oFinalIndexRow.Item("INDEXNAME")) - WMIndexVectofield(logstr, PROFIL_LOGINDEX) + LOGGER.Debug("SQL_COMMAND before ReplaceAllValues: " & oSQLCommand) + oSQLCommand = clsPatterns.ReplaceAllValues(oSQLCommand, pnldesigner, CURRENT_WMFILE, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL, USER_ID, CURRENT_CLICKED_PROFILE_ID) + If IsNothing(oSQLCommand) Then + errormessage = "Error while replacing Values in final indexing - Check the log" + My.Settings.Save() + frmError.ShowDialog() + oErrorOcurred = True + End If + If Not IsNothing(oSQLCommand) Then + LOGGER.Debug("SQL_COMMAND after ReplaceAllValues: " & oSQLCommand) + Dim dynamic_value = ClassDatabase.Execute_Scalar(oSQLCommand, CONNECTION_STRING, True) + + If Not IsNothing(dynamic_value) Then + LOGGER.Debug("DYNAMIC VALUE IS: " & dynamic_value.ToString) + oValue = dynamic_value + Else + LOGGER.Info("ATTENTION: DYNAMIC VALUE IS NOTHING!") End If End If + Else - If IDBData.SetVariableValue(oFinalIndexRow.Item("INDEXNAME"), oValue) = True Then - oFIResult = True - LOGGER.Debug("final index '" & oFinalIndexRow.Item("INDEXNAME") & "' was written to IDB") - If PROFIL_LOGINDEX <> "" Then - Dim logstr = Return_LOGString(oValue, "DDFINALINDEX", oFinalIndexRow.Item("INDEXNAME")) - oFIResult = IDBData.SetVariableValue(PROFIL_LOGINDEX, logstr) + If oValue.StartsWith("v") Then + Select Case oFinalIndexRow.Item("VALUE").ToString + Case "vDate" + oValue = Now.ToShortDateString + Case "vUserName" + oValue = USER_USERNAME + Case Else + oValue = oFinalIndexRow.Item("VALUE") + End Select + End If + End If + If oErrorOcurred Then + Exit For + End If + Dim oResult() As String + ReDim Preserve oResult(0) + oResult(0) = oValue + + LOGGER.Debug($"oIndexType {oIndexType.ToString}") + If oIndexType > 4000 And oIndexType < 5000 Then + 'If dr.Item("INDEXNAME").ToString.StartsWith("[%VKT") Then + ' Dim PM_String = Return_PM_VEKTOR(value, dr.Item("INDEXNAME")) + 'Hier muss nun separat als Vektorfeld indexiert werden + If WMIndexVectofield(oValue, oFinalIndexRow.Item("INDEXNAME"), oFinalIndexRow.Item("PREVENT_DUPLICATES"), oFinalIndexRow.Item("ALLOW_NEW_VALUES")) = False Then + LOGGER.Debug("FINALER Vektorindex '" & oFinalIndexRow.Item("INDEXNAME").ToString & "' WURDE ERFOLGREICH GESETZT") + Else + errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message + My.Settings.Save() + frmError.ShowDialog() + oErrorOcurred = True + End If + Else + LOGGER.Debug("Now the final indexing...") + Dim oFIResult As Boolean = False + If IDB_ACTIVE = False Then + If Indexiere_File(CURRENT_WMFILE, oFinalIndexRow.Item("INDEXNAME"), oResult) = True Then + oFIResult = True + LOGGER.Debug("FINALER INDEX '" & oFinalIndexRow.Item("INDEXNAME") & "' WURDE ERFOLGREICH GESETZT") + + 'Nun das Logging + If PROFIL_LOGINDEX <> "" Then + Dim logstr = Return_LOGString(oValue, "DDFINALINDEX", oFinalIndexRow.Item("INDEXNAME")) + WMIndexVectofield(logstr, PROFIL_LOGINDEX) + End If + End If + 'Else + ' If IDBData.SetVariableValue(oFinalIndexRow.Item("INDEXNAME"), oValue) = True Then + ' oFIResult = True + ' LOGGER.Debug("final index '" & oFinalIndexRow.Item("INDEXNAME") & "' was written to IDB") + ' If PROFIL_LOGINDEX <> "" Then + ' Dim logstr = Return_LOGString(oValue, "DDFINALINDEX", oFinalIndexRow.Item("INDEXNAME")) + ' oFIResult = IDBData.SetVariableValue(PROFIL_LOGINDEX, logstr) + ' End If + ' End If + End If + If oFIResult = False Then + errormessage = "Error in final indexing:" & vbNewLine & idxerr_message + My.Settings.Save() + frmError.ShowDialog() + oErrorOcurred = True + End If + + End If + If oErrorOcurred = True Then + Exit For + End If + Next + End If + ''Wenn kein Fehler nach der finalen Indexierung gesetzt wurde + If Override = True And Override_SQLCommand <> "" Then + ClassDatabase.Execute_non_Query(Override_SQLCommand) + End If + If oErrorOcurred = False Then + + 'TBPM_PROFILE_FILESTableAdapter.CmdSETWORK(False, "", Document_ID) + ''Das Dokument + 'TBPM_PROFILE_FILESTableAdapter.CmdSetEdit(Document_ID) + Dim WORK_HISTORY_ENTRY = Nothing + + Try + WORK_HISTORY_ENTRY = CURRENT_DT_PROFILE.Rows(0).Item("WORK_HISTORY_ENTRY") + If IsDBNull(WORK_HISTORY_ENTRY) Then + WORK_HISTORY_ENTRY = Nothing + End If + Catch ex As Exception + LOGGER.Error(ex) + WORK_HISTORY_ENTRY = Nothing + End Try + + + If Not IsNothing(WORK_HISTORY_ENTRY) Then + If WORK_HISTORY_ENTRY <> String.Empty Then + Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" + ' einen Regulären Ausdruck laden + Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg) + ' die Vorkommen im SQL-String auslesen + Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(WORK_HISTORY_ENTRY) + '#### + ' alle Vorkommen innerhalbd er Namenkonvention durchlaufen + For Each element As System.Text.RegularExpressions.Match In elemente + Try + LOGGER.Debug("element in RegeX WORK_HISTORY_ENTRY: " & element.Value) + Dim CTRL_ID = element.Value.Substring(2, element.Value.Length - 3) + CTRL_ID = CTRL_ID.Replace("CTRLID", "") + Dim value_from_control + If IsNumeric(CTRL_ID) Then + For Each oControl As Control In Me.pnldesigner.Controls + Try + If IsNothing(DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid) Then + Continue For + End If + Catch ex As Exception + Continue For + End Try + + If DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid = CTRL_ID Then + '###### + Dim Type As String = oControl.GetType.ToString + Select Case Type + Case "System.Windows.Forms.TextBox" + Try + value_from_control = oControl.Text + Catch ex As Exception + LOGGER.Error(ex) + value_from_control = String.Empty + End Try + + Case "System.Windows.Forms.ComboBox" + Dim cmb As ComboBox = oControl + Try + value_from_control = cmb.Text + Catch ex As Exception + LOGGER.Error(ex) + value_from_control = String.Empty + End Try + Case "System.Windows.Forms.DateTimePicker" + Dim dtp As DateTimePicker = oControl + Try + value_from_control = dtp.Value.ToString + Catch ex As Exception + LOGGER.Error(ex) + value_from_control = String.Empty + End Try + + Case "System.Windows.Forms.CheckBox" + Dim chk As CheckBox = oControl + Try + value_from_control = chk.Checked + Catch ex As Exception + LOGGER.Error(ex) + value_from_control = String.Empty + End Try + End Select + + End If + Next + End If + + If Not IsNothing(value_from_control) And value_from_control <> String.Empty Then + WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace(element.Value, value_from_control) + End If + Catch ex As Exception + LOGGER.Error(ex) + LOGGER.Info("Unexpected Error in Checking control values for WORK_HISTORY_ENTRY - ERROR: " & ex.Message) + End Try + Next + If WORK_HISTORY_ENTRY.ToString.Contains("@DATE") Then + WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace("@DATE", Now.ToShortDateString) + End If + If WORK_HISTORY_ENTRY.ToString.Contains("@USERNAME") Then + WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace("@USERNAME", USER_USERNAME) + End If + Else + WORK_HISTORY_ENTRY = "" + End If + End If + Dim ins = String.Format("INSERT INTO TBPM_FILES_WORK_HISTORY (PROFIL_ID, DOC_ID,WORKED_BY,WORKED_WHERE,STATUS_COMMENT) VALUES ({0},{1},'{2}','{3}','{4}')", CURRENT_ProfilGUID, CURRENT_DOC_ID, USER_USERNAME, Environment.MachineName, WORK_HISTORY_ENTRY) + ClassDatabase.Execute_non_Query(ins) + Dim oFIsql As String + 'Close_document_viewer() + If WMDocPathWindows.ToLower.EndsWith(".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 = ClassDatabase.Return_Datatable(oFIsql, True) + 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 + Dim value = CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_ALL_WORK_HISTORY_ENTRIES") + If CBool(value) = 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 = ClassDatabase.Return_Datatable(oFIsql, True) + 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 - If oFIResult = False Then - errormessage = "Error in final indexing:" & vbNewLine & idxerr_message + End If + + 'wenn Move2Folder aktiviert wurde + If Move2Folder <> "" Then + idxerr_message = allgFunk.Move2Folder(WMDocPathWindows, Move2Folder, CURRENT_ProfilGUID, _windream) + If idxerr_message <> "" Then + errormessage = "Fehler bei Move2Folder:" & vbNewLine & idxerr_message My.Settings.Save() frmError.ShowDialog() oErrorOcurred = True End If + End If + 'Validierungsfile löschen wenn vorhanden + 'allgFunk.Delete_xffres(WMDocPathWindows, _windream) + 'LOGGER.Debug("Delete_xffres ausgeführt") - End If - If oErrorOcurred = True Then - Exit For - End If - Next + + End If + + 'Catch ex As Exception + ' LOGGER.Error(ex) + ' errormessage = "Unexpected error in Finish:" & ex.Message + ' My.Settings.Save() + ' frmError.ShowDialog() + ' LOGGER.Info("Unexpected error in Finish: " & ex.Message, True) + 'End Try + Else + 'lblerror.Visible = True + 'lblerror.Text = errmessage + errormessage = oErrorMessage + frmError.ShowDialog() End If - ''Wenn kein Fehler nach der finalen Indexierung gesetzt wurde - - If oErrorOcurred = False Then - 'Das Dokument freigeben und als editiert markieren - Dim sql = String.Format("UPDATE TBPM_PROFILE_FILES SET IN_WORK = 0, IN_WORK_WHEN = NULL, WORK_USER = '{0}', EDIT = 1 WHERE GUID = {1}", USER_USERNAME, CURRENT_DOC_GUID) - ClassDatabase.Execute_non_Query(sql) - 'TBPM_PROFILE_FILESTableAdapter.CmdSETWORK(False, "", Document_ID) - ''Das Dokument - 'TBPM_PROFILE_FILESTableAdapter.CmdSetEdit(Document_ID) - Dim WORK_HISTORY_ENTRY = Nothing - - Try - WORK_HISTORY_ENTRY = CURRENT_DT_PROFILE.Rows(0).Item("WORK_HISTORY_ENTRY") - If IsDBNull(WORK_HISTORY_ENTRY) Then - WORK_HISTORY_ENTRY = Nothing - End If - Catch ex As Exception - LOGGER.Error(ex) - WORK_HISTORY_ENTRY = Nothing - End Try - - - If Not IsNothing(WORK_HISTORY_ENTRY) Then - If WORK_HISTORY_ENTRY <> String.Empty Then - Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" - ' einen Regulären Ausdruck laden - Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg) - ' die Vorkommen im SQL-String auslesen - Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(WORK_HISTORY_ENTRY) - '#### - ' alle Vorkommen innerhalbd er Namenkonvention durchlaufen - For Each element As System.Text.RegularExpressions.Match In elemente - Try - LOGGER.Debug("element in RegeX WORK_HISTORY_ENTRY: " & element.Value) - Dim CTRL_ID = element.Value.Substring(2, element.Value.Length - 3) - CTRL_ID = CTRL_ID.Replace("CTRLID", "") - Dim value_from_control - If IsNumeric(CTRL_ID) Then - For Each oControl As Control In Me.pnldesigner.Controls - Try - If IsNothing(DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid) Then - Continue For - End If - Catch ex As Exception - Continue For - End Try - - If DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).Guid = CTRL_ID Then - '###### - Dim Type As String = oControl.GetType.ToString - Select Case Type - Case "System.Windows.Forms.TextBox" - Try - value_from_control = oControl.Text - Catch ex As Exception - LOGGER.Error(ex) - value_from_control = String.Empty - End Try - - Case "System.Windows.Forms.ComboBox" - Dim cmb As ComboBox = oControl - Try - value_from_control = cmb.Text - Catch ex As Exception - LOGGER.Error(ex) - value_from_control = String.Empty - End Try - Case "System.Windows.Forms.DateTimePicker" - Dim dtp As DateTimePicker = oControl - Try - value_from_control = dtp.Value.ToString - Catch ex As Exception - LOGGER.Error(ex) - value_from_control = String.Empty - End Try - - Case "System.Windows.Forms.CheckBox" - Dim chk As CheckBox = oControl - Try - value_from_control = chk.Checked - Catch ex As Exception - LOGGER.Error(ex) - value_from_control = String.Empty - End Try - End Select - - End If - Next - End If - - If Not IsNothing(value_from_control) And value_from_control <> String.Empty Then - WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace(element.Value, value_from_control) - End If - Catch ex As Exception - LOGGER.Error(ex) - LOGGER.Info("Unexpected Error in Checking control values for WORK_HISTORY_ENTRY - ERROR: " & ex.Message) - End Try - Next - If WORK_HISTORY_ENTRY.ToString.Contains("@DATE") Then - WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace("@DATE", Now.ToShortDateString) - End If - If WORK_HISTORY_ENTRY.ToString.Contains("@USERNAME") Then - WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace("@USERNAME", USER_USERNAME) - End If - Else - WORK_HISTORY_ENTRY = "" - End If - End If - Dim ins = String.Format("INSERT INTO TBPM_FILES_WORK_HISTORY (PROFIL_ID, DOC_ID,WORKED_BY,WORKED_WHERE,STATUS_COMMENT) VALUES ({0},{1},'{2}','{3}','{4}')", CURRENT_ProfilGUID, CURRENT_DOC_ID, USER_USERNAME, Environment.MachineName, WORK_HISTORY_ENTRY) - ClassDatabase.Execute_non_Query(ins) - - 'Close_document_viewer() - If WMDocPathWindows.ToLower.EndsWith(".pdf") Then - If Not IsNothing(WORK_HISTORY_ENTRY) Then - If CBool(CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_WORK_HISTORY_ENTRY")) = True Then - sql = 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 = ClassDatabase.Return_Datatable(sql, True) - 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 - Dim value = CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_ALL_WORK_HISTORY_ENTRIES") - If CBool(value) = True Then - sql = 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 = ClassDatabase.Return_Datatable(sql, True) - 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 - - 'wenn Move2Folder aktiviert wurde - If Move2Folder <> "" Then - idxerr_message = allgFunk.Move2Folder(WMDocPathWindows, Move2Folder, CURRENT_ProfilGUID, _windream) - If idxerr_message <> "" Then - errormessage = "Fehler bei Move2Folder:" & vbNewLine & idxerr_message - My.Settings.Save() - frmError.ShowDialog() - oErrorOcurred = True - End If - End If - 'Validierungsfile löschen wenn vorhanden - 'allgFunk.Delete_xffres(WMDocPathWindows, _windream) - 'LOGGER.Debug("Delete_xffres ausgeführt") - LOGGER.Debug("All Input clear") - Anzahl_validierte_Dok += 1 - 'tstrlbl_Info.Text = "Anzahl Dateien: " & TBPM_PROFILE_FILESTableAdapter.cmdGet_Anzahl(PROFIL_ID) - LOGGER.Debug("Anzahl hochgesetzt") - LOGGER.Debug("Validierung erfolgreich abgeschlossen") - Dim oPROCSQL = $"EXEC PRPM_CHECK_NEXT_WF {CURRENT_DOC_GUID}" - ClassDatabase.Execute_non_Query(oPROCSQL) - If CURRENT_JUMP_DOC_GUID <> 0 Then - Me.Close() - Else - 'Das nächste Dokument laden - Load_Next_Document(False) - - set_foreground() - If first_control Is Nothing = False Then first_control.Focus() - End If - - End If - - 'Catch ex As Exception - ' LOGGER.Error(ex) - ' errormessage = "Unexpected error in Finish:" & ex.Message - ' My.Settings.Save() - ' frmError.ShowDialog() - ' LOGGER.Info("Unexpected error in Finish: " & ex.Message, True) - 'End Try Else - 'lblerror.Visible = True - 'lblerror.Text = errmessage - errormessage = oErrorMessage - frmError.ShowDialog() + LOGGER.Info("Overriding all in action") + If Override_SQLCommand <> "" Then + ClassDatabase.Execute_non_Query(Override_SQLCommand) + End If End If + + 'Das Dokument freigeben und als editiert markieren + Dim sql = String.Format("UPDATE TBPM_PROFILE_FILES SET IN_WORK = 0, IN_WORK_WHEN = NULL, WORK_USER = '{0}', EDIT = 1 WHERE GUID = {1}", USER_USERNAME, CURRENT_DOC_GUID) + ClassDatabase.Execute_non_Query(sql) + LOGGER.Debug("All Input clear") + Anzahl_validierte_Dok += 1 + 'tstrlbl_Info.Text = "Anzahl Dateien: " & TBPM_PROFILE_FILESTableAdapter.cmdGet_Anzahl(PROFIL_ID) + LOGGER.Debug("Anzahl hochgesetzt") + LOGGER.Debug("Validierung erfolgreich abgeschlossen") + Dim oPROCSQL = $"EXEC PRPM_CHECK_NEXT_WF {CURRENT_DOC_GUID}" + ClassDatabase.Execute_non_Query(oPROCSQL) + If CURRENT_JUMP_DOC_GUID <> 0 Then + Me.Close() + Else + 'Das nächste Dokument laden + Load_Next_Document(False) + + set_foreground() + If first_control Is Nothing = False Then first_control.Focus() + End If + btnSave.Enabled = True End Sub Function Check_Missing(control As Control, typ As String) @@ -3194,8 +3226,8 @@ Public Class frmValidator Dim oLogStr = Return_LOGString(oMyInput, oValueFromObject, oIndexName) If IDB_ACTIVE = False Then WMIndexVectofield(oLogStr, PROFIL_LOGINDEX) - Else - IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogStr) + 'Else + ' IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogStr) End If End If @@ -3295,8 +3327,8 @@ Public Class frmValidator Dim oMyLogString = Return_LOGString(oMyInput, oSourceValue, oIndexName) If IDB_ACTIVE = False Then WMIndexVectofield(oMyLogString, PROFIL_LOGINDEX) - Else - IDBData.SetVariableValue(PROFIL_LOGINDEX, oMyLogString) + 'Else + 'IDBData.SetVariableValue(PROFIL_LOGINDEX, oMyLogString) End If End If @@ -3405,8 +3437,8 @@ Public Class frmValidator Dim ologStr = Return_LOGString(oMyInput, oWMValue, oIndexName) If IDB_ACTIVE = False Then WMIndexVectofield(ologStr, PROFIL_LOGINDEX) - Else - IDBData.SetVariableValue(PROFIL_LOGINDEX, ologStr) + 'Else + 'IDBData.SetVariableValue(PROFIL_LOGINDEX, ologStr) End If End If @@ -3484,8 +3516,8 @@ Public Class frmValidator Dim oLogstr = Return_LOGString(oMyInput, oObjectValue, oIndexName) If IDB_ACTIVE = False Then WMIndexVectofield(oLogstr, PROFIL_LOGINDEX) - Else - IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogstr) + 'Else + 'IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogstr) End If End If @@ -3580,8 +3612,8 @@ Public Class frmValidator Dim oLogstr = Return_LOGString(CBool(result(0)).ToString, WertWD, oIndexName) If IDB_ACTIVE = False Then WMIndexVectofield(oLogstr, PROFIL_LOGINDEX) - Else - IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogstr) + 'Else + 'IDBData.SetVariableValue(PROFIL_LOGINDEX, oLogstr) End If End If @@ -3819,7 +3851,7 @@ Public Class frmValidator End Function Private Sub btnfinal_Click(sender As System.Object, e As System.EventArgs) - Abschluss() + Finish_WFStep() End Sub Function GetConnectionString(id As Integer) Try @@ -3884,8 +3916,7 @@ Public Class frmValidator Try LOGGER.Debug("Dokument überspringen") 'Das Dokument freigeben - Dim sql = $"UPDATE TBPM_PROFILE_FILES SET IN_WORK = 0, IN_WORK_WHEN = NULL, WORK_USER = NULL WHERE GUID = {CURRENT_DOC_GUID}" - ClassDatabase.Execute_non_Query(sql) + Dim oSQL = $"EXECUTE PRPM_FILES_NOT_INDEXED '{USER_USERNAME}',{CURRENT_ProfilGUID},'{WMDocPathWindows}',{CURRENT_DOC_GUID}" ClassDatabase.Execute_non_Query(oSQL) @@ -3897,7 +3928,15 @@ Public Class frmValidator MsgBox("Fehler bei Überspringen:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub - + Private Function Free_File() + Try + Dim sql = $"UPDATE TBPM_PROFILE_FILES SET EDIT = 0, IN_WORK = 0, IN_WORK_WHEN = NULL, WORK_USER = NULL WHERE GUID = {CURRENT_DOC_GUID}" + Return ClassDatabase.Execute_non_Query(sql) + Catch ex As Exception + LOGGER.Error(ex) + Return False + End Try + End Function Private Sub delete_active_File() Try Dim result As MsgBoxResult @@ -3996,7 +4035,7 @@ Public Class frmValidator Datei_ueberspringen() ElseIf e.KeyCode = Keys.F2 Then btnSave.Enabled = False - Abschluss() + Finish_WFStep() btnSave.Enabled = True End If @@ -4070,18 +4109,18 @@ Public Class frmValidator End Sub Private Sub btnSave_MouseHover(sender As Object, e As EventArgs) Handles btnSave.MouseHover - 'Dim msg = "strg & s für speichern" - 'If USER_LANGUAGE <> "de-DE" Then - ' msg = "ctrl & s for saving" - 'End If - 'ToolTip1.Show(msg, btnSave) + Dim msg = "F2 für Seichern" + If USER_LANGUAGE <> "de-DE" Then + msg = "F2 for saving" + End If + ToolTip1.Show(msg, btnSave) End Sub Private Sub frmValidator_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown End Sub - Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged + Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) End Sub End Class \ No newline at end of file