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) 'If clsModules.IsModuleInstalled("User Manager") Then ' btnUserManager.Enabled = True 'Else ' btnUserManager.Enabled = False 'End If If ClassUser.Check_User_Exists_in_UMGroups = True Then btnUserManager.Enabled = True Else btnUserManager.Enabled = False End If 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() Label7.Text = "Datei-Suche (SQL):" btnWMopenSuche.Visible = False Else Label7.Text = "windream-Suche:" btnWMopenSuche.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 If IDB_ACTIVE = False Then PM_VEKTOR_INDEXComboBox.Enabled = True Label4.Enabled = True Try Dim indexe = WINDREAM.GetIndicesByObjecttype(cmbObjekttypen.Text) If indexe IsNot Nothing Then For Each index As String In indexe Dim _vektorString As Boolean = False Select Case WINDREAM.GetTypeOfIndex(index) Case 4097 _vektorString = True Case 36865 _vektorString = True Case Else _vektorString = False End Select If _vektorString = True Then Me.PM_VEKTOR_INDEXComboBox.Items.Add(index) Me.cmbLOGIndex.Items.Add(index) End If Next End If MyIndicies = WINDREAM.GetIndicesByObjecttype(cmbObjekttypen.Text).ToList() For Each i In MyIndicies Dim type = WINDREAM.GetTypeOfIndex(i) MyIndicies_Types.Add(type) Next Catch ex As Exception LOGGER.Error(ex) MsgBox("Error in GetIndices windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") 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 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 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() Me.cmbObjekttypen.Items.Clear() If IDB_ACTIVE = False Then Try Dim oDokumentTypen As WINDREAMLib.WMObjects = WINDREAM.GetObjecttypesAsObjects() If oDokumentTypen Is Nothing Then Exit Sub For Each aType In oDokumentTypen Me.cmbObjekttypen.Items.Add(aType.aName) Next Catch ex As Exception LOGGER.Error(ex) MsgBox("Es konnte keine Verbindung zum windream-Server hergestellt werden.", MsgBoxStyle.Critical, "Fehler beim Zugriff auf windream-Server") End Try Else 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 End If 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 VWPM_PROFILE_USERBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles VWPM_PROFILE_USERBindingNavigatorSaveItem.Click Try Me.TBPM_PROFILEBindingSource.EndEdit() If DD_DMSLiteDataSet.TBPM_PROFILE.GetChanges Is Nothing = False Then Me.TBPM_PROFILETableAdapter.Update(DD_DMSLiteDataSet.TBPM_PROFILE) tstrlblSave.Visible = True Else tstrlblSave.Visible = False 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 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 tstrlblSave.Visible = False Indexe_eintragen() If tabctrl_Profilkonfig.SelectedIndex = 1 And TBPM_PROFILEBindingSource.Position <> -1 Then Refresh_Final_indexe() End If End Sub Private Sub tstrpbtn_add_Click(sender As System.Object, e As System.EventArgs) Handles tstrpbtn_add.Click 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 ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnDesigner_open.Click 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 btnmovetoFolderDialog_Click(sender As System.Object, e As System.EventArgs) Handles btnmovetoFolderDialog.Click ' 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 Private Sub btnlicensemanager_open_Click(sender As System.Object, e As System.EventArgs) Handles btnlicensemanager_open.Click frmLicense.ShowDialog() 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 formloaded = True End Sub Private Sub btnSaveKonfig_Click(sender As System.Object, e As System.EventArgs) Handles btnSaveKonfig.Click Save_Konfiguration() 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 If tabctrl_Profilkonfig.SelectedIndex = 1 Then CURRENT_OBJECTTYPE = cmbObjekttypen.Text Refresh_Final_indexe() CancelFinalIndexInsert() End If End Sub Private Sub TabControl1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles TabControl1.SelectedIndexChanged Select Case TabControl1.SelectedIndex Case 1 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 cmbIndexe_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) ' If cmbIndexe.SelectedIndex <> -1 Then ' 'MsgBox(_windreamPM.GetTypeOfIndex(cmbIndexe.Text)) ' btnInsert_FinalIndex.Enabled = True ' Me.btnStampDate.Visible = False ' Me.btnStampDate.Visible = False ' Dim type = _windreamPM.GetTypeOfIndex(cmbIndexe.Text) ' Select Case type ' Case 1 'String ' Me.lblIndex.Text = "Definieren Sie den festen Wert: (Text)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = True ' Me.btnStampDate.Visible = True ' Me.btnStampDate.Visible = True ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case 2 'Integer ' Me.lblIndex.Text = "Definieren Sie den festen Wert: (Zahl)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = True ' Me.btnStampDate.Visible = True ' Me.btnStampDate.Visible = True ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case 3 'Float ' Me.lblIndex.Text = "Definieren Sie den festen Wert: (Decimal)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = False ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case 4 ' Boolean ' Me.lblIndex.Text = "Wählen Sie den Boolean-Wert: (Ja/Nein)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = False ' Me.grbxSystemStamps.Visible = False ' Me.chkbxfinalIndex.CheckState = CheckState.Checked ' Me.chkbxfinalIndex.Visible = True ' Case 5 'Date ' Me.lblIndex.Text = "Definieren Sie den festen Wert: (Date)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = True ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case 4107 'Vektor Zahl ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Zahl)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = False ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case 4097 'Vektor String ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Text)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = True ' Me.btnStampDate.Visible = True ' Me.btnStampDate.Visible = True ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case 4100 'Vektor Bool ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Boolean)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = False ' Me.btnStampDate.Visible = False ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case 4101 'Vektor Date ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Date)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = True ' Me.btnStampDate.Visible = True ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case 4104 ' Me.lblIndex.Text = "Definieren Sie den festen Wert - Vektorfeld: (Currency)" ' Me.lblIndex.Visible = True ' Me.txtindexwert_final.Visible = True ' Me.grbxSystemStamps.Visible = False ' Me.txtindexwert_final.Text = "" ' Me.chkbxfinalIndex.Visible = False ' Case Else ' btnInsert_FinalIndex.Enabled = False ' End Select ' End If 'End Sub 'Private Sub btnInsert_FinalIndex_Click(sender As System.Object, e As System.EventArgs) ' Me.lblSaveFinalIndex.Visible = False ' If CheckBoxPMVEKTOR.Checked = False Then ' If cmbIndexe.SelectedIndex <> -1 Then ' Dim indexwert As String = "" ' If txtindexwert_final.Visible = True Then ' indexwert = txtindexwert_final.Text ' Else ' If chkbxfinalIndex.CheckState = CheckState.Checked Then ' indexwert = 1 ' Else ' indexwert = 0 ' End If ' End If ' Try ' TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CmdInsert(PROFILGUIDTextBox.Text, cmbIndexe.Text, indexwert, USER_USERNAME, 0, "") ' Me.lblSaveFinalIndex.Text = "Der Index wurde erfolgreich angelegt - " & Now ' Me.lblSaveFinalIndex.Visible = True ' Catch ex As Exception ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Anlage Final Index:") ' End Try ' End If ' Else ' If txtBezeichner.Text <> "" Then ' Dim indexwert As String = "" ' If txtindexwert_final.Visible = True Then ' indexwert = txtindexwert_final.Text ' Else ' If chkbxfinalIndex.CheckState = CheckState.Checked Then ' indexwert = "True" ' Else ' indexwert = "False" ' End If ' End If ' Try ' TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CmdInsert(PROFILGUIDTextBox.Text, "[%VKT" & txtBezeichner.Text, indexwert, USER_USERNAME, 0, "") ' Me.lblSaveFinalIndex.Text = "Der Index wurde erfolgreich angelegt - " & Now ' Me.lblSaveFinalIndex.Visible = True ' Catch ex As Exception ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Anlage Final Index in VEKTORFELD:") ' End Try ' End If ' End If ' Refresh_Final_indexe() ' INSERT_ACTIVE = False ' TabControlFinalIndices.Enabled = False 'End Sub 'Private Sub ToolStripButton1_Click_1(sender As System.Object, e As System.EventArgs) ' Refresh_Final_indexe() ' INSERT_ACTIVE = False ' TabControlFinalIndices.Enabled = False ' txtBezeichner.Text = String.Empty ' txtindexwert_final.Text = String.Empty 'End Sub Private Sub tsbtnProfilkopieren_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnProfilkopieren.Click 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 copySuffix = "_COPY" While TBPM_PROFILETableAdapter.cmdProfileExists($"{NAMETextBox.Text}{copySuffix}") > 0 copySuffix = copySuffix & "_COPY" End While TBPM_PROFILETableAdapter.cmdInsert_Copy(copySuffix, USER_USERNAME, PROFILGUIDTextBox.Text) Dim NewGUID As Integer = TBPM_PROFILETableAdapter.cmdMaxGuid If NewGUID > 0 Then Dim _sql = "INSERT INTO TBPM_PROFILE_CONTROLS " & "(NAME, PROFIL_ID, CTRL_TYPE, CTRL_TEXT, X_LOC, Y_LOC, ADDED_WHO, INDEX_NAME, TYP, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_UEBERPRUEFUNG, HEIGHT, WIDTH, READ_ONLY, " & "LOAD_IDX_VALUE, FONT_STYLE, FONT_SIZE, FONT_FAMILY, FONT_COLOR) " & "SELECT LOWER(CTRL_TYPE + CONVERT(VARCHAR(4),ROW_NUMBER() OVER (ORDER BY CTRL_TYPE))),@NEW_PROFIL_ID, CTRL_TYPE, CTRL_TEXT, X_LOC, Y_LOC, '@User', INDEX_NAME, TYP, VALIDATION, CHOICE_LIST, CONNECTION_ID, SQL_UEBERPRUEFUNG, HEIGHT, WIDTH, " & "READ_ONLY, LOAD_IDX_VALUE, FONT_STYLE, FONT_SIZE, FONT_FAMILY, FONT_COLOR " & "FROM TBPM_PROFILE_CONTROLS AS TBPM_PROFILE_CONTROLS_1 " & "WHERE (PROFIL_ID = @Copy_profilId) " _sql = _sql.Replace("@NEW_PROFIL_ID", NewGUID) _sql = _sql.Replace("@User", USER_USERNAME) _sql = _sql.Replace("@Copy_profilId", PROFILGUIDTextBox.Text) TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CopyFinalIndex(NewGUID, USER_USERNAME, PROFILGUIDTextBox.Text) 'TBPM_PROFILE_CONTROLSTableAdapter.cmdInsertCopy(NewGUID, USER_USERNAME, PROFILGUIDTextBox.Text) Execute_SQL(_sql) MsgBox("Das Profil " & NAMETextBox.Text & " wurde erfolgreich kopiert!", MsgBoxStyle.Information, "Erfolgsmeldung") Refresh_Profildaten() 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 Function Execute_SQL(SQL As String) Try Dim SQLconnection As New SqlClient.SqlConnection(CONNECTION_STRING) Dim SQLcommand As New SqlCommand(SQL, SQLconnection) SQLconnection.Open() SQLcommand.ExecuteNonQuery() SQLcommand.Dispose() SQLconnection.Close() Return True Catch ex As Exception LOGGER.Error(ex) MsgBox("Fehler in Execute_SQL: " & vbNewLine & ex.Message & vbNewLine & vbNewLine & " SQL: " & SQL) Return False End Try End Function Private Sub tsbtndeleteProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtndeleteProfil.Click 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 Button1_Click_2(sender As Object, e As EventArgs) Handles btnTest_Email.Click If txtemailEmpfaenger.Text <> "" And EMAIL_FROMTextBox.Text <> "" And EMAIL_SMTPTextBox.Text <> "" And EMAIL_USERTextBox.Text <> "" And EMAIL_PWTextBox.Text <> "" Then email.Send_Log_Mail("Dies ist eine Testemail! Gesendet vom Softwaremodul Process-Manager DD.
", "Testemail Process-Manager", EMAIL_FROMTextBox.Text, EMAIL_SMTPTextBox.Text, EMAIL_USERTextBox.Text, EMAIL_PWTextBox.Text, txtemailEmpfaenger.Text, True) Save_Konfiguration() Else MsgBox("Bitte geben Sie in allen Pflichtfeldern einen Wert ein!", MsgBoxStyle.Exclamation) End If End Sub Private Sub EMAIL_ACTIVECheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles EMAIL_ACTIVECheckBox.CheckedChanged If EMAIL_ACTIVECheckBox.Checked Then Me.grpbxEmail.Enabled = True Else Me.grpbxEmail.Enabled = False End If End Sub Private Sub btnopen_SQLAdmin_Click(sender As Object, e As EventArgs) Handles btnopen_SQLAdmin.Click frmSQL_Admin.ShowDialog() End Sub Private Sub btnRefreshProfiles_Click(sender As Object, e As EventArgs) Handles btnRefreshProfiles.Click Refresh_Profildaten() End Sub Private Sub CancelFinalIndexInsert() INSERT_ACTIVE = False tsBtnCancel.Visible = False BindingNavigatorAddNewItem.Visible = True 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 btnConnections_Click(sender As Object, e As EventArgs) Handles btnConnections.Click frmConnection.ShowDialog() End Sub Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Cursor = Cursors.WaitCursor frmUserKonfig_AddUsers.ShowDialog() Load_User() Cursor = Cursors.Default 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 Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click Dim result As MsgBoxResult = MsgBox("Wollen Sie den Tabelleninhalt mit den Profil-Dateien wirklich löschen?" & 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") = True Then MsgBox("Der Inhalt der Tabelle TBPM_PROFILE_FILES wurde erfolgreich gelöscht!", MsgBoxStyle.Information) End If End If 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 Button3_Click_1(sender As Object, e As EventArgs) Dim indexe = WINDREAM.GetIndicesByObjecttype(cmbObjekttypen.Text) If indexe IsNot Nothing Then For Each index As String In indexe MsgBox(index & vbNewLine & WINDREAM.GetTypeOfIndex(index)) Select Case WINDREAM.GetTypeOfIndex(index) Case 4107 'Vektor Zahl Case 4097 Case Else End Select Next 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 tsBtnCancel_Click(sender As Object, e As EventArgs) Handles tsBtnCancel.Click CancelFinalIndexInsert() 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 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 obj.Indicies = MyIndicies.Except(IDBData.Source_IDBIndices).ToList 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 BindingNavigatorAddNewItem_Click(sender As Object, e As EventArgs) Handles BindingNavigatorAddNewItem.Click INSERT_ACTIVE = True tsBtnCancel.Visible = True BindingNavigatorAddNewItem.Visible = False End Sub Private Sub ToolStripButton4_Click_1(sender As Object, e As EventArgs) Handles tsBtnSave.Click 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) If indexName = String.Empty Then MsgBox("Das Feld IndexName muss ausgefüllt sein!", MsgBoxStyle.Exclamation) Exit Sub End If If sqlCommand = String.Empty And value = String.Empty Then MsgBox("Entweder SQLCommand oder StaticValue müssen ausgefüllt sein!", 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 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}', 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 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 tsBtnCancel.Visible = False BindingNavigatorAddNewItem.Visible = True INSERT_ACTIVE = False 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() ElseIf e.ChangedItem.Label = "IndexName" Then Dim type As Integer = FINALINDICES.GetIndexType(e.ChangedItem.Value, MyIndicies, MyIndicies_Types) obj.VectorIndex = FINALINDICES.IsVectorIndex(type) propertyGrid.Refresh() End If End Sub Private Sub BindingNavigatorDeleteItem_Click(sender As Object, e As EventArgs) Handles BindingNavigatorDeleteItem.Click 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 ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click Refresh_Final_indexe() End Sub Private Sub tsBtnCancel_Click_1(sender As Object, e As EventArgs) Handles tsBtnCancel.Click CancelFinalIndexInsert() End Sub Private Sub tsbtnDeleteProfileData_Click(sender As Object, e As EventArgs) Handles tsbtnDeleteProfileData.Click 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 btnSQLProfilehome_Click(sender As Object, e As EventArgs) Handles btnSQLProfilehome.Click Try Dim oSQL = CURRENT_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("'", "''"))) CURRENT_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 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 End Class