From 3795c8fd740858db6854ad232a9615d1e6a1e974 Mon Sep 17 00:00:00 2001 From: Digital Data - Marlon Schreiber Date: Thu, 28 Jul 2022 16:08:48 +0200 Subject: [PATCH] MS --- .../Classes/ClassDOC_SEARCH.vb | 101 +++-- app/DD-Record-Organizer/Classes/ClassInit.vb | 12 +- .../Classes/ClassWindreamDocGrid.vb | 44 +- .../ModuleRuntimeVariables.vb | 2 + .../My Project/AssemblyInfo.vb | 2 +- .../frmConstructor_Main.vb | 10 +- app/DD-Record-Organizer/frmMain.vb | 6 +- .../frmRecordView.Designer.vb | 23 +- app/DD-Record-Organizer/frmRecordView.resx | 64 +-- app/DD-Record-Organizer/frmRecordView.vb | 2 +- app/DD-Record-Organizer/frmWM_IndexFile.vb | 414 +++++++++--------- app/Setup_NoUpdaterVS19/Product.wxs | 2 +- 12 files changed, 358 insertions(+), 324 deletions(-) diff --git a/app/DD-Record-Organizer/Classes/ClassDOC_SEARCH.vb b/app/DD-Record-Organizer/Classes/ClassDOC_SEARCH.vb index e77e18d..371eac0 100644 --- a/app/DD-Record-Organizer/Classes/ClassDOC_SEARCH.vb +++ b/app/DD-Record-Organizer/Classes/ClassDOC_SEARCH.vb @@ -89,42 +89,59 @@ Public Class ClassDOC_SEARCH End If ElseIf CURRENT_SEARCH_TYPE = "RECORD" Then - SQL_DOC_SEARCH = $"SELECT T.* ," & vbNewLine & - $"ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine & - $"ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine & - $"ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine & - $"ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine & - $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine & - $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine & - $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine & - $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine & - $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{7}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine & - $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{7}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine & - $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{7}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine & - $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{7}',TRL.RECORD_ID) AS DROPDOWN4," & vbNewLine & - $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID),'') AS VALUE1," & vbNewLine & - $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID),'') AS VALUE2," & vbNewLine & - $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID),'') AS VALUE3," & vbNewLine & - $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID),'') AS VALUE4," & vbNewLine & - $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC4.GUID),'') AS VALUE5," & vbNewLine & - $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC5.GUID),'') AS VALUE6," & vbNewLine & - $"dwAccessRight AS ACCESS_RIGHT" & vbNewLine & - $"FROM " & vbNewLine & - $"VWPMO_DOC_SEARCH T " & vbNewLine & - $"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine & - $"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine & - $"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine & - $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{USER_LANGUAGE}' AND TRC.GUID = {VALUE_CONF1}" & vbNewLine & - $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{USER_LANGUAGE}' AND TRC1.GUID = {VALUE_CONF2}" & vbNewLine & - $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{USER_LANGUAGE}' AND TRC2.GUID = {VALUE_CONF3}" & vbNewLine & - $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{USER_LANGUAGE}' AND TRC3.GUID = {VALUE_CONF4}" & vbNewLine & - $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC4 ON TR.FORM_ID = TRC4.ENTITY_ID AND TRC4.LANGUAGE = '{USER_LANGUAGE}' AND TRC4.GUID = {VALUE_CONF5}" & vbNewLine & - $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC5 ON TR.FORM_ID = TRC5.ENTITY_ID AND TRC5.LANGUAGE = '{USER_LANGUAGE}' AND TRC5.GUID = {VALUE_CONF6}" & vbNewLine & - $"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {OPTION1} " & vbNewLine & - $"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {OPTION2} " & vbNewLine & - $"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {OPTION3} " & vbNewLine & - $"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {OPTION4} " & vbNewLine & - $"WHERE TRL.RECORD_ID = {RECORD_ID} AND TR.FORM_ID = {ENTITY_ID} AND TRIGHTS.dwUserOrGroupID = {USERID_FK_INT_ECM}" + SQL_DOC_SEARCH = SQL_DOC_RESULT_RECORD + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@ENTITY_ID", ENTITY_ID) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@USER_LANGUAGE", USER_LANGUAGE) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@VALUE_CONF1", VALUE_CONF1) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@VALUE_CONF2", VALUE_CONF2) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@VALUE_CONF3", VALUE_CONF3) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@VALUE_CONF4", VALUE_CONF4) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@VALUE_CONF5", VALUE_CONF5) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@VALUE_CONF6", VALUE_CONF6) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@OPTION1", OPTION1) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@OPTION2", OPTION2) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@OPTION3", OPTION3) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@OPTION4", OPTION4) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@RECORD_ID", RECORD_ID) + SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@USERID_FK_INT_ECM", USERID_FK_INT_ECM) + + ' SQL_DOC_SEARCH = $"SELECT T.* ," & vbNewLine & + ' $"ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine & + ' $"ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine & + ' $"ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine & + ' $"ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine & + ' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine & + ' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine & + ' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine & + ' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine & + ' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{7}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine & + ' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{7}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine & + ' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{7}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine & + ' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{7}',TRL.RECORD_ID) AS DROPDOWN4," & vbNewLine & + ' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID),'') AS VALUE1," & vbNewLine & + ' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID),'') AS VALUE2," & vbNewLine & + ' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID),'') AS VALUE3," & vbNewLine & + ' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID),'') AS VALUE4," & vbNewLine & + '$"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC4.GUID),'') AS VALUE5," & vbNewLine & + '$"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC5.GUID),'') AS VALUE6," & vbNewLine & + '$"dwAccessRight AS ACCESS_RIGHT" & vbNewLine & + '$"FROM " & vbNewLine & + '$"VWPMO_DOC_SEARCH T " & vbNewLine & + '$"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine & + '$"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine & + ' $"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine & + ' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{USER_LANGUAGE}' AND TRC.GUID = {VALUE_CONF1}" & vbNewLine & + ' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{USER_LANGUAGE}' AND TRC1.GUID = {VALUE_CONF2}" & vbNewLine & + ' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{USER_LANGUAGE}' AND TRC2.GUID = {VALUE_CONF3}" & vbNewLine & + ' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{USER_LANGUAGE}' AND TRC3.GUID = {VALUE_CONF4}" & vbNewLine & + ' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC4 ON TR.FORM_ID = TRC4.ENTITY_ID AND TRC4.LANGUAGE = '{USER_LANGUAGE}' AND TRC4.GUID = {VALUE_CONF5}" & vbNewLine & + ' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC5 ON TR.FORM_ID = TRC5.ENTITY_ID AND TRC5.LANGUAGE = '{USER_LANGUAGE}' AND TRC5.GUID = {VALUE_CONF6}" & vbNewLine & + ' $"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {OPTION1} " & vbNewLine & + ' $"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {OPTION2} " & vbNewLine & + ' $"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {OPTION3} " & vbNewLine & + ' $"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {OPTION4} " & vbNewLine & + ' $"WHERE TRL.RECORD_ID = {RECORD_ID} AND TR.FORM_ID = {ENTITY_ID} AND TRIGHTS.dwUserOrGroupID = {USERID_FK_INT_ECM}" ElseIf CURRENT_SEARCH_TYPE = "FULLTEXT" Then Dim sqlft = SQL_FULLTEXT sqlft = sqlft.Replace("@FULLTEXT", CURRENT_FULLTEXT_PATTERN) @@ -461,8 +478,14 @@ Public Class ClassDOC_SEARCH oNewRow.Item(i) = CBool(rowvalue) + ElseIf oType = "System.Int32" Then + If Len(rowvalue) = 0 Then + oNewRow.Item(i) = 0 + Else + oNewRow.Item(i) = CInt(rowvalue) + End If Else - oNewRow.Item(i) = rowvalue.ToString + oNewRow.Item(i) = rowvalue.ToString End If Catch ex As Exception @@ -516,7 +539,7 @@ Public Class ClassDOC_SEARCH Return False End Try End Function - Public Shared Function SET_WD_RIGHTS(ByVal RESULT_DOCID, ByVal RESULT_DOC_PATH) + Public Shared Function SET_WD_RIGHTS(RESULT_DOCID As Integer, RESULT_DOC_PATH As String, DeleteRightsBefore As Boolean) Try If CURRENT_RECORD_ID = 0 Then MsgBox("No Record selected - Please select one!", MsgBoxStyle.Exclamation) @@ -524,7 +547,7 @@ Public Class ClassDOC_SEARCH End If LOGGER.Debug("#### SETTING RIGHTS FOR FILE ######", False) If ClassWDRights.Init = True Then - If ClassWDRights.Doc_Renew_Rights(RESULT_DOCID, RESULT_DOC_PATH, True) Then + If ClassWDRights.Doc_Renew_Rights(RESULT_DOCID, RESULT_DOC_PATH, DeleteRightsBefore) Then If ClassWDRights.MSG_RESULT <> "" Then Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbNewLine & ClassWDRights.MSG_RESULT If USER_LANGUAGE <> "de-DE" Then diff --git a/app/DD-Record-Organizer/Classes/ClassInit.vb b/app/DD-Record-Organizer/Classes/ClassInit.vb index 10a99c2..18577c5 100644 --- a/app/DD-Record-Organizer/Classes/ClassInit.vb +++ b/app/DD-Record-Organizer/Classes/ClassInit.vb @@ -135,6 +135,13 @@ Public Class ClassInit SQL_FULLTEXT = KONFIG_DT.Rows(0).Item("SQL_FULLTEXT") End If + sql = "SELECT * FROM TBDD_SQL_COMMANDS" + Dim oDTSQL_COMMANDS As DataTable = ClassDatabase.Return_Datatable(sql, True) + For Each oRow As DataRow In oDTSQL_COMMANDS.Rows + If oRow.Item("TITLE") = "ADDI_DOC_SEARCH_RECORD" Then + SQL_DOC_RESULT_RECORD = oRow.Item("SQL_COMMAND") + End If + Next sql = "SELECT * FROM TBPMO_CONTROL" CURRENT_TBPMO_CONTROL = ClassDatabase.Return_Datatable(sql, True) sql = String.Format("SELECT * FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1") @@ -281,10 +288,11 @@ WHERE (LOWER(USERNAME) = LOWER('{0}')) AND T2.SHORT_NAME = 'ADDI'", USER_USERNAM sql = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER('Record-Organizer') AND CLIENT_ID = {0}", CLIENT_SELECTED) Dim anzahl = ClassDatabase.Execute_Scalar(sql, False) USERS_LOGGED_IN = CInt(anzahl) - LOGGER.Debug("User# logged in: " & anzahl.ToString) + LOGGER.Info("User# logged in: " & anzahl.ToString) + LOGGER.Info("LICENSE_COUNT: " & LICENSE_COUNT.ToString) '#### - If LICENSE_COUNT < USERS_LOGGED_IN And LICENSE_EXPIRED = False Then + If LICENSE_COUNT <= (USERS_LOGGED_IN + 1) And LICENSE_EXPIRED = False Then Dim msg = String.Format("Die Anzahl der aktuell angemeldeten User (" & USERS_LOGGED_IN.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & LICENSE_COUNT.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!") If USER_LANGUAGE <> "de-DE" Then diff --git a/app/DD-Record-Organizer/Classes/ClassWindreamDocGrid.vb b/app/DD-Record-Organizer/Classes/ClassWindreamDocGrid.vb index d68d7b3..6c17e06 100644 --- a/app/DD-Record-Organizer/Classes/ClassWindreamDocGrid.vb +++ b/app/DD-Record-Organizer/Classes/ClassWindreamDocGrid.vb @@ -186,9 +186,9 @@ Public Class ClassWindreamDocGrid Dim type As Integer = row.Item("TYPE_ID") - If type = 4 And isConfig = False Then + If type = 3 And isConfig = False Then DATE_COLUMNS.Add(columnTitle) - ElseIf type = 4 And isConfig = True Then + ElseIf type = 3 And isConfig = True Then DATE_COLUMNS_CONFIG.Add(columnTitle) End If @@ -311,7 +311,7 @@ Public Class ClassWindreamDocGrid Dim type As Integer = row.Item("TYPE_ID") Dim isConfig As Boolean = row.Item("CONFIG_COLUMNS") - If Not IsNothing(col) And type = 4 And isConfig Then + If Not IsNothing(col) And type = 3 And isConfig Then LOGGER.Debug($"Adapting DisplayFormat (DATETIME for Column {colCaption}") col.DisplayFormat.FormatType = FormatType.DateTime col.DisplayFormat.FormatString = CURRENT_DATE_FORMAT & " HH:MM:ss" @@ -373,9 +373,7 @@ Public Class ClassWindreamDocGrid AddHandler textedit.Leave, _textValueChangedHandler e.RepositoryItem = textedit - End If - - If typeId = 2 Then + ElseIf typeId = 2 Then Dim checkEdit As New RepositoryItemCheckEdit() checkEdit.ValueChecked = "True" checkEdit.ValueUnchecked = "False" @@ -385,9 +383,7 @@ Public Class ClassWindreamDocGrid AddHandler checkEdit.CheckedChanged, _checkValueChangedHandler e.RepositoryItem = checkEdit - End If - - If typeId = 3 Then + ElseIf typeId = 3 Then Dim dateedit As New RepositoryItemDateEdit() dateedit.DisplayFormat.FormatType = FormatType.DateTime @@ -415,22 +411,28 @@ Public Class ClassWindreamDocGrid AddHandler dateedit.EditValueChanged, _datepickerValueChangedHandler e.RepositoryItem = dateedit - End If + 'ElseIf typeId = 4 And editable = F Then + ' Dim dropdown As New RepositoryItemComboBox() + ' Dim matchingRows() As DataRow = DT_DROPDOWN_ITEMS.Select(String.Format("CONFIG_ID = {0}", configId), "SEQUENCE") - If typeId = 4 Then - Dim dropdown As New RepositoryItemComboBox() - Dim matchingRows() As DataRow = DT_DROPDOWN_ITEMS.Select(String.Format("CONFIG_ID = {0}", configId), "SEQUENCE") + ' For Each matchingRow As DataRow In matchingRows + ' Dim item As New WindreamDocGridComboboxItem() + ' item.ConfigID = matchingRow.Item("CONFIG_ID") + ' item.Value = matchingRow.Item("VALUE") + ' dropdown.Items.Add(item) + ' Next - For Each matchingRow As DataRow In matchingRows - Dim item As New WindreamDocGridComboboxItem() - item.ConfigID = matchingRow.Item("CONFIG_ID") - item.Value = matchingRow.Item("VALUE") - dropdown.Items.Add(item) - Next + ' AddHandler dropdown.SelectedValueChanged, _dropdownValueChangedHandler - AddHandler dropdown.SelectedValueChanged, _dropdownValueChangedHandler + ' e.RepositoryItem = dropdown - e.RepositoryItem = dropdown + 'End If + ElseIf typeId = 4 And editable Then + Dim textedit As New RepositoryItemTextEdit() + + AddHandler textedit.Leave, _textValueChangedHandler + + e.RepositoryItem = textedit End If ElseIf (e.Column.Name <> "colVALUE") Then diff --git a/app/DD-Record-Organizer/ModuleRuntimeVariables.vb b/app/DD-Record-Organizer/ModuleRuntimeVariables.vb index b155a49..ad1107f 100644 --- a/app/DD-Record-Organizer/ModuleRuntimeVariables.vb +++ b/app/DD-Record-Organizer/ModuleRuntimeVariables.vb @@ -187,4 +187,6 @@ Public CURRENT_DOCSEARCH_SQL As String Public CURRENT_DOCSEARCH_CAPTION As String Public CURRENT_FILE_RIGHT As String + + Public SQL_DOC_RESULT_RECORD As String = "" End Module diff --git a/app/DD-Record-Organizer/My Project/AssemblyInfo.vb b/app/DD-Record-Organizer/My Project/AssemblyInfo.vb index f9695be..9751f0d 100644 --- a/app/DD-Record-Organizer/My Project/AssemblyInfo.vb +++ b/app/DD-Record-Organizer/My Project/AssemblyInfo.vb @@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + \ No newline at end of file diff --git a/app/DD-Record-Organizer/frmConstructor_Main.vb b/app/DD-Record-Organizer/frmConstructor_Main.vb index 12af318..4028e30 100644 --- a/app/DD-Record-Organizer/frmConstructor_Main.vb +++ b/app/DD-Record-Organizer/frmConstructor_Main.vb @@ -2556,7 +2556,7 @@ Public Class frmConstructor_Main expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) DT_WINDREAM_COLUMNS_GRID = ClassHelper.FILTER_DATATABLE(CURRENT_RESULTLIST_CONFIG, expression, "SEQUENCE") - expression = String.Format("ENTITY_ID = {0} AND TYPE_ID = 3 AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) + expression = String.Format("ENTITY_ID = {0} AND TYPE_ID = 10 AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) DT_DOCRESULT_DROPDOWN_ITEMS = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS, expression, "SEQUENCE") DT_RESULTLIST_OPTIONS = ClassHelper.FILTER_DATATABLE(CURRENT_VARIABLE_CONTROLS, "ENTITY_ID = " & ENTITY_ID, "") @@ -3301,7 +3301,7 @@ Public Class frmConstructor_Main End If bStaticItem1.Caption = msg & Get_Grid_Row_Count() End If - RibbonPageGroupSuchen.Enabled = True + RibbonPageGroupSuchen.Visible = True Catch ex As Exception ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in LoadGrid_Records", ex.Message, ex.StackTrace) Return False @@ -6145,7 +6145,7 @@ WHERE T2.SHORT_NAME = 'ADDI' AND T.EMAIL IS NOT NULL order by USERNAME") Dim err As Boolean = False Cursor = Cursors.WaitCursor For Each row As DataRow In ClassWindreamDocGrid.DT_RESULTFILES.Rows - If ClassDOC_SEARCH.SET_WD_RIGHTS(row.Item("DOC_ID"), row.Item("DOC_PATH")) = True Then + If ClassDOC_SEARCH.SET_WD_RIGHTS(row.Item("DOC_ID"), row.Item("DOC_PATH"), True) = True Then Else err = True @@ -6994,10 +6994,10 @@ WHERE T2.SHORT_NAME = 'ADDI' AND T.EMAIL IS NOT NULL order by USERNAME") Me.Cursor = Cursors.WaitCursor Dim Record_Changes As String = "SELECT count(GUID) FROM VWPMO_RECORD_CHANGES WHERE RECORD_ID = " & RECORD_ID Dim RC = ClassDatabase.Execute_Scalar(Record_Changes, True) - bbtniReclog.Enabled = False + bbtniReclog.Visibility = DevExpress.XtraBars.BarItemVisibility.Never If Not RC Is Nothing Then If RC > 0 Then - bbtniReclog.Enabled = True + bbtniReclog.Visibility = DevExpress.XtraBars.BarItemVisibility.Always End If End If If RIGHT_RECORD_AND_FILE_READ_ONLY = True Or NODE_NAVIGATION = True Then diff --git a/app/DD-Record-Organizer/frmMain.vb b/app/DD-Record-Organizer/frmMain.vb index db05b3c..cd54dd6 100644 --- a/app/DD-Record-Organizer/frmMain.vb +++ b/app/DD-Record-Organizer/frmMain.vb @@ -217,6 +217,7 @@ Public Class frmMain Dim oSQL = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER('Record-Organizer') AND CLIENT_ID = {0}", CLIENT_SELECTED) Dim anzahl = ClassDatabase.Execute_Scalar(oSQL, False) USERS_LOGGED_IN = CInt(anzahl) + Catch ex As Exception End Try @@ -225,6 +226,7 @@ Public Class frmMain msg = "#User logged in: " & USERS_LOGGED_IN.ToString() End If LabelLoggedIn.Caption = msg + LOGGER.Info(msg + "(+1)") End Sub Sub Display_ConString() Try @@ -572,7 +574,7 @@ Public Class frmMain End If 'Lizenz abgellaufen, überprüfen ob User Admin ist - If LICENSE_COUNT < USERS_LOGGED_IN Then + If LICENSE_COUNT <= (USERS_LOGGED_IN + 1) Then If USER_IS_ADMIN = True Then LOGGER.Info("User is Admin - Timer will be started", False) 'If USER_LANGUAGE = "de-DE" Then @@ -836,7 +838,7 @@ Public Class frmMain End Sub Private Sub TimerClose3Minutes_Tick(sender As Object, e As EventArgs) Handles TimerClose3Minutes.Tick - If LICENSE_EXPIRED = True Or LICENSE_COUNT < USERS_LOGGED_IN Then + If LICENSE_EXPIRED = True Or LICENSE_COUNT <= (USERS_LOGGED_IN + 1) Then 'If USER_LANGUAGE = "de-DE" Then ' MsgBox("Global Indexer wird nun geschlossen, weil keine neue Lizenzdaten eingegeben wurden!", MsgBoxStyle.Information) 'Else diff --git a/app/DD-Record-Organizer/frmRecordView.Designer.vb b/app/DD-Record-Organizer/frmRecordView.Designer.vb index 98b9da8..049c111 100644 --- a/app/DD-Record-Organizer/frmRecordView.Designer.vb +++ b/app/DD-Record-Organizer/frmRecordView.Designer.vb @@ -243,7 +243,7 @@ Partial Class frmRecordView ' 'TCDetails ' - Me.TCDetails.AppearancePage.HeaderHotTracked.BackColor = CType(resources.GetObject("TCDetails.AppearancePage.HeaderHotTracked.BackColor"), System.Drawing.Color) + Me.TCDetails.AppearancePage.HeaderHotTracked.BackColor = System.Drawing.Color.Fuchsia Me.TCDetails.AppearancePage.HeaderHotTracked.BackColor2 = CType(resources.GetObject("TCDetails.AppearancePage.HeaderHotTracked.BackColor2"), System.Drawing.Color) Me.TCDetails.AppearancePage.HeaderHotTracked.Font = CType(resources.GetObject("TCDetails.AppearancePage.HeaderHotTracked.Font"), System.Drawing.Font) Me.TCDetails.AppearancePage.HeaderHotTracked.Options.UseBackColor = True @@ -256,7 +256,7 @@ Partial Class frmRecordView 'TabDetails ' Me.TabDetails.Controls.Add(Me.pnlDetails) - Me.TabDetails.Image = Global.DD_Record_Organizer.My.Resources.Resources.grid_Data_16xMD + Me.TabDetails.ImageOptions.Image = Global.DD_Record_Organizer.My.Resources.Resources.grid_Data_16xMD Me.TabDetails.Name = "TabDetails" resources.ApplyResources(Me.TabDetails, "TabDetails") ' @@ -271,7 +271,7 @@ Partial Class frmRecordView Me.TabFollowUp.Controls.Add(Me.ListViewFollowUps) Me.TabFollowUp.Controls.Add(Me.grpbxFU_Profile) Me.TabFollowUp.Controls.Add(Me.Label5) - Me.TabFollowUp.Image = Global.DD_Record_Organizer.My.Resources.Resources.Task_16xMD + Me.TabFollowUp.ImageOptions.Image = Global.DD_Record_Organizer.My.Resources.Resources.Task_16xMD Me.TabFollowUp.Name = "TabFollowUp" resources.ApplyResources(Me.TabFollowUp, "TabFollowUp") ' @@ -383,7 +383,7 @@ Partial Class frmRecordView ' Me.TabPos.Controls.Add(Me.Panel1) Me.TabPos.Controls.Add(Me.BindingNavigatorPOS) - Me.TabPos.Image = CType(resources.GetObject("TabPos.Image"), System.Drawing.Image) + Me.TabPos.ImageOptions.Image = CType(resources.GetObject("TabPos.ImageOptions.Image"), System.Drawing.Image) Me.TabPos.Name = "TabPos" Me.TabPos.PageVisible = False resources.ApplyResources(Me.TabPos, "TabPos") @@ -403,7 +403,7 @@ Partial Class frmRecordView ' 'grvwGridPos ' - Me.grvwGridPos.Appearance.EvenRow.BackColor = CType(resources.GetObject("grvwGridPos.Appearance.EvenRow.BackColor"), System.Drawing.Color) + Me.grvwGridPos.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.grvwGridPos.Appearance.EvenRow.Options.UseBackColor = True Me.grvwGridPos.GridControl = Me.GridControlPos Me.grvwGridPos.Name = "grvwGridPos" @@ -488,7 +488,7 @@ Partial Class frmRecordView ' 'TabControlBottom ' - Me.TabControlBottom.AppearancePage.HeaderHotTracked.BackColor = CType(resources.GetObject("TabControlBottom.AppearancePage.HeaderHotTracked.BackColor"), System.Drawing.Color) + Me.TabControlBottom.AppearancePage.HeaderHotTracked.BackColor = System.Drawing.Color.Fuchsia Me.TabControlBottom.AppearancePage.HeaderHotTracked.BackColor2 = CType(resources.GetObject("TabControlBottom.AppearancePage.HeaderHotTracked.BackColor2"), System.Drawing.Color) Me.TabControlBottom.AppearancePage.HeaderHotTracked.Font = CType(resources.GetObject("TabControlBottom.AppearancePage.HeaderHotTracked.Font"), System.Drawing.Font) Me.TabControlBottom.AppearancePage.HeaderHotTracked.Options.UseBackColor = True @@ -503,7 +503,7 @@ Partial Class frmRecordView Me.TabPageDoc.AllowDrop = True Me.TabPageDoc.Controls.Add(Me.GridControlDocSearch) Me.TabPageDoc.Controls.Add(Me.ToolStrip2) - Me.TabPageDoc.Image = Global.DD_Record_Organizer.My.Resources.Resources.Files_7954 + Me.TabPageDoc.ImageOptions.Image = Global.DD_Record_Organizer.My.Resources.Resources.Files_7954 Me.TabPageDoc.Name = "TabPageDoc" resources.ApplyResources(Me.TabPageDoc, "TabPageDoc") ' @@ -637,9 +637,9 @@ Partial Class frmRecordView ' 'GridViewlUsers2Group ' - Me.GridViewlUsers2Group.Appearance.EvenRow.BackColor = CType(resources.GetObject("GridViewlUsers2Group.Appearance.EvenRow.BackColor"), System.Drawing.Color) + Me.GridViewlUsers2Group.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridViewlUsers2Group.Appearance.EvenRow.Options.UseBackColor = True - Me.GridViewlUsers2Group.Appearance.FocusedRow.BackColor = CType(resources.GetObject("GridViewlUsers2Group.Appearance.FocusedRow.BackColor"), System.Drawing.Color) + Me.GridViewlUsers2Group.Appearance.FocusedRow.BackColor = System.Drawing.Color.Fuchsia Me.GridViewlUsers2Group.Appearance.FocusedRow.Options.UseBackColor = True Me.GridViewlUsers2Group.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colSelect, Me.GridColumn1, Me.GridColumn2, Me.colID}) Me.GridViewlUsers2Group.GridControl = Me.GridControlUsersSelection @@ -684,6 +684,7 @@ Partial Class frmRecordView resources.ApplyResources(Me.ListViewExclusiveUser, "ListViewExclusiveUser") Me.ListViewExclusiveUser.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader3, Me.ColumnHeader5}) Me.ListViewExclusiveUser.FullRowSelect = True + Me.ListViewExclusiveUser.HideSelection = False Me.ListViewExclusiveUser.Name = "ListViewExclusiveUser" Me.ListViewExclusiveUser.UseCompatibleStateImageBehavior = False Me.ListViewExclusiveUser.View = System.Windows.Forms.View.Details @@ -749,9 +750,9 @@ Partial Class frmRecordView ' 'GridView2 ' - Me.GridView2.Appearance.EvenRow.BackColor = CType(resources.GetObject("GridView2.Appearance.EvenRow.BackColor"), System.Drawing.Color) + Me.GridView2.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridView2.Appearance.EvenRow.Options.UseBackColor = True - Me.GridView2.Appearance.FocusedRow.BackColor = CType(resources.GetObject("GridView2.Appearance.FocusedRow.BackColor"), System.Drawing.Color) + Me.GridView2.Appearance.FocusedRow.BackColor = System.Drawing.Color.Fuchsia Me.GridView2.Appearance.FocusedRow.Options.UseBackColor = True Me.GridView2.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colGUID, Me.colSTATE_DESC, Me.colCOMMENT, Me.colADDED_WHO, Me.colADDED_WHEN}) Me.GridView2.GridControl = Me.GridControl1 diff --git a/app/DD-Record-Organizer/frmRecordView.resx b/app/DD-Record-Organizer/frmRecordView.resx index 3c374ef..1eda747 100644 --- a/app/DD-Record-Organizer/frmRecordView.resx +++ b/app/DD-Record-Organizer/frmRecordView.resx @@ -468,9 +468,6 @@ Horizontal - - Fuchsia - 255, 192, 255 @@ -493,7 +490,7 @@ 0, 0 - 1332, 301 + 1336, 304 0 @@ -511,7 +508,7 @@ 0 - 1332, 301 + 1336, 304 Detailansicht @@ -553,7 +550,7 @@ 14, 35 - 263, 126 + 263, 129 8 @@ -783,7 +780,7 @@ 177, 20 - 594, 108 + 594, 111 4 @@ -924,7 +921,7 @@ 283, 27 - 774, 134 + 774, 137 7 @@ -972,7 +969,7 @@ 2 - 1332, 301 + 1336, 304 Wiedervorlage @@ -995,11 +992,8 @@ 0, 0 - - LightBlue - - 1332, 276 + 1336, 279 0 @@ -1023,7 +1017,7 @@ 0, 25 - 1332, 276 + 1336, 279 2 @@ -1141,6 +1135,9 @@ False + + Segoe UI, 9pt + 50, 23 @@ -1198,7 +1195,7 @@ 0, 0 - 1332, 25 + 1336, 25 1 @@ -1218,7 +1215,7 @@ 1 - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASdEVYdFRpdGxlAExpc3Q7QnVsbGV0O1FzfzkAAABa @@ -1227,7 +1224,7 @@ - 1332, 301 + 1336, 304 Positionen @@ -1268,9 +1265,6 @@ 0 - - Fuchsia - 255, 192, 255 @@ -1314,7 +1308,7 @@ 0, 25 - 1332, 302 + 1336, 305 8 @@ -1347,7 +1341,7 @@ 0, 0 - 1332, 25 + 1336, 25 2 @@ -1368,7 +1362,7 @@ 1 - 1332, 327 + 1336, 330 Dateien @@ -1439,12 +1433,6 @@ 314, 24 - - LightBlue - - - Fuchsia - Selection @@ -1476,7 +1464,7 @@ 102 - 284, 223 + 284, 226 88 @@ -1512,7 +1500,7 @@ 16, 24 - 174, 223 + 174, 226 27 @@ -1663,7 +1651,7 @@ zuordnen 5 - 620, 267 + 624, 270 User zuordnen @@ -1698,12 +1686,6 @@ zuordnen 3, 6 - - LightBlue - - - Fuchsia - ID @@ -1759,7 +1741,7 @@ zuordnen 4 - 595, 258 + 595, 261 89 @@ -1777,7 +1759,7 @@ zuordnen 0 - 620, 267 + 624, 270 Workflow - History @@ -2122,7 +2104,7 @@ zuordnen 23 - 1332, 327 + 1336, 330 Workflows/Tasks diff --git a/app/DD-Record-Organizer/frmRecordView.vb b/app/DD-Record-Organizer/frmRecordView.vb index bfdb476..022bde4 100644 --- a/app/DD-Record-Organizer/frmRecordView.vb +++ b/app/DD-Record-Organizer/frmRecordView.vb @@ -69,7 +69,7 @@ Public Class frmRecordView 'Dim sql_ResultList = String.Format("select * from TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = {0} AND LANGUAGE = '{1}' ORDER BY SEQUENCE", ENTITY_ID, USER_LANGUAGE) expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) DT_WINDREAM_RESULTLIST = ClassHelper.FILTER_DATATABLE(CURRENT_RESULTLIST_CONFIG, expression, "SEQUENCE") 'ClassDatabase.Return_Datatable(sql_ResultList, True) - Dim sql_ResultList = String.Format("select * from TBPMO_DOCRESULT_DROPDOWN_ITEMS WHERE CONFIG_ID IN (SELECT GUID FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = {0} AND TYPE_ID = 4 AND LANGUAGE = '{1}')", ENTITY_ID, USER_LANGUAGE) + Dim sql_ResultList = String.Format("select * from TBPMO_DOCRESULT_DROPDOWN_ITEMS WHERE CONFIG_ID IN (SELECT GUID FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = {0} AND TYPE_ID = 10 AND LANGUAGE = '{1}')", ENTITY_ID, USER_LANGUAGE) DT_DOCRESULT_DROPDOWN_ITEMS = ClassDatabase.Return_Datatable(sql_ResultList, True) TBPMO_WORKFLOW_TASK_HISTORYTableAdapter.Connection.ConnectionString = MyConnectionString ClassWindowLocation.LoadFormLocationSize(Me, 0, CURRENT_SCREEN_ID, "frmRecordView") diff --git a/app/DD-Record-Organizer/frmWM_IndexFile.vb b/app/DD-Record-Organizer/frmWM_IndexFile.vb index 2c6705e..924af95 100644 --- a/app/DD-Record-Organizer/frmWM_IndexFile.vb +++ b/app/DD-Record-Organizer/frmWM_IndexFile.vb @@ -36,6 +36,7 @@ Public Class frmWM_IndexFile Dim swWORK_FILE As New SW("WORK_FILE: " & DOCTYPE_IDTextBox.Text) Try CURRENT_DOC_ID = Nothing + Dim odeleteRights As Boolean = True CURRENT_DOKARTSTRING = vDokart Dim err As Boolean = False @@ -104,246 +105,259 @@ Public Class frmWM_IndexFile Dim sql = "SELECT * FROM TBDD_INDEX_AUTOM WHERE ACTIVE = 1 AND UPPER(INDEXNAME) NOT LIKE UPPER('%ONLY %') AND SQL_ACTIVE = 0 AND DOCTYPE_ID = " & vDokart_ID Dim DT_AUTO_INDEXE As DataTable = ClassDatabase.Return_Datatable(sql, True) + Try + sql = "SELECT * FROM VWCUST_DOCTYPE_CONFIG WHERE DOCTYPE_ID = " & vDokart_ID + Dim DTVWCUST_DOCTYPE_CONFIG As DataTable = ClassDatabase.Return_Datatable(sql, True) + If Not IsNothing(DTVWCUST_DOCTYPE_CONFIG) Then + For Each oRow As DataRow In DTVWCUST_DOCTYPE_CONFIG.Rows + If oRow.Item(0) = "DELETE_RIGHTS" Then + odeleteRights = CBool(oRow.Item(1)) + End If + Next + End If + Catch ex As Exception + LOGGER.Warn($"Unexpected error in VWCUST_DOCTYPE_CONFIG Area: {ex.Message}") + + End Try + Dim indexierung_erfolgreich As Boolean = True - 'Erst die Objekttyp-Indices indexieren - 'den Entity-Key auslesen - Dim DTTBPMO_WD_OBJECTTYPE As DataTable - sql = "Select Top 1 * from TBPMO_WD_OBJECTTYPE where Upper(object_type) = Upper('" & clsWindream.MY_WDOBJECTTYPE & "')" - DTTBPMO_WD_OBJECTTYPE = ClassDatabase.Return_Datatable(sql, True) - If Not DTTBPMO_WD_OBJECTTYPE Is Nothing Then - If DTTBPMO_WD_OBJECTTYPE.Rows.Count = 1 Then - Dim indexname - ''den Record_Key auslesen - 'Dim indexname = DT.Rows(0).Item("IDXNAME_RECORDID").ToString - 'LOGGER.Debug("Record-ID: " & CURRENT_RECORD_ID.ToString, False) - 'indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, CURRENT_RECORD_ID, clsWindream.MY_WDOBJECTTYPE) - 'If indexierung_erfolgreich = False Then - ' err = True - ' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in WorkFile-indexing RecordID '" & indexname & "') - Check logfile!") - ' sw.Done() - ' Return False - 'End If - 'den Entity-Key auslesen - 'indexname = DT.Rows(0).Item("IDXNAME_ENTITYID").ToString - 'LOGGER.Debug("Entity-ID: " & CURRENT_ENTITY_ID.ToString, False) - 'indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, CURRENT_ENTITY_ID, clsWindream.MY_WDOBJECTTYPE) - 'If indexierung_erfolgreich = False Then - ' err = True - ' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in WorkFile-indexing EntityID '" & indexname & "') - Check logfile!") - ' sw.Done() - ' Return False - 'End If - 'If CURRENT_REDUNDANT_FORM_ID <> 0 Then - ' indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, CURRENT_REDUNDANT_FORM_ID, clsWindream.MY_WDOBJECTTYPE) - 'End If - 'den Doctype auslesen - indexname = DTTBPMO_WD_OBJECTTYPE.Rows(0).Item("IDXNAME_DOCTYPE").ToString - LOGGER.Debug("Doctype: " & vDokart.ToString, False) - indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, vDokart, clsWindream.MY_WDOBJECTTYPE) - If indexierung_erfolgreich = False Then - err = True - ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in WorkFile-indexing Doctype '" & indexname & "') - Check logfile!") - sw.Done() - swWORK_FILE.Done() - Return False - End If + 'Erst die Objekttyp-Indices indexieren + 'den Entity-Key auslesen + Dim DTTBPMO_WD_OBJECTTYPE As DataTable + sql = "Select Top 1 * from TBPMO_WD_OBJECTTYPE where Upper(object_type) = Upper('" & clsWindream.MY_WDOBJECTTYPE & "')" + DTTBPMO_WD_OBJECTTYPE = ClassDatabase.Return_Datatable(sql, True) + If Not DTTBPMO_WD_OBJECTTYPE Is Nothing Then + If DTTBPMO_WD_OBJECTTYPE.Rows.Count = 1 Then + Dim indexname + ''den Record_Key auslesen + 'Dim indexname = DT.Rows(0).Item("IDXNAME_RECORDID").ToString + 'LOGGER.Debug("Record-ID: " & CURRENT_RECORD_ID.ToString, False) + 'indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, CURRENT_RECORD_ID, clsWindream.MY_WDOBJECTTYPE) + 'If indexierung_erfolgreich = False Then + ' err = True + ' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in WorkFile-indexing RecordID '" & indexname & "') - Check logfile!") + ' sw.Done() + ' Return False + 'End If + 'den Entity-Key auslesen + 'indexname = DT.Rows(0).Item("IDXNAME_ENTITYID").ToString + 'LOGGER.Debug("Entity-ID: " & CURRENT_ENTITY_ID.ToString, False) + 'indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, CURRENT_ENTITY_ID, clsWindream.MY_WDOBJECTTYPE) + 'If indexierung_erfolgreich = False Then + ' err = True + ' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in WorkFile-indexing EntityID '" & indexname & "') - Check logfile!") + ' sw.Done() + ' Return False + 'End If + 'If CURRENT_REDUNDANT_FORM_ID <> 0 Then + ' indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, CURRENT_REDUNDANT_FORM_ID, clsWindream.MY_WDOBJECTTYPE) + 'End If + 'den Doctype auslesen + indexname = DTTBPMO_WD_OBJECTTYPE.Rows(0).Item("IDXNAME_DOCTYPE").ToString + LOGGER.Debug("Doctype: " & vDokart.ToString, False) + indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, vDokart, clsWindream.MY_WDOBJECTTYPE) + If indexierung_erfolgreich = False Then + err = True + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in WorkFile-indexing Doctype '" & indexname & "') - Check logfile!") + sw.Done() + swWORK_FILE.Done() + Return False + End If - indexname = DTTBPMO_WD_OBJECTTYPE.Rows(0).Item("IDXNAME_RELATION").ToString - indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, "ADDI-RELATION", clsWindream.MY_WDOBJECTTYPE) - If indexierung_erfolgreich = False Then - err = True - ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in WorkFile-indexing AddiRelation '" & indexname & "') - Check logfile!") - sw.Done() - swWORK_FILE.Done() - Return False - End If + indexname = DTTBPMO_WD_OBJECTTYPE.Rows(0).Item("IDXNAME_RELATION").ToString + indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, "ADDI-RELATION", clsWindream.MY_WDOBJECTTYPE) + If indexierung_erfolgreich = False Then + err = True + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error: ", "Unexpected Error in WorkFile-indexing AddiRelation '" & indexname & "') - Check logfile!") + sw.Done() + swWORK_FILE.Done() + Return False + End If + End If End If - End If - sw.Done() - If DT_AUTO_INDEXE Is Nothing = False Then 'CHECK DD - If DT_AUTO_INDEXE.Rows.Count > 0 Then - Dim Count As Integer = 0 - For Each row As DataRow In DT_AUTO_INDEXE.Rows - Dim indexname = row.Item("INDEXNAME").ToString - Dim idxvalue = row.Item("VALUE") - If idxvalue.ToString.StartsWith("@") Then - Select Case idxvalue.ToString.ToUpper - Case "@RECORD-ID" - idxvalue = idxvalue.ToString.Replace("@Record-ID", CURRENT_RECORD_ID) - Case "@DOKART" - idxvalue = idxvalue.ToString.Replace("@Dokart", vDokart) - End Select - Else 'Es wird nicht über einen @PAttern indexiert - ' Regulären Ausdruck zum Auslesen der Indexe definieren - 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(idxvalue) - '#### - ' alle Vorkommen innerhalbd er Namenkonvention durchlaufen - For Each element As System.Text.RegularExpressions.Match In elemente - - LOGGER.Debug("element in RegeX: " & element.Value, False) - Select Case element.Value.Substring(2, 1).ToUpper + sw.Done() + If DT_AUTO_INDEXE Is Nothing = False Then 'CHECK DD + If DT_AUTO_INDEXE.Rows.Count > 0 Then + Dim Count As Integer = 0 + For Each row As DataRow In DT_AUTO_INDEXE.Rows + Dim indexname = row.Item("INDEXNAME").ToString + Dim idxvalue = row.Item("VALUE") + If idxvalue.ToString.StartsWith("@") Then + Select Case idxvalue.ToString.ToUpper + Case "@RECORD-ID" + idxvalue = idxvalue.ToString.Replace("@Record-ID", CURRENT_RECORD_ID) + Case "@DOKART" + idxvalue = idxvalue.ToString.Replace("@Dokart", vDokart) + End Select + Else 'Es wird nicht über einen @PAttern indexiert + ' Regulären Ausdruck zum Auslesen der Indexe definieren + 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(idxvalue) + '#### + ' alle Vorkommen innerhalbd er Namenkonvention durchlaufen + For Each element As System.Text.RegularExpressions.Match In elemente + + LOGGER.Debug("element in RegeX: " & element.Value, False) + Select Case element.Value.Substring(2, 1).ToUpper 'Nur automatische Indizes auswerten - Case "A" - Dim APattern = element.Value.Substring(3, element.Value.Length - 4) - If APattern.Contains("#") Then - LOGGER.Debug("element filled with Record-Data.......: ", False) - Dim split() As String = APattern.Split("#") - If split.Length = 2 Then - Dim CONTROL_ID = split(1) - LOGGER.Debug("CONTROL_ID: " & CONTROL_ID, False) - If IsNumeric(CONTROL_ID) Then - Dim CONTROLVALUE = ClassControlValues.Get_Control_Value_for_ID(CONTROL_ID, CURRENT_RECORD_ID) - If IsNothing(CONTROLVALUE) Then - LOGGER.Warn("Index should be filled with value of Control-ID '" & CONTROL_ID & "', but result was nothing.", False) - LOGGER.Warn("SQL-Command: " & CURRENT_LAST_SQL) - idxvalue = "" - Else - If IsDBNull(CONTROLVALUE) Then - LOGGER.Warn("Index should be filled with value of Control-ID '" & CONTROL_ID & "', but result was DBNULL.", False) + Case "A" + Dim APattern = element.Value.Substring(3, element.Value.Length - 4) + If APattern.Contains("#") Then + LOGGER.Debug("element filled with Record-Data.......: ", False) + Dim split() As String = APattern.Split("#") + If split.Length = 2 Then + Dim CONTROL_ID = split(1) + LOGGER.Debug("CONTROL_ID: " & CONTROL_ID, False) + If IsNumeric(CONTROL_ID) Then + Dim CONTROLVALUE = ClassControlValues.Get_Control_Value_for_ID(CONTROL_ID, CURRENT_RECORD_ID) + If IsNothing(CONTROLVALUE) Then + LOGGER.Warn("Index should be filled with value of Control-ID '" & CONTROL_ID & "', but result was nothing.", False) LOGGER.Warn("SQL-Command: " & CURRENT_LAST_SQL) idxvalue = "" Else - idxvalue = CONTROLVALUE + If IsDBNull(CONTROLVALUE) Then + LOGGER.Warn("Index should be filled with value of Control-ID '" & CONTROL_ID & "', but result was DBNULL.", False) + LOGGER.Warn("SQL-Command: " & CURRENT_LAST_SQL) + idxvalue = "" + Else + idxvalue = CONTROLVALUE + End If End If - End If - Else + Else + End If End If End If - End If - End Select + End Select - Next - End If - LOGGER.Debug("Value for Indexing : '" & idxvalue.ToString & "'", False) - Count += 1 - indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, idxvalue, clsWindream.MY_WDOBJECTTYPE) - If indexierung_erfolgreich = False Then - MsgBox("Unexpected Error in indexing file - See log", MsgBoxStyle.Critical) - err = True - Exit For + Next + End If + LOGGER.Debug("Value for Indexing : '" & idxvalue.ToString & "'", False) + Count += 1 + indexierung_erfolgreich = clsWD_SET.IndexFile(CURRENT_FILEIN_WD, indexname, idxvalue, clsWindream.MY_WDOBJECTTYPE) + If indexierung_erfolgreich = False Then + MsgBox("Unexpected Error in indexing file - See log", MsgBoxStyle.Critical) + err = True + Exit For + End If + 'ByVal WD_File As String, ByVal _Indexname As String, ByVal _Value As String + Next + If err = True Then + swWORK_FILE.Done() + Return False End If - 'ByVal WD_File As String, ByVal _Indexname As String, ByVal _Value As String - Next - If err = True Then - swWORK_FILE.Done() - Return False - End If + Else + 'MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (1)!", MsgBoxStyle.Critical) + 'Return False + End If Else - 'MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (1)!", MsgBoxStyle.Critical) - 'Return False - End If - Else - swWORK_FILE.Done() - MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (0)!", MsgBoxStyle.Critical) - - Return False - End If - 'Nun alles aufrüumen und die neue DocID holen + swWORK_FILE.Done() + MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (0)!", MsgBoxStyle.Critical) - If indexierung_erfolgreich = True Then - LOGGER.Info("File was correctly imported and indexed: " & CURRENT_FILEIN_WD, False) - Dim stg As String = "Datei erfolgreich nach windream übertragen" - Dim stg1 As String = "Erfolgsmeldung" - If USER_LANGUAGE <> "de-DE" Then - stg = "File was successfully transfered to windream" - stg1 = "Success:" + Return False End If - If multiindex = False Then CURRENT_NOTIFICATION_MSG = stg - ClassDatabase.Execute_Scalar("UPDATE TBPMO_FILES_USER SET WORKED = 1 WHERE GUID = " & CURRENT_FILEID, True) - For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows - If row.Item("GUID") = CURRENT_FILEID Then - row.Item("WORKED") = 1 - If IsNothing(droptype) Then - droptype = row.Item("HANDLE_TYPE") + 'Nun alles aufrüumen und die neue DocID holen + + If indexierung_erfolgreich = True Then + LOGGER.Info("File was correctly imported and indexed: " & CURRENT_FILEIN_WD, False) + Dim stg As String = "Datei erfolgreich nach windream übertragen" + Dim stg1 As String = "Erfolgsmeldung" + If USER_LANGUAGE <> "de-DE" Then + stg = "File was successfully transfered to windream" + stg1 = "Success:" + End If + If multiindex = False Then CURRENT_NOTIFICATION_MSG = stg + ClassDatabase.Execute_Scalar("UPDATE TBPMO_FILES_USER SET WORKED = 1 WHERE GUID = " & CURRENT_FILEID, True) + For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows + If row.Item("GUID") = CURRENT_FILEID Then + row.Item("WORKED") = 1 + If IsNothing(droptype) Then + droptype = row.Item("HANDLE_TYPE") + End If End If + Next + If IsNothing(CURRENT_DOC_ID) Then + sw = New SW("GettingDocID") + sql = String.Format("SELECT DocID FROM VWPMO_DOC_SYNC WHERE UPPER(FULL_FILENAME) = UPPER('{0}') AND CONVERT(DATE,Change_DateTime) = CONVERT(DATE,GETDATE())", CURRENT_FILEIN_WD) + CURRENT_DOC_ID = ClassDatabase.Execute_Scalar(sql) + sw.Done() End If - Next - If IsNothing(CURRENT_DOC_ID) Then - sw = New SW("GettingDocID") - sql = String.Format("SELECT DocID FROM VWPMO_DOC_SYNC WHERE UPPER(FULL_FILENAME) = UPPER('{0}') AND CONVERT(DATE,Change_DateTime) = CONVERT(DATE,GETDATE())", CURRENT_FILEIN_WD) - CURRENT_DOC_ID = ClassDatabase.Execute_Scalar(sql) - sw.Done() - End If - If Not IsNothing(CURRENT_DOC_ID) Then - ClassHelper.InsertEssential_Log(CURRENT_DOC_ID, "DOC_ID", "File was imported and indexed!") - LOGGER.Info(String.Format("File-Import was finished - DocID: {0} ", CURRENT_DOC_ID), False) - Dim delete = False - 'Die Originaldatei löschen - If droptype = "dragdrop file" And indexierung_erfolgreich = True Then - If chkdelete_origin.Checked = True Then + If Not IsNothing(CURRENT_DOC_ID) Then + ClassHelper.InsertEssential_Log(CURRENT_DOC_ID, "DOC_ID", "File was imported and indexed!") + LOGGER.Info(String.Format("File-Import was finished - DocID: {0} ", CURRENT_DOC_ID), False) + Dim delete = False + 'Die Originaldatei löschen + If droptype = "dragdrop file" And indexierung_erfolgreich = True Then + If chkdelete_origin.Checked = True Then + 'Die temporäre Datei löschen + File.Delete(aktFiledropped) + End If + ElseIf (droptype = "@ATTMNTEXTRACTED@" Or droptype = "SCAN") And indexierung_erfolgreich = True Then + 'Die temporäre Datei löschen + delete = True + ElseIf droptype = "dragdrop message" And indexierung_erfolgreich = True Then 'Die temporäre Datei löschen - File.Delete(aktFiledropped) + delete = True + End If + If delete = True Then + For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows + If row.Item("GUID") = CURRENT_FILEID Then + row.Item("DELETE_FILE") = True + End If + Next End If - ElseIf (droptype = "@ATTMNTEXTRACTED@" Or droptype = "SCAN") And indexierung_erfolgreich = True Then - 'Die temporäre Datei löschen - delete = True - ElseIf droptype = "dragdrop message" And indexierung_erfolgreich = True Then - 'Die temporäre Datei löschen - delete = True - End If - If delete = True Then - For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows - If row.Item("GUID") = CURRENT_FILEID Then - row.Item("DELETE_FILE") = True - End If - Next - End If - If clsWindream.Create_Session() = False Then - MsgBox("Could not create a windream-session!", MsgBoxStyle.Critical) - Else - 'Create Session um Fehler bei windows Session nicht zu erzeugen - FAU_AD_USER = "" - ClassFileResult.DocID = CURRENT_DOC_ID - ClassFileResult.SET_DOCID_INDICES() - If ClassDOC_SEARCH.CREATE_DOC_RELATED_LINKS(CURRENT_DOC_ID, CURRENT_RECORD_ID) = False Then - stg = "Unerwarteter Fehler: Der Record-Link konnte nicht erzeugt werden! Überprüfen Sie das Log." - If USER_LANGUAGE <> "de-DE" Then - stg = "Unexpected Error: Could not create the recordlink! Please check the log." - End If - MsgBox(stg, MsgBoxStyle.Critical, stg1) + If clsWindream.Create_Session() = False Then + MsgBox("Could not create a windream-session!", MsgBoxStyle.Critical) Else - 'If CURRENT_REDUNDANT_FORM_ID <> 0 Then - ' ClassDOC_SEARCH.SET_WD_RIGHTS(CURRENT_DOC_ID, CURRENT_FILEIN_WD) - 'End If + 'Create Session um Fehler bei windows Session nicht zu erzeugen + FAU_AD_USER = "" + ClassFileResult.DocID = CURRENT_DOC_ID + ClassFileResult.SET_DOCID_INDICES() + If ClassDOC_SEARCH.CREATE_DOC_RELATED_LINKS(CURRENT_DOC_ID, CURRENT_RECORD_ID) = False Then + stg = "Unerwarteter Fehler: Der Record-Link konnte nicht erzeugt werden! Überprüfen Sie das Log." + If USER_LANGUAGE <> "de-DE" Then + stg = "Unexpected Error: Could not create the recordlink! Please check the log." + End If + MsgBox(stg, MsgBoxStyle.Critical, stg1) + Else + sw = New SW("Setting_Rights") - If ClassDOC_SEARCH.SET_WD_RIGHTS(CURRENT_DOC_ID, CURRENT_FILEIN_WD) = False Then + If ClassDOC_SEARCH.SET_WD_RIGHTS(CURRENT_DOC_ID, CURRENT_FILEIN_WD, odeleteRights) = False Then MsgBox("The rights for the new file could not be created! Please check the logfile!" & vbNewLine & "ADDI will try to give You at least reading rights!", MsgBoxStyle.Exclamation) DD_Rights.ClassRights.SetRightExplicit(CURRENT_DOC_ID, CURRENT_FILEIN_WD, USER_USERNAME, 1) ClassHelper.InsertEssential_Log(CURRENT_DOC_ID, "DOC-ID", "NEW FILE INDEXING - RIGHTS COULD NOT BE SET!!") End If sw.Done() + End If End If - End If - Else - stg = "Unerwarteter Fehler: Es konnte keine DocID für die übertragene Datei erzeugt werden!" - If USER_LANGUAGE <> "de-DE" Then - stg = "Unexpected Error: Could not get a docId for transmitted file!" + Else + stg = "Unerwarteter Fehler: Es konnte keine DocID für die übertragene Datei erzeugt werden!" + If USER_LANGUAGE <> "de-DE" Then + stg = "Unexpected Error: Could not get a docId for transmitted file!" + End If + LOGGER.Warn(stg) + MsgBox(stg, MsgBoxStyle.Critical, stg1) End If - LOGGER.Warn(stg) - MsgBox(stg, MsgBoxStyle.Critical, stg1) + Else + MsgBox("An unexpected error occured while indexing file. Please check the log!", MsgBoxStyle.Exclamation) + swWORK_FILE.Done() + Return False End If + swWORK_FILE.Done() + Return True Else - MsgBox("An unexpected error occured while indexing file. Please check the log!", MsgBoxStyle.Exclamation) swWORK_FILE.Done() - Return False - End If - swWORK_FILE.Done() - Return True - Else - swWORK_FILE.Done() Return False End If Catch ex As Exception diff --git a/app/Setup_NoUpdaterVS19/Product.wxs b/app/Setup_NoUpdaterVS19/Product.wxs index f800818..4e9118e 100644 --- a/app/Setup_NoUpdaterVS19/Product.wxs +++ b/app/Setup_NoUpdaterVS19/Product.wxs @@ -163,7 +163,7 @@ - +