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 _windreamPM As ClassPMWindream Private email As New ClassEmail Public profile_guid As Integer = 0 Dim formloaded As Boolean Private INSERT_ACTIVE As Boolean = False Private Sub frmFormDesigner_Load(sender As Object, e As System.EventArgs) Handles Me.Load formloaded = False Try TBPM_KONFIGURATIONTableAdapter.Connection.ConnectionString = MyConnectionString TBPM_PROFILETableAdapter.Connection.ConnectionString = MyConnectionString TBPM_TYPETableAdapter.Connection.ConnectionString = MyConnectionString TBDD_USERTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString TBPROFILE_USERTableAdapter.Connection.ConnectionString = MyConnectionString TBPROFILE_GROUPTableAdapter.Connection.ConnectionString = MyConnectionString TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Connection.ConnectionString = MyConnectionString TBPM_ERROR_LOGTableAdapter.Connection.ConnectionString = MyConnectionString TBPM_PROFILE_CONTROLSTableAdapter.Connection.ConnectionString = MyConnectionString TBPM_PROFILE_FILESTableAdapter.Connection.ConnectionString = MyConnectionString TBDD_CONNECTIONTableAdapter.Connection.ConnectionString = MyConnectionString 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 Catch ex As Exception MsgBox("Fehler bei Laden der Wertehilfen und Konfig-Daten: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") End Try Try ' Windream instanziieren _windreamPM = New ClassPMWindream() 'Windream initialisieren (Connection, Session, ... aufbauen) _windreamPM.Init() Catch ex As Exception MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") End Try ObjekttypenEintragen() Indexe_eintragen() End Sub Sub Indexe_eintragen() If cmbObjekttypen.Text <> "" Then Try Me.PM_VEKTOR_INDEXComboBox.Items.Clear() Me.cmbLOGIndex.Items.Clear() Dim indexe = _windreamPM.GetIndicesByObjecttype(cmbObjekttypen.Text) Me.PM_VEKTOR_INDEXComboBox.Items.Add("") Me.cmbLOGIndex.Items.Add("") If indexe IsNot Nothing Then For Each index As String In indexe Dim _vektorString As Boolean = False Select Case _windreamPM.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 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 Catch ex As Exception MsgBox("Fehler bei Indexe_eintragen: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") PM_VEKTOR_INDEXComboBox.SelectedIndex = -1 cmbLOGIndex.SelectedIndex = -1 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_USERTableAdapter.FillByProfileId_NotAssigned(DD_DMSLiteDataSet.TBDD_USER, PROFILGUIDTextBox.Text) '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 MsgBox("Fehler bei Refresh_Profildaten: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") End Try End Sub Private Sub ObjekttypenEintragen() Me.cmbObjekttypen.Items.Clear() Try Dim oDokumentTypen As WINDREAMLib.WMObjects = Me._windreamPM.GetObjecttypesAsObjects() If oDokumentTypen Is Nothing Then Exit Sub For Each aType In oDokumentTypen Me.cmbObjekttypen.Items.Add(aType.aName) Next Catch ex As Exception MsgBox("Es konnte keine Verbindung zum windream-Server hergestellt werden.", MsgBoxStyle.Critical, "Fehler beim Zugriff auf windream-Server") End Try End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnWDSuche.Click 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 Sub Private Sub btnopenSuche_Click(sender As System.Object, e As System.EventArgs) Handles btnopenSuche.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 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 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 = Environment.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) TBDD_USERTableAdapter.FillByProfileId_NotAssigned(DD_DMSLiteDataSet.TBDD_USER, profileId) TBDD_GROUPSTableAdapter.FillByProfileId_NotAssigned(DD_DMSLiteDataSet.TBDD_GROUPS, profileId) End If Catch ex As Exception 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 = Environment.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 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, Environment.UserName) FillProfile_User(profileId) Catch ex As Exception 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 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, Environment.UserName) ' TBPROFILE_USERTableAdapter.CMDInsert(profileId, userId, Environment.UserName) FillProfile_User(profileId) Catch ex As Exception 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 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 = Environment.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 PROFILGUIDTextBox.Text <> String.Empty Then Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter.FillByID(Me.DD_DMSLiteDataSet.TBPM_PROFILE_FINAL_INDEXING, PROFILGUIDTextBox.Text) End If Catch ex As System.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 Case 3 Refresh_log() End Select End Sub Private Sub BindingNavigatorDeleteItem1_Click(sender As System.Object, e As System.EventArgs) Handles BindingNavigatorDeleteItem1.Click Try TBPM_ERROR_LOGTableAdapter.CmdDelete() Refresh_log() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Delete Log:") End Try End Sub Sub Refresh_log() Try Me.TBPM_ERROR_LOGTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBPM_ERROR_LOG) Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Refresh Error:") End Try End Sub Private Sub cmbIndexe_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbIndexe.SelectedIndexChanged 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) Handles btnInsert_FinalIndex.Click 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, Environment.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, Environment.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) Handles ToolStripButton1.Click 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, Environment.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", Environment.UserName) _sql = _sql.Replace("@Copy_profilId", PROFILGUIDTextBox.Text) TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CmdInsert_Copy(NewGUID, Environment.UserName, PROFILGUIDTextBox.Text) 'TBPM_PROFILE_CONTROLSTableAdapter.cmdInsertCopy(NewGUID, Environment.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 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(MyConnectionString) Dim SQLcommand As New SqlCommand(SQL, SQLconnection) SQLconnection.Open() SQLcommand.ExecuteNonQuery() SQLcommand.Dispose() SQLconnection.Close() Return True Catch ex As Exception 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 = "delete from TBPM_CONTROL_TABLE where CONTROL_ID in (SELECT GUID FROM TBPM_PROFILE_CONTROLS where PROFIL_ID = " & profileID & ")" ClassDatabase.Execute_non_Query(del) TBPM_ERROR_LOGTableAdapter.DeletePROFIL(profileID) TBPM_PROFILE_FILESTableAdapter.cmdDeleteProfilData(profileID) TBPM_PROFILE_FINAL_INDEXINGTableAdapter.CmdDelete_ProfilID(profileID) TBPM_PROFILE_CONTROLSTableAdapter.cmdDeleteProfil(profileID) TBPROFILE_USERTableAdapter.cmdDeleteAllForProfile(profileID) TBPROFILE_GROUPTableAdapter.CmdDeleteAllForProfile(profileID) TBPM_PROFILETableAdapter.cmdDelete(profileID) MsgBox("Das Profil " & NAMETextBox.Text & " wurde erfolgreich gelöscht!", MsgBoxStyle.Information, "Erfolgsmeldung") Refresh_Profildaten() Catch ex As Exception 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 Button2_Click(sender As Object, e As EventArgs) Handles btnStampUser.Click Me.txtindexwert_final.Text = "vUserName" End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnStampDate.Click Me.txtindexwert_final.Text = "vDate" End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBoxPMVEKTOR.CheckedChanged If CheckBoxPMVEKTOR.Checked Then Me.txtBezeichner.Visible = True Me.cmbIndexe.Visible = False txtBezeichner.Text = "" Me.lblIndexPMVektor.Text = "Bezeichner für VektorIndex eingeben:" Me.lblIndex.Visible = True Me.lblIndex.Text = "Bitte den festen Wert als String eingeben:" Me.txtindexwert_final.Visible = True Me.grbxSystemStamps.Visible = True Me.txtindexwert_final.Text = "" Me.chkbxfinalIndex.Visible = False Else Me.txtBezeichner.Visible = False Me.cmbIndexe.Visible = True Me.lblIndexPMVektor.Text = "Index wählen:" Me.lblIndex.Visible = False Me.txtindexwert_final.Visible = False Me.grbxSystemStamps.Visible = False Me.txtindexwert_final.Text = "" Me.chkbxfinalIndex.Visible = 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 ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click TabControlFinalIndices.Enabled = True tsBtnCancel.Visible = True cmbIndexe.Items.Clear() cmbIndexe2.Items.Clear() Dim indexe = _windreamPM.GetIndicesByObjecttype(cmbObjekttypen.Text) If indexe IsNot Nothing Then For Each index As String In indexe Me.cmbIndexe.Items.Add(index) Me.cmbIndexe2.Items.Add(index) Next Me.cmbIndexe.SelectedIndex = -1 End If INSERT_ACTIVE = True End Sub Private Sub CancelFinalIndexInsert() TabControlFinalIndices.Enabled = False INSERT_ACTIVE = False tsBtnCancel.Visible = False txtBezeichner.Text = String.Empty txtindexwert_final.Text = String.Empty cmbIndexe.SelectedIndex = -1 cmbIndexe2.SelectedIndex = -1 cmbConnection.SelectedIndex = -1 SQL_COMMANDTextBox.Text = String.Empty CheckBoxPMVEKTOR.Checked = False End Sub Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click 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.CmdDelete(ID) End If Refresh_Final_indexe() MsgBox("Index erfolgreich gelöscht!", MsgBoxStyle.Information, "Hinweis:") ' DD_DMSLiteDataSet.TBPM_PROFILE_FINAL_INDEXING.Clear() 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 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 = _windreamPM.GetIndicesByObjecttype(cmbObjekttypen.Text) If indexe IsNot Nothing Then For Each index As String In indexe MsgBox(index & vbNewLine & _windreamPM.GetTypeOfIndex(index)) Select Case _windreamPM.GetTypeOfIndex(index) Case 4107 'Vektor Zahl Case 4097 Case Else End Select Next End If End Sub Private Sub Button3_Click_2(sender As Object, e As EventArgs) Handles Button3.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 TabControlFinalIndices_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControlFinalIndices.SelectedIndexChanged 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) Handles btnSaveSQLCommand.Click 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", Environment.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, Environment.UserName, ID) End If End If Refresh_Final_indexe() End Sub Private Sub btnEditor_Click(sender As Object, e As EventArgs) Handles btnEditor.Click 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", Environment.UserName, CONID, SQL_COMMANDTextBox.Text) End If 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 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 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) Handles TBPM_PROFILE_FINAL_INDEXINGDataGridView.CellClick 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) Handles btnShowConnections.Click 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 USRMNGRPATH = "" Then With OpenFileDialog1 ' Do .Filter = "DDUserManager.Exe|*.exe" .FilterIndex = 1 .Title = "search DDUserManager.exe:" If .ShowDialog() = DialogResult.OK Then USRMNGRPATH = .FileName SaveMySettingsValue("USRMNGRPATH", .FileName) End If End With End If If File.Exists(USRMNGRPATH) Then Process.Start(USRMNGRPATH) End If Catch ex As Exception 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 End Class