Imports System.ComponentModel Imports System.Data.SqlClient Imports System.IO Imports DD_LIB_Standards Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Views.Grid Public Class frmAdministration Private email As New ClassEmail Public profile_guid As Integer = 0 Dim formloaded As Boolean Private INSERT_ACTIVE As Boolean = False Dim MyIndicies As List(Of String) Dim MyIndicies_Types As List(Of Integer) Private Sub frmFormDesigner_Load(sender As Object, e As System.EventArgs) Handles Me.Load formloaded = False Try TBPM_KONFIGURATIONTableAdapter.Connection.ConnectionString = CONNECTION_STRING TBPM_PROFILETableAdapter.Connection.ConnectionString = CONNECTION_STRING TBPM_TYPETableAdapter.Connection.ConnectionString = CONNECTION_STRING TBDD_USERTableAdapter.Connection.ConnectionString = CONNECTION_STRING FNPM_GET_FREE_USER_FOR_PROFILETableAdapter.Connection.ConnectionString = CONNECTION_STRING TBDD_GROUPSTableAdapter.Connection.ConnectionString = CONNECTION_STRING TBPROFILE_USERTableAdapter.Connection.ConnectionString = CONNECTION_STRING TBPROFILE_GROUPTableAdapter.Connection.ConnectionString = CONNECTION_STRING TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Connection.ConnectionString = CONNECTION_STRING TBPM_PROFILE_CONTROLSTableAdapter.Connection.ConnectionString = CONNECTION_STRING TBPM_PROFILE_FILESTableAdapter.Connection.ConnectionString = CONNECTION_STRING TBDD_CONNECTIONTableAdapter.Connection.ConnectionString = CONNECTION_STRING TBDD_CONNECTIONTableAdapter.Fill(DD_DMSLiteDataSet.TBDD_CONNECTION) Refresh_Profildaten() Dim dragDropManager = New ClassDragDrop() dragDropManager.AddGridView(viewAssignedUsers) dragDropManager.AddGridView(viewAvailableUsers) dragDropManager.AddGridView(viewAvailableGroups) dragDropManager.AddGridView(viewAssignedGroups) tabctrl_Profilkonfig.SelectedIndex = 0 Catch ex As Exception LOGGER.Error(ex) MsgBox("Fehler bei Laden der Wertehilfen und Konfig-Daten: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") End Try If IDB_ACTIVE = True Then IDBData.Init() lblSearch.Text = "Datei-Suche (SQL):" btnWMopenSuche.Visible = False SORT_BY_LATESTCheckBox.Visible = False PRIORITYNumericUpDown.Visible = False lblPriority.Visible = False Else lblSearch.Text = "windream-Suche:" btnWMopenSuche.Visible = True SORT_BY_LATESTCheckBox.Visible = True PRIORITYNumericUpDown.Visible = True lblPriority.Visible = True End If ObjekttypenEintragen() Indexe_eintragen() End Sub Sub Indexe_eintragen() If cmbObjekttypen.Text <> "" Then Me.PM_VEKTOR_INDEXComboBox.Items.Clear() Me.cmbLOGIndex.Items.Clear() Me.PM_VEKTOR_INDEXComboBox.Items.Add("") Me.cmbLOGIndex.Items.Add("") cmbLOGIndex.Enabled = True Label9.Enabled = True '############## IDB ACTIVE ################# PM_VEKTOR_INDEXComboBox.Enabled = False Label4.Enabled = False Try For Each oRow As DataRow In IDBData.DTVWIDB_BE_ATTRIBUTE.Rows Select Case CInt(oRow.Item("TYP_ID")) Case 8 Me.PM_VEKTOR_INDEXComboBox.Items.Add(oRow.Item("ATTR_TITLE")) Me.cmbLOGIndex.Items.Add(oRow.Item("ATTR_TITLE")) End Select Next MyIndicies_Types = New List(Of Integer) MyIndicies = IDBData.GetIndicesByBE(cmbObjekttypen.Text).ToList() For Each oIndex In MyIndicies Dim type = IDBData.GetTypeOfIndex(oIndex) MyIndicies_Types.Add(type) Next Catch ex As Exception LOGGER.Error(ex) MsgBox("Error in GetIndices IDB: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End If End Sub Sub Refresh_Profildaten() Try TBPM_PROFILETableAdapter.Fill(DD_DMSLiteDataSet.TBPM_PROFILE) TBPM_TYPETableAdapter.Fill(DD_DMSLiteDataSet.TBPM_TYPE) TBPM_KONFIGURATIONTableAdapter.Fill(DD_DMSLiteDataSet.TBPM_KONFIGURATION) 'Me.TBPM_USERTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBDD_USER) 'TBDD_GROUPSTableAdapter.FillByProfileId_NotAssigned(DD_DMSLiteDataSet.TBDD_GROUPS, PROFILGUIDTextBox.Text) If tabctrl_Profilkonfig.SelectedIndex = 1 Then CURRENT_OBJECTTYPE = cmbObjekttypen.Text If TabControl2.SelectedIndex = 1 Then Refresh_Final_indexe() End If End If Catch ex As Exception LOGGER.Error(ex) MsgBox("Fehler bei Refresh_Profildaten: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") End Try End Sub Private Sub ObjekttypenEintragen() Try Me.cmbObjekttypen.Items.Clear() Dim oSQL = "SELECT GUID, TITLE FROM TBIDB_BUSINESS_ENTITY" Dim oDT As DataTable = ClassDatabase.Return_Datatable_ConStr(oSQL, CONNECTION_STRING_IDB) For Each oROW As DataRow In oDT.Rows Me.cmbObjekttypen.Items.Add(oROW.Item(1)) Next Catch ex As Exception LOGGER.Error(ex) MsgBox("Error ObjekttypenEintragen: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Attention:") End Try End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnWMSuche.Click If IDB_ACTIVE = True Then CURRENT_DESIGN_TYPE = "IDB_SEARCH" Dim oForm As New frmSQL_DESIGNER() With {.SQLCommand = Me.WD_SEARCHTextBox.Text} Dim oResult = oForm.ShowDialog() Me.WD_SEARCHTextBox.Text = oForm.SQLCommand Else If Not Me.WD_SEARCHTextBox.Text = "" Then Me.dlgWindreamsuche.FileName = Me.WD_SEARCHTextBox.Text End If If Me.dlgWindreamsuche.ShowDialog = Windows.Forms.DialogResult.OK Then Me.WD_SEARCHTextBox.Text = Me.dlgWindreamsuche.FileName End If End If End Sub Private Sub btnopenSuche_Click(sender As System.Object, e As System.EventArgs) Handles btnWMopenSuche.Click Try If Not Me.WD_SEARCHTextBox.Text = "" Then Dim p As New Process() p.StartInfo.FileName = Me.WD_SEARCHTextBox.Text p.StartInfo.WindowStyle = ProcessWindowStyle.Normal p.Start() p.WaitForExit() p.Close() End If Catch ex As Exception LOGGER.Error(ex) MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei öffnen der windream-Suche:") End Try End Sub Private Sub TBPM_PROFILEBindingSource_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBPM_PROFILEBindingSource.AddingNew DD_DMSLiteDataSet.TBPM_PROFILE.ADDED_WHOColumn.DefaultValue = USER_USERNAME DD_DMSLiteDataSet.TBPM_PROFILE.ADDED_WHENColumn.DefaultValue = Date.Now DD_DMSLiteDataSet.TBPM_PROFILE.TYPEColumn.DefaultValue = 1 End Sub Private Sub TBPM_PROFILEBindingSource_PositionChanged(sender As System.Object, e As System.EventArgs) Handles TBPM_PROFILEBindingSource.PositionChanged tsbStaticInfo.Caption = "" Indexe_eintragen() If tabctrl_Profilkonfig.SelectedIndex = 1 And TBPM_PROFILEBindingSource.Position <> -1 Then Refresh_Final_indexe() End If End Sub Private Sub btnmovetoFolderDialog_Click(sender As System.Object, e As System.EventArgs) ' wenn im Formular der OK-Button geklickt wurde If Me.FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then ' den Speicherort der windream-Suche in die TextBox eintragen Me.MOVE2FOLDERTextBox.Text = Me.FolderBrowserDialog1.SelectedPath End If End Sub Private Sub ADDED_WHOLabel_Click(sender As System.Object, e As System.EventArgs) End Sub Sub FillProfile_User(profileId As Integer) Try If Not IsNothing(profileId) Then TBPROFILE_USERTableAdapter.Fill(DD_DMSLiteDataSet.TBPROFILE_USER, profileId) TBPROFILE_GROUPTableAdapter.Fill(DD_DMSLiteDataSet.TBPROFILE_GROUP, profileId) Me.FNPM_GET_FREE_USER_FOR_PROFILETableAdapter.Fill(Me.DD_DMSLiteDataSet.FNPM_GET_FREE_USER_FOR_PROFILE, profileId) TBDD_GROUPSTableAdapter.FillByProfileId_NotAssigned(DD_DMSLiteDataSet.TBDD_GROUPS, profileId) End If Catch ex As Exception LOGGER.Error(ex) MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler beim Laden der User zu Profil:") End Try End Sub Private Sub TBPM_USERBindingSource_AddingNew(sender As System.Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBDD_USERBindingSource.AddingNew DD_DMSLiteDataSet.TBDD_USER.ADDED_WHOColumn.DefaultValue = USER_USERNAME End Sub Private Function GetCurrentProfileId() As Integer Dim rowView As DataRowView = viewAvailableProfiles.GetFocusedRow() If IsNothing(rowView) = False Then Dim profileId As Integer = rowView.Item("GUID") Return profileId Else : Return Nothing End If End Function Private Sub viewAvailableProfiles_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles viewAvailableProfiles.FocusedRowChanged If TabControl1.SelectedIndex = 1 And formloaded Then Try Dim profileId As Integer = GetCurrentProfileId() If Not IsNothing(profileId) Then FillProfile_User(profileId) End If Catch ex As Exception LOGGER.Error(ex) MsgBox($"Error while calling FillProfile_User", MsgBoxStyle.Critical) End Try End If End Sub Private Sub gridAssignedUsers_DragDrop(sender As Object, e As DragEventArgs) Handles gridAssignedUsers.DragDrop Try Dim data As String = e.Data.GetData(DataFormats.Text) Dim userId As Integer = data.Split("|")(0) Dim profileId = GetCurrentProfileId() TBPROFILE_USERTableAdapter.CMDInsert(profileId, userId, USER_USERNAME) FillProfile_User(profileId) Catch ex As Exception LOGGER.Error(ex) MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler beim Hinzufügen eines Users:") End Try End Sub Private Sub gridAvailableUsers_DragDrop(sender As Object, e As DragEventArgs) Handles gridAvailableUsers.DragDrop Try Dim data As String = e.Data.GetData(DataFormats.Text) Dim userId As Integer = data.Split("|")(0) Dim profileId = GetCurrentProfileId() TBPROFILE_USERTableAdapter.CmdDelete(profileId, userId) FillProfile_User(profileId) Catch ex As Exception LOGGER.Error(ex) MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler beim Entfernen eines Users:") End Try End Sub Private Sub gridAssignedGroups_DragDrop(sender As Object, e As DragEventArgs) Handles gridAssignedGroups.DragDrop Try Dim data As String = e.Data.GetData(DataFormats.Text) Dim groupId As Integer = data.Split("|")(0) Dim profileId = GetCurrentProfileId() TBPROFILE_GROUPTableAdapter.CmdInsert(profileId, groupId, USER_USERNAME) ' TBPROFILE_USERTableAdapter.CMDInsert(profileId, userId, USER_USERNAME) FillProfile_User(profileId) Catch ex As Exception LOGGER.Error(ex) MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler beim Hinzufügen einer Gruppe:") End Try End Sub Private Sub gridAvailableGroups_DragDrop(sender As Object, e As DragEventArgs) Handles gridAvailableGroups.DragDrop Try Dim data As String = e.Data.GetData(DataFormats.Text) Dim groupId As Integer = data.Split("|")(0) Dim profileId = GetCurrentProfileId() TBPROFILE_GROUPTableAdapter.CmdDelete(profileId, groupId) 'TBPROFILE_USERTableAdapter.cmdDelete(userId) FillProfile_User(profileId) Catch ex As Exception LOGGER.Error(ex) MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler beim Entfernen einer Gruppe:") End Try End Sub 'Private Sub BindingNavigatorDeleteItem_Click(sender As System.Object, e As System.EventArgs) ' If viewAssignedUsers.GetSelectedRows().Length > 0 Then ' For Each rowHandle In viewAssignedUsers.GetSelectedRows() ' Dim rowView As DataRowView = viewAssignedUsers.GetRow(rowHandle) ' Dim userId As Integer = rowView.Item("GUID") ' TBPROFILE_USERTableAdapter.cmdDelete(userId) ' Next ' End If 'End Sub 'Sub Save_Konfiguration() ' TBPM_KONFIGURATIONBindingSource.EndEdit() ' If DD_DMSLiteDataSet.TBPM_KONFIGURATION.GetChanges Is Nothing = False Then ' GEAENDERTWERTextBox.Text = USER_USERNAME ' TBPM_KONFIGURATIONBindingSource.EndEdit() ' TBPM_KONFIGURATIONTableAdapter.Update(DD_DMSLiteDataSet.TBPM_KONFIGURATION) ' tstrpinfo.Text = "Konfiguration wurde erfolgreich gespeichert" ' tstrpinfo.Visible = True ' Else ' tstrpinfo.Visible = False ' End If 'End Sub Private Sub frmProfileDesigner_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown TabControl1.SelectedIndex = 0 formloaded = True RibbonPageGroup2.Enabled = False End Sub Private Sub Refresh_Final_indexe() Try 'Me.lblSaveFinalIndex.Visible = False If formloaded = False Then Exit Sub If NAMETextBox.Text <> String.Empty Then TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Fill(FinalIndexDataSet.TBPM_PROFILE_FINAL_INDEXING, NAMETextBox.Text) End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Refresh_Final_indexe:") End Try End Sub Private Sub TabControl2_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles tabctrl_Profilkonfig.SelectedIndexChanged Select Case tabctrl_Profilkonfig.SelectedIndex Case 0 RibbonPageGroup2.Enabled = False Case 1 CURRENT_OBJECTTYPE = cmbObjekttypen.Text Refresh_Final_indexe() CancelFinalIndexInsert() End Select End Sub Private Sub TabControl1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles TabControl1.SelectedIndexChanged Select Case TabControl1.SelectedIndex Case 0 RibbonPageGroup1.Enabled = True Case 1 RibbonPageGroup1.Enabled = False RibbonPageGroup2.Enabled = False If PROFILGUIDTextBox.Text = String.Empty Then MsgBox("Kein Profil angelegt oder ausgeählt", MsgBoxStyle.Critical) Else FillProfile_User(PROFILGUIDTextBox.Text) End If End Select End Sub Private Sub CancelFinalIndexInsert() INSERT_ACTIVE = False BarButtonItem19.Visibility = DevExpress.XtraBars.BarItemVisibility.Never BarButtonItem16.Visibility = DevExpress.XtraBars.BarItemVisibility.Always TBPM_PROFILE_FINAL_INDEXINGBindingSource.CancelEdit() End Sub Private Sub ACTIVECheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles ACTIVECheckBox.CheckedChanged If ACTIVECheckBox.Checked Then ACTIVECheckBox.BackColor = Color.Lime Else ACTIVECheckBox.BackColor = Color.Transparent End If End Sub Private Sub ToolStripButton12_Click(sender As Object, e As EventArgs) Load_User() End Sub Sub Load_User() Try Me.TBDD_USERTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBDD_USER) Catch ex As Exception LOGGER.Error(ex) MsgBox("Fehler bei LoadUsers: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler:") End Try End Sub Private Sub cmbObjekttypen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbObjekttypen.SelectedIndexChanged If formloaded = False Then Exit Sub End If If cmbObjekttypen.SelectedIndex <> -1 Then Indexe_eintragen() End If End Sub 'Private Sub TabControlFinalIndices_SelectedIndexChanged(sender As Object, e As EventArgs) ' If TabControlFinalIndices.SelectedIndex = 1 Then ' Me.cmbIndexe2.Enabled = False ' If INSERT_ACTIVE = True Then ' Me.cmbIndexe2.Enabled = True ' End If ' End If 'End Sub 'Private Sub btnSaveSQLCommand_Click(sender As Object, e As EventArgs) ' If INSERT_ACTIVE = True Then ' If cmbConnection.SelectedIndex = -1 Or SQL_COMMANDTextBox.Text = String.Empty Or cmbIndexe2.SelectedIndex = -1 Then ' MsgBox("Bitte wählen Sie eine Connection und definieren einen SQL-Befehl!", MsgBoxStyle.Exclamation) ' Exit Sub ' End If ' TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CmdInsert(PROFILGUIDTextBox.Text, cmbIndexe2.Text, "SQL-Command", USER_USERNAME, cmbConnection.SelectedValue, SQL_COMMANDTextBox.Text) ' INSERT_ACTIVE = False ' Else ' Dim i, ID As Integer ' i = TBPM_PROFILE_FINAL_INDEXINGDataGridView.CurrentRow.Index ' ID = TBPM_PROFILE_FINAL_INDEXINGDataGridView.Item(0, i).Value ' If ID > 0 Then ' TBPM_PROFILE_FINAL_INDEXINGTableAdapter.cmdUpdateSQL(cmbConnection.SelectedValue, SQL_COMMANDTextBox.Text, USER_USERNAME, ID) ' End If ' End If ' Refresh_Final_indexe() 'End Sub 'Private Sub btnEditor_Click(sender As Object, e As EventArgs) ' Try ' Dim CONID = 0 ' If cmbConnection.SelectedValue > 0 Then ' CONID = cmbConnection.SelectedValue ' End If ' If INSERT_ACTIVE = True Then ' If cmbIndexe2.SelectedIndex = -1 Then ' MsgBox("Bitte wählen Sie einen Index!", MsgBoxStyle.Exclamation) ' Exit Sub ' End If ' TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CmdInsert(PROFILGUIDTextBox.Text, cmbIndexe2.Text, "SQL-Command", USER_USERNAME, CONID, SQL_COMMANDTextBox.Text) ' End If ' Dim i, ID As Integer ' Try ' i = TBPM_PROFILE_FINAL_INDEXINGDataGridView.CurrentRow.Index ' ID = TBPM_PROFILE_FINAL_INDEXINGDataGridView.Item(0, i).Value ' If ID > 0 Then ' CURRENT_INDEX_ID = ID ' CURRENT_DESIGN_TYPE = "FINAL_INDEX" ' CURRENT_SQL_COMAMND = SQL_COMMANDTextBox.Text ' CURRENT_SQL_CON = CONID ' CURRENT_ProfilGUID = PROFILGUIDTextBox.Text ' frmSQL_DESIGNER.ShowDialog() ' End If ' Catch ex As Exception ' clsLogger.Add("Error while operating on TBPM_PROFILE_FINAL_INDEXINGDataGridView: " & ex.Message) ' End Try ' Refresh_Final_indexe() ' Catch ex As Exception ' MsgBox("Error while opening SQLEditor: " & ex.Message, MsgBoxStyle.Critical) ' clsLogger.Add("Error while opening SQLEditor: " & ex.Message) ' End Try 'End Sub 'Private Sub TBPM_PROFILE_FINAL_INDEXINGDataGridView_CellClick(sender As Object, e As DataGridViewCellEventArgs) ' Try ' TabControlFinalIndices.Enabled = False ' TabControlFinalIndices.SelectedIndex = 0 ' Dim i, ID As Integer ' i = TBPM_PROFILE_FINAL_INDEXINGDataGridView.CurrentRow.Index ' ID = TBPM_PROFILE_FINAL_INDEXINGDataGridView.Item(0, i).Value ' If ID > 0 Then ' Dim sql = String.Format("SELECT T.*, T1.BEZEICHNUNG AS CON_STRING FROM TBPM_PROFILE_FINAL_INDEXING T,TBDD_CONNECTION T1 WHERE T.GUID = {0} AND T.CONNECTION_ID = T1.GUID ", ID) ' CURRENT_DT_SQL_CONFIG_TABLE = ClassDatabase.Return_Datatable(sql, True) ' Dim Type = TBPM_PROFILE_FINAL_INDEXINGDataGridView.Item(2, i).Value ' If Type = "SQL-Command" Then ' Dim Indexname = TBPM_PROFILE_FINAL_INDEXINGDataGridView.Item(1, i).Value ' TabControlFinalIndices.Enabled = True ' TabControlFinalIndices.SelectedIndex = 1 ' cmbIndexe2.Text = Indexname ' cmbConnection.SelectedValue = CURRENT_DT_SQL_CONFIG_TABLE.Rows(0).Item("CONNECTION_ID") ' cmbConnection.FindStringExact(CURRENT_DT_SQL_CONFIG_TABLE.Rows(0).Item("CON_STRING")) ' SQL_COMMANDTextBox.Text = CURRENT_DT_SQL_CONFIG_TABLE.Rows(0).Item("SQL_COMMAND") ' End If ' End If ' Catch ex As Exception ' MsgBox("Error while loading final Index: " & ex.Message, MsgBoxStyle.Critical) ' clsLogger.Add("Error while loading final Index: " & ex.Message) ' End Try 'End Sub 'Private Sub btnShowConnections_Click(sender As Object, e As EventArgs) ' frmConnection.ShowDialog() 'End Sub 'Private Sub btnUserManager_Click(sender As Object, e As EventArgs) Handles btnUserManager.Click ' Try ' 'Dim userManagerPath As String = clsModules.GetModulePath("User Manager") ' 'If userManagerPath Is Nothing Then ' ' MsgBox("Pfad zu User Manager konnte nicht gefunden werden!", MsgBoxStyle.Critical) ' 'Else ' ' Dim exePath As String = Path.Combine(userManagerPath, "DDUserManager.exe") ' ' If File.Exists(exePath) Then ' ' Dim psi As New ProcessStartInfo(exePath) ' ' Process.Start(psi) ' ' Else ' ' MsgBox("Programm User Manager konnte nicht gefunden werden!", MsgBoxStyle.Critical) ' ' End If ' 'End If ' If USER_MANAGER_PATH = "" Then ' With OpenFileDialog1 ' ' Do ' .Filter = "DDUserManager.Exe|*.exe" ' .FilterIndex = 1 ' .Title = "search DDUserManager.exe:" ' If .ShowDialog() = DialogResult.OK Then ' USER_MANAGER_PATH = .FileName ' CONFIG.Config.UserManagerPath = USER_MANAGER_PATH ' CONFIG.Save() ' 'SaveMySettingsValue("USRMNGRPATH", .FileName) ' End If ' End With ' End If ' If File.Exists(USER_MANAGER_PATH) Then ' Process.Start(USER_MANAGER_PATH) ' End If ' Catch ex As Exception ' LOGGER.Error(ex) ' MsgBox("Error while startign User Manager:" & vbCrLf & ex.Message, MsgBoxStyle.Critical) ' End Try 'End Sub Private Sub frmProfileDesigner_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing CancelFinalIndexInsert() End Sub Private Sub TabControl2_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles TabControl2.SelectedIndexChanged Select Case TabControl2.SelectedIndex Case 0 RibbonPageGroup2.Enabled = True Case Else RibbonPageGroup2.Enabled = False End Select CancelFinalIndexInsert() End Sub Private Sub GridView2_FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) Handles viewFinalIndex.FocusedRowChanged Try Dim view As GridView = sender Dim focusedRow As DataRow = view.GetFocusedDataRow() If IsNothing(focusedRow) Then Exit Sub End If Dim guid As Integer = focusedRow.Item("GUID") Dim index As String = NotNull(focusedRow.Item("INDEXNAME"), Nothing) Dim sqlCommand As String = NotNull(focusedRow.Item("SQL_COMMAND"), "") Dim connectionId As Integer = NotNull(focusedRow.Item("CONNECTION_ID"), 0) Dim value As String = NotNull(focusedRow.Item("VALUE"), "") Dim active As Boolean = NotNull(focusedRow.Item("ACTIVE"), True) Dim description As String = NotNull(focusedRow.Item("DESCRIPTION"), "") Dim preventDuplicates As Boolean = NotNull(focusedRow.Item("PREVENT_DUPLICATES"), False) Dim allowNewValues As Boolean = NotNull(focusedRow.Item("ALLOW_NEW_VALUES"), False) Dim VectorBehaviour As String = NotNull(focusedRow.Item("IF_VEKTOR_BEHAVIOUR"), "Add") CURRENT_INDEX_ID = guid CURRENT_SQL_CON = connectionId Dim obj As New FinalIndexProperties() obj.GUID = guid obj.IndexName = index obj.SQLCommand = New SQLValue(sqlCommand) obj.ConnectionId = connectionId obj.Description = description obj.Active = active obj.AllowAddNewValues = allowNewValues obj.PreventDuplicates = preventDuplicates obj.VectorBehaviour = VectorBehaviour ' Wenn eine neue Zeile hinzugefügt wird, auf StringValue setzen If e.FocusedRowHandle <> GridControl.NewItemRowHandle Then obj = FINALINDICES.SetValue(value, obj, index, MyIndicies, MyIndicies_Types) End If If IDB_ACTIVE Then obj.Indicies = MyIndicies.Except(IDBData.IDBSystemIndices).ToList Else obj.Indicies = MyIndicies End If obj.IndiciesType = MyIndicies_Types obj.IndexName = index obj.VectorBehaviourType = New List(Of String) From { "Add", "Overwrite" } If Not index Is Nothing Then Dim indexType As Integer = FINALINDICES.GetIndexType(index, MyIndicies, MyIndicies_Types) obj.VectorIndex = FINALINDICES.IsVectorIndex(indexType) End If PropertyGrid1.SelectedObject = obj PropertyGrid1.Refresh() Catch ex As Exception LOGGER.Error(ex) MsgBox($"Error while loading Final Index properties: {ex.Message}", MsgBoxStyle.Critical) LOGGER.Info($"Error while loading Final Index properties: {ex.Message}") End Try End Sub Private Sub PropertyGrid1_PropertyValueChanged(s As Object, e As PropertyValueChangedEventArgs) Handles PropertyGrid1.PropertyValueChanged Dim propertyGrid As PropertyGrid = s Dim obj As FinalIndexProperties = propertyGrid.SelectedObject If TypeOf (e.ChangedItem.Value) Is SQLValue Then Dim value As SQLValue = e.ChangedItem.Value If value.Value <> String.Empty Then obj.ConnectionId = CURRENT_SQL_CON obj.StringValue = "SQL-Command" End If propertyGrid.Refresh() Else Dim lbl = e.ChangedItem.Label If e.ChangedItem.Label = "Description" Then obj.Description = e.ChangedItem.Value ElseIf e.ChangedItem.Label = "IndexName" Then Dim type As Integer = FINALINDICES.GetIndexType(e.ChangedItem.Value, MyIndicies, MyIndicies_Types) obj.VectorIndex = FINALINDICES.IsVectorIndex(type) End If propertyGrid.Refresh() End If End Sub Private Sub tsBtnCancel_Click_1(sender As Object, e As EventArgs) CancelFinalIndexInsert() End Sub Private Sub PM_VEKTOR_INDEXComboBox_MouseHover(sender As Object, e As EventArgs) Handles PM_VEKTOR_INDEXComboBox.MouseHover ToolTip1.Show("Bitte wählen Sie hier den Vektor-Index den Sie für die Kennzeichnung der PM-Indizes verwenden wollen:", PM_VEKTOR_INDEXComboBox) End Sub Private Sub cmbLOGIndex_MouseHover(sender As Object, e As EventArgs) Handles cmbLOGIndex.MouseHover ToolTip1.Show("Bitte wählen Sie hier den Vektor-Index den Sie für das Loggen der Wertänderungen nutzen wollen:", cmbLOGIndex) End Sub Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick If CInt(PROFILGUIDTextBox.Text) > 0 Then profile_guid = PROFILGUIDTextBox.Text CURRENT_ProfilGUID = PROFILGUIDTextBox.Text My.Settings.Save() CURRENT_OBJECTTYPE = cmbObjekttypen.Text CURRENT_ProfilName = NAMETextBox.Text frmFormDesigner.ProfileId = CURRENT_ProfilGUID frmFormDesigner.ProfileName = CURRENT_ProfilName frmFormDesigner.ProfileObjectType = cmbObjekttypen.Text frmFormDesigner.ShowDialog() Else MsgBox("Eindeutiges Profil konnte nicht an den FormDesigner weitergegeben werden:", MsgBoxStyle.Exclamation) End If End Sub Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick Refresh_Profildaten() End Sub Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick Dim result As MsgBoxResult = MsgBox("Wollen Sie das gesamte Profil kopieren?" & vbNewLine & "Alle Einstellungen werden übernommen, das Profil wird angelegt und inaktiv gesetzt!", MsgBoxStyle.YesNo, "Bestätigung erforderlich:") 'wenn Speichern ja If result = MsgBoxResult.Yes Then Try Dim oEXECSQL As String = $"EXEC PRPM_COPY_PROFILE {PROFILGUIDTextBox.Text},'{USER_USERNAME}'" If ClassDatabase.Execute_non_Query(oEXECSQL) = True Then MsgBox("Das Profil " & NAMETextBox.Text & " wurde erfolgreich kopiert!", MsgBoxStyle.Information, "Erfolgsmeldung") Refresh_Profildaten() Else MsgBox("Error creating a profileCopy - Please check Your log!", MsgBoxStyle.Exclamation) End If Catch ex As Exception LOGGER.Error(ex) MsgBox("Fehler bei Anlage Profilkopie:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler:") End Try End If End Sub Private Sub BarButtonItem5_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem5.ItemClick Dim result As MsgBoxResult = MsgBox("Sind Sie sicher, dass Sie das Profil " & NAMETextBox.Text & " löschen wollen?", MsgBoxStyle.YesNo, "Bestätigung erforderlich:") ' wenn Speichern ja If result = MsgBoxResult.Yes Then Try Dim profileID = PROFILGUIDTextBox.Text Dim del As String = $"EXEC PRPM_DELETE_PROFILE {profileID}" If ClassDatabase.Execute_non_Query(del) = True Then MsgBox("Das Profil " & NAMETextBox.Text & " wurde erfolgreich gelöscht!", MsgBoxStyle.Information, "Erfolgsmeldung") Refresh_Profildaten() End If Catch ex As Exception LOGGER.Error(ex) MsgBox("Fehler bei Löschen des Profils:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler:") End Try End If End Sub Private Sub BarButtonItem6_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem6.ItemClick Dim result As MsgBoxResult = MsgBox("Wollen Sie die Dateien für dieses Profil wirklich entfernen?" & vbNewLine & "Wenn ja müssen Sie auf die Aktualisierung des Jobs warten bis wieder Dateien zur Bearbeitung frei sind.", MsgBoxStyle.YesNo, "Bestätigung erforderlich:") 'wenn Speichern ja If result = MsgBoxResult.Yes Then If ClassDatabase.Execute_non_Query("DELETE FROM TBPM_PROFILE_FILES WHERE PROFIL_ID = " & PROFILGUIDTextBox.Text) = True Then MsgBox("Die Dateien zum Profil wurden erfolgreich gelöscht!", MsgBoxStyle.Information) End If End If End Sub Private Sub BarButtonItem7_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem7.ItemClick Save_Profile End Sub Sub Save_Profile() Try Me.TBPM_PROFILEBindingSource.EndEdit() If DD_DMSLiteDataSet.TBPM_PROFILE.GetChanges Is Nothing = False Then CHANGED_WHOTextBox.Text = USER_USERNAME Me.TBPM_PROFILEBindingSource.EndEdit() Me.TBPM_PROFILETableAdapter.Update(DD_DMSLiteDataSet.TBPM_PROFILE) tsbStaticInfo.Caption = $"ProfileData saved - {Now.ToLongTimeString}" Else tsbStaticInfo.Caption = "" End If Catch ex As Exception LOGGER.Error(ex) MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Speichern des Profils:") End Try End Sub Private Sub BarButtonItem8_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem8.ItemClick If TBPM_PROFILETableAdapter.cmdAnzProfile + 1 > LICENSE_PROFILES Then MsgBox("Sie haben die maximale Anzahl (" & LICENSE_PROFILES & ") von lizensierten Profilen erreicht!" & vbNewLine & "Bitte löschen Sie Profile oder setzen sich mit Digital Data in Verbindung!", MsgBoxStyle.Exclamation, "Achtung Lizenzhinweis:") Else TBPM_PROFILEBindingSource.AddNew() End If End Sub Private Sub BarButtonItem9_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem9.ItemClick frmLicense.ShowDialog() End Sub Private Sub BarButtonItem10_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem10.ItemClick Dim result As MsgBoxResult = MsgBox("Do You really want to delete all workflow-Jobs?" & vbNewLine & "If yes You have to wait for the next Sync-Job for the jobs.", MsgBoxStyle.YesNo, "Bestätigung erforderlich:") 'wenn Speichern ja If result = MsgBoxResult.Yes Then If ClassDatabase.Execute_non_Query("DELETE FROM TBPM_PROFILE_FILES") = True Then MsgBox("All workflow-jobs have been erased!", MsgBoxStyle.Information) End If End If End Sub Private Sub BarButtonItem11_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem11.ItemClick frmConnection.ShowDialog() End Sub Private Sub BarButtonItem14_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem14.ItemClick frmSQL_Admin.ShowDialog() End Sub Private Sub BarButtonItem13_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem13.ItemClick Try Dim oSQL = BASEDATA_DT_CONFIG.Rows(0).Item("SQL_PROFILE_MAIN_VIEW") Dim oForm As New frmSQL_DESIGNER() With {.SQLCommand = oSQL} Dim oResult = oForm.ShowDialog() If oResult = DialogResult.OK Then ClassDatabase.Execute_non_Query(String.Format("UPDATE TBPM_KONFIGURATION SET SQL_PROFILE_MAIN_VIEW = '{0}' WHERE GUID = 1", oForm.SQLCommand.Replace("'", "''"))) BASEDATA_DT_CONFIG.Rows(0).Item("SQL_PROFILE_MAIN_VIEW") = oForm.SQLCommand End If Catch ex As Exception MsgBox("Fehler beim Speichern: " & vbNewLine & vbNewLine & ex.Message) LOGGER.Error(ex) End Try End Sub Private Sub BarButtonItem15_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem15.ItemClick Refresh_Final_indexe() End Sub Private Sub BarButtonItem16_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem16.ItemClick INSERT_ACTIVE = True BarButtonItem19.Visibility = DevExpress.XtraBars.BarItemVisibility.Always BarButtonItem16.Visibility = DevExpress.XtraBars.BarItemVisibility.Never TBPM_PROFILE_FINAL_INDEXINGBindingSource.AddNew() End Sub Private Sub BarButtonItem17_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem17.ItemClick Dim selectedRowHandle = viewFinalIndex.GetSelectedRows().First() Dim row As DataRow = viewFinalIndex.GetDataRow(selectedRowHandle) If Not IsNothing(row) Then If MsgBox("Wollen Sie den Index wirklich löschen?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then TBPM_PROFILE_FINAL_INDEXINGTableAdapter.DeleteFinalIndex(row.Item("GUID")) Refresh_Final_indexe() MsgBox("Index erfolgreich gelöscht!", MsgBoxStyle.Information, "Hinweis:") End If End If End Sub Private Sub BarButtonItem18_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem18.ItemClick Try Dim obj As FinalIndexProperties = PropertyGrid1.SelectedObject If Not IsNothing(obj) Then Dim value If obj.SQLCommand.Value <> String.Empty Then value = "SQL-Command" Else value = FINALINDICES.GetValue(obj, obj.IndexName, MyIndicies, MyIndicies_Types, obj.VectorIndex) End If value = NotNull(value, String.Empty) Dim guid = obj.GUID Dim profileId As Integer = PROFILGUIDTextBox.Text Dim connectionId As Integer = obj.ConnectionId Dim sqlCommand As String = NotNull(obj.SQLCommand.Value, String.Empty).Replace("'", "''") Dim indexName As String = NotNull(obj.IndexName, String.Empty) Dim isVectorIndex As Boolean = obj.VectorIndex Dim addedWho As String = USER_USERNAME Dim description As String = obj.Description Dim active As Integer = IIf(obj.Active, 1, 0) Dim preventDuplicates As Integer = IIf(obj.PreventDuplicates, 1, 0) Dim AllowAddNewValues As Integer = IIf(obj.AllowAddNewValues, 1, 0) Dim IF_VEKTOR_BEHAVIOUR As String = NotNull(obj.VectorBehaviour, String.Empty) Dim oDescription As String = NotNull(obj.Description, String.Empty) If indexName = String.Empty Then MsgBox("We need an index!", MsgBoxStyle.Exclamation) Exit Sub End If If sqlCommand = String.Empty And value = String.Empty Then MsgBox("SQLCommand or StaticValue need to be filled!", MsgBoxStyle.Exclamation) Exit Sub End If ' Add the vector prefix to the value if index is a vector index ' and value is NOT an SQL-Command If obj.VectorIndex And value <> "SQL-Command" Then value = $"{FINALINDICES.PREFIX_VECTOR}{value}" End If If INSERT_ACTIVE = True Then Dim sql As String = $"INSERT INTO TBPM_PROFILE_FINAL_INDEXING (PROFIL_ID, CONNECTION_ID, SQL_COMMAND, INDEXNAME, VALUE, ACTIVE, PREVENT_DUPLICATES, ALLOW_NEW_VALUES, ADDED_WHO,IF_VEKTOR_BEHAVIOUR) VALUES ({profileId}, {connectionId}, '{sqlCommand}', '{indexName}', '{value}', {active}, {preventDuplicates}, {AllowAddNewValues}, '{addedWho}','{IF_VEKTOR_BEHAVIOUR}')" If ClassDatabase.Execute_non_Query(sql, True) Then tsbStaticInfo.Caption = $"Final index added - {Now.ToLongTimeString}" INSERT_ACTIVE = False End If Else Dim sql As String = $"UPDATE TBPM_PROFILE_FINAL_INDEXING SET CONNECTION_ID = {connectionId}, SQL_COMMAND = '{sqlCommand}', INDEXNAME = '{indexName}', CHANGED_WHO = '{addedWho}', DESCRIPTION = '{oDescription}', VALUE = '{value}', ACTIVE = {active}, ALLOW_NEW_VALUES = {AllowAddNewValues}, PREVENT_DUPLICATES = {preventDuplicates},IF_VEKTOR_BEHAVIOUR = '{IF_VEKTOR_BEHAVIOUR}' WHERE GUID = {guid}" If ClassDatabase.Execute_non_Query(sql, True) Then tsbStaticInfo.Caption = $"Final index saved - {Now.ToLongTimeString}" End If End If Refresh_Final_indexe() End If Catch ex As Exception LOGGER.Error(ex) MsgBox("Error while Saving Final Index: " & ex.Message, MsgBoxStyle.Critical) LOGGER.Info("Error while Saving Final Index: " & ex.Message) Finally BarButtonItem19.Visibility = DevExpress.XtraBars.BarItemVisibility.Never BarButtonItem16.Visibility = DevExpress.XtraBars.BarItemVisibility.Always INSERT_ACTIVE = False End Try End Sub Private Sub BarButtonItem19_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem19.ItemClick CancelFinalIndexInsert() End Sub Private Sub gridFinalIndex_MouseHover(sender As Object, e As EventArgs) Handles gridFinalIndex.MouseHover RibbonPageGroup2.Enabled = True End Sub Private Sub CHANGED_WHENLabel_Click(sender As Object, e As EventArgs) End Sub Private Sub BarButtonItem20_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem20.ItemClick Try Dim oSQL = BASEDATA_DT_CONFIG.Rows(0).Item("SQL_PROFILE_MAIN_VIEW") CURRENT_DESIGN_TYPE = "SQL_OVERVIEW" Dim oForm As New frmSQL_DESIGNER() With {.SQLCommand = oSQL} Dim oResult = oForm.ShowDialog() If oResult = DialogResult.OK Then If oSQL <> oForm.SQLCommand Then ClassDatabase.Execute_non_Query(String.Format("UPDATE TBPM_KONFIGURATION SET SQL_PROFILE_MAIN_VIEW = '{0}' WHERE GUID = 1", oForm.SQLCommand.Replace("'", "''"))) BASEDATA_DT_CONFIG.Rows(0).Item("SQL_PROFILE_MAIN_VIEW") = oForm.SQLCommand BASEDATA_DT_CONFIG.AcceptChanges() End If End If Catch ex As Exception MsgBox("Error in Saving SQL Overview: " & vbNewLine & vbNewLine & ex.Message) LOGGER.Error(ex) End Try End Sub Private Sub BarButtonItem21_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem21.ItemClick Try profile_guid = PROFILGUIDTextBox.Text CURRENT_ProfilGUID = PROFILGUIDTextBox.Text CURRENT_DESIGN_TYPE = "SQL_PROFILE" Dim oSQL = $"SELECT [SQL_VIEW] FROM TBPM_PROFILE WHERE GUID = {CURRENT_ProfilGUID}" Dim oldSQL = ClassDatabase.Execute_Scalar(oSQL, CONNECTION_STRING) Dim oForm As New frmSQL_DESIGNER() With {.SQLCommand = oldSQL} Dim oResult = oForm.ShowDialog() If oResult = DialogResult.OK Then If oldSQL <> oForm.SQLCommand Then Dim oUpdate As String = $"Update TBPM_PROFILE SET CHANGED_WHO = '{USER_USERNAME}', SQL_VIEW = '{oForm.SQLCommand.Replace("'", "''")}' WHERE GUID = {CURRENT_ProfilGUID}" If ClassDatabase.Execute_non_Query(oUpdate) = True Then tsbStaticInfo.Caption = $"Profile SQL saved - {Now.ToLongTimeString}" End If End If End If Catch ex As Exception MsgBox("Error in Saving Profile SQL: " & vbNewLine & vbNewLine & ex.Message) LOGGER.Error(ex) End Try End Sub End Class