MS Administration
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
Imports DevExpress.XtraLayout
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports DevExpress.XtraLayout
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Public Class frmAdmin_Globix
|
||||
@@ -19,13 +20,14 @@ Public Class frmAdmin_Globix
|
||||
End Sub
|
||||
|
||||
Private Sub frmAdmin_Globix_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
'TODO: Diese Codezeile lädt Daten in die Tabelle "DSIDB_Stammdaten.VWIDB_OBJECT_STORE". Sie können sie bei Bedarf verschieben oder entfernen.
|
||||
'TODO: Diese Codezeile lädt Daten in die Tabelle "GlobixDataset.TBGI_REGEX_DOCTYPE". Sie können sie bei Bedarf verschieben oder entfernen.
|
||||
|
||||
InitializeBaseForm(My.LogConfig)
|
||||
Try
|
||||
TBDD_DOKUMENTARTTableAdapter.Connection.ConnectionString = My.DatabaseECM.CurrentSQLConnectionString
|
||||
TBDD_DOKUMENTARTTableAdapter.Fill(Me.GlobixDataset.TBDD_DOKUMENTART, PrimaryKey)
|
||||
TBDD_INDEX_MANTableAdapter.Connection.ConnectionString = My.DatabaseECM.CurrentSQLConnectionString
|
||||
Me.TBGI_REGEX_DOCTYPETableAdapter.Connection.ConnectionString = My.DatabaseECM.CurrentSQLConnectionString
|
||||
Me.VWIDB_OBJECT_STORETableAdapter.Connection.ConnectionString = My.DatabaseIDB.CurrentSQLConnectionString
|
||||
Me.VWIDB_OBJECT_STORETableAdapter.Fill(Me.DSIDB_Stammdaten.VWIDB_OBJECT_STORE)
|
||||
Me.VWIDB_BE_ATTRIBUTETableAdapter.Connection.ConnectionString = My.DatabaseIDB.CurrentSQLConnectionString
|
||||
@@ -59,6 +61,22 @@ Public Class frmAdmin_Globix
|
||||
.DataTable = GlobixDataset.TBDD_INDEX_AUTOM,
|
||||
.AddedWhoEdit = ADDED_WHOTextBoxAutoAttribut,
|
||||
.ChangedWhoEdit = CHANGED_WHOTextEditAutoAttribut
|
||||
},
|
||||
New ClassDetailPages.DetailPage With {
|
||||
.Name = "Auto Attributes",
|
||||
.TabPage = XtraTabPageAutoSelect,
|
||||
.BindingSource = TBGI_REGEX_DOCTYPEBindingSource,
|
||||
.DataTable = GlobixDataset.TBGI_REGEX_DOCTYPE,
|
||||
.AddedWhoEdit = AddedWhoAutoSelect,
|
||||
.ChangedWhoEdit = ChangedWhoAutoSelect
|
||||
},
|
||||
New ClassDetailPages.DetailPage With {
|
||||
.Name = "Dynamic Folder",
|
||||
.TabPage = XtraTabPageDynamicFolder,
|
||||
.BindingSource = TBDD_DOKUMENTARTBindingSource,
|
||||
.DataTable = GlobixDataset.TBDD_DOKUMENTART,
|
||||
.AddedWhoEdit = TextEditErstelltWer,
|
||||
.ChangedWhoEdit = TextEditGeandertWer
|
||||
}
|
||||
})
|
||||
|
||||
@@ -69,6 +87,11 @@ Public Class frmAdmin_Globix
|
||||
Else
|
||||
TextEditChangedWho_ManIndex.EditValue = My.Application.User.UserName
|
||||
End If
|
||||
Dim oDragDropManager As New ClassDragDrop(My.LogConfig)
|
||||
oDragDropManager.AddGridView(viewAssignedGroups)
|
||||
oDragDropManager.AddGridView(viewAvailableGroups)
|
||||
oDragDropManager.AddGridView(viewAssignedUsers)
|
||||
oDragDropManager.AddGridView(viewAvailableUsers)
|
||||
Catch ex As Exception
|
||||
ShowErrorMessage(ex)
|
||||
End Try
|
||||
@@ -95,9 +118,6 @@ Public Class frmAdmin_Globix
|
||||
RibbonPageGroup1.Text = e.Page.Name
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub ResetMessages()
|
||||
labelStatus.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
End Sub
|
||||
@@ -146,7 +166,10 @@ Public Class frmAdmin_Globix
|
||||
Case XtraTabPageAutoIndexe.Name
|
||||
Save_AutoIndexe(oPage)
|
||||
Load_Attribute_Auto()
|
||||
|
||||
Case XtraTabPageAutoSelect.Name
|
||||
Save_AutoSelect(oPage)
|
||||
Case XtraTabPageDynamicFolder.Name
|
||||
Update_Doctype()
|
||||
End Select
|
||||
|
||||
oPage.IsInsert = False
|
||||
@@ -193,7 +216,23 @@ Public Class frmAdmin_Globix
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function Save_AutoSelect(oPage As ClassDetailPages.DetailPage) As Boolean
|
||||
Try
|
||||
TBGI_REGEX_DOCTYPEBindingSource.EndEdit()
|
||||
If GlobixDataset.TBGI_REGEX_DOCTYPE.GetChanges() IsNot Nothing Then
|
||||
If Pages.Current.IsInsert Then
|
||||
AddedWhoAutoSelect.Text = My.Application.User.UserName
|
||||
Else
|
||||
ChangedWhoAutoSelect.Text = My.Application.User.UserName
|
||||
End If
|
||||
TBGI_REGEX_DOCTYPEBindingSource.EndEdit()
|
||||
TBGI_REGEX_DOCTYPETableAdapter.Update(Pages.Current.DataTable)
|
||||
End If
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Private Function Insert_Doctype() As Boolean
|
||||
Try
|
||||
Dim oIns = $"INSERT INTO [TBDD_DOKUMENTART] ([BEZEICHNUNG] ,[OBJEKTTYP] ,[EINGANGSART_ID] ,[KURZNAME] ,[ZIEL_PFAD] ,[BESCHREIBUNG]
|
||||
@@ -223,7 +262,7 @@ Public Class frmAdmin_Globix
|
||||
Try
|
||||
Dim oUpd = $"UPDATE TBDD_DOKUMENTART SET [BEZEICHNUNG] = '{TextEditBezeichnung.Text}' ,[KURZNAME] = '{TextEditKurzname.Text}' ,[BESCHREIBUNG] = '{TextEditBeschreibung.Text}'
|
||||
,[DUPLICATE_HANDLING] = '{ComboBoxEditDupl_handling.EditValue}',[AKTIV] = '{AKTIVCheckBox.Checked}',[SEQUENCE] = {SEQUENCENumericUpDown.Value}
|
||||
,[NAMENKONVENTION] = '{TextEditNamenkonvention.Text}',[GEANDERTWER] = '{My.Application.User.UserName}',IDB_OBJECT_STORE_ID = {IDB_OBJECT_STORE_IDComboBox.SelectedValue} WHERE GUID = {TextEditDoctypeID.Text}"
|
||||
,[NAMENKONVENTION] = '{TextEditNamenkonvention.Text}', [FOLDER_FOR_INDEX] = '{FOLDER_FOR_INDEXTextEdit.Text}',[GEANDERTWER] = '{My.Application.User.UserName}',IDB_OBJECT_STORE_ID = {IDB_OBJECT_STORE_IDComboBox.SelectedValue} WHERE GUID = {TextEditDoctypeID.Text}"
|
||||
|
||||
Return My.DatabaseECM.ExecuteNonQuery(oUpd)
|
||||
|
||||
@@ -249,6 +288,8 @@ Public Class frmAdmin_Globix
|
||||
Select Case oPage.TabPage.Name
|
||||
Case XtraTabPageAutoIndexe.Name
|
||||
oPage.DataTable.Columns.Item("DOCTYPE_ID").DefaultValue = PrimaryKey
|
||||
Case XtraTabPageAutoSelect.Name
|
||||
oPage.DataTable.Columns.Item("DOCTYPE_ID").DefaultValue = PrimaryKey
|
||||
Case Else
|
||||
oPage.DataTable.Columns.Item("DOK_ID").DefaultValue = PrimaryKey
|
||||
End Select
|
||||
@@ -262,6 +303,8 @@ Public Class frmAdmin_Globix
|
||||
TextEditAddedWho_ManIndex.Text = My.Application.User.UserName
|
||||
Case XtraTabPageAutoIndexe.Name
|
||||
ADDED_WHOTextBoxAutoAttribut.Text = My.Application.User.UserName
|
||||
Case XtraTabPageAutoSelect.Name
|
||||
|
||||
End Select
|
||||
|
||||
Dim oNewRecord As DataRowView = oPage.BindingSource.AddNew()
|
||||
@@ -302,19 +345,41 @@ Public Class frmAdmin_Globix
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Private Sub Load_AutoSelect()
|
||||
Try
|
||||
Me.TBGI_REGEX_DOCTYPETableAdapter.Fill(Me.GlobixDataset.TBGI_REGEX_DOCTYPE, TextEditDoctypeID.Text)
|
||||
Catch ex As System.Exception
|
||||
System.Windows.Forms.MessageBox.Show(ex.Message)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Private Sub XtraTabControl2_SelectedPageChanged(sender As Object, e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles XtraTabControl2.SelectedPageChanged
|
||||
Dim oPage = Pages.GetDetailPage(e.Page)
|
||||
|
||||
If oPage IsNot Nothing Then
|
||||
Pages.Current = oPage
|
||||
Select Case oPage.TabPage.Name
|
||||
Case XtraTabPageAutoIndexe.Name
|
||||
Load_Attribute_Auto()
|
||||
Case XtraTabPageManIndexe.Name
|
||||
Load_INDEXMAN()
|
||||
Case XtraTabPageAutoSelect.Name
|
||||
Load_AutoSelect()
|
||||
Case XtraTabPageDynamicFolder.Name
|
||||
cmbAllAttributes.Items.Clear()
|
||||
For Each oRowMan As DataRow In Me.GlobixDataset.TBDD_INDEX_MAN.Rows
|
||||
cmbAllAttributes.Items.Add(oRowMan.Item("WD_INDEX") & "#M")
|
||||
Next
|
||||
For Each oRowMan As DataRow In Me.GlobixDataset.TBDD_INDEX_AUTOM.Rows
|
||||
cmbAllAttributes.Items.Add(oRowMan.Item("INDEXNAME") & "#A")
|
||||
Next
|
||||
End Select
|
||||
'Else
|
||||
' If XtraTabControl2.SelectedTabPageIndex = 3 Then
|
||||
' sd
|
||||
' End If
|
||||
End If
|
||||
Select Case oPage.TabPage.Name
|
||||
Case XtraTabPageAutoIndexe.Name
|
||||
Load_Attribute_Auto()
|
||||
Case XtraTabPageManIndexe.Name
|
||||
Load_INDEXMAN()
|
||||
End Select
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -324,7 +389,7 @@ Public Class frmAdmin_Globix
|
||||
Dim oForm As New frmSQLDesigner() With {
|
||||
.SQLCommand = oSQLbefore, .DesignType = "GI_ATTRIBUTE_AUTO",
|
||||
.ConnectionID = CONNECTION_IDTextBox1.Text,
|
||||
.AutoAttributID = GUID_AUTOATTRIBUTETextBox.Text
|
||||
.AutoAttributID = GUIDTextBoxAutoAttribute.Text
|
||||
}
|
||||
Dim oResult = oForm.ShowDialog()
|
||||
If oSQLbefore <> oForm.SQLCommand Then
|
||||
@@ -337,4 +402,208 @@ Public Class frmAdmin_Globix
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub XtraTabControl1_SelectedPageChanged(sender As Object, e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles XtraTabControl1.SelectedPageChanged
|
||||
Select Case XtraTabControl1.SelectedTabPageIndex
|
||||
Case 1
|
||||
gridAssignedGroups.DataSource = ClassGIDatatables.GetAssignedGroups(TextEditDoctypeID.Text)
|
||||
gridAvailableGroups.DataSource = ClassGIDatatables.GetAvailableGroups(TextEditDoctypeID.Text)
|
||||
gridAssignedUsers.DataSource = ClassGIDatatables.GetAssignedUsers(TextEditDoctypeID.Text)
|
||||
gridAvailableUsers.DataSource = ClassGIDatatables.GetAvailableUsers(TextEditDoctypeID.Text)
|
||||
End Select
|
||||
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 As Integer = TextEditDoctypeID.Text
|
||||
|
||||
ClassGIDatatables.AddUserToProfile(userId, profileId)
|
||||
gridAssignedUsers.DataSource = ClassGIDatatables.GetAssignedUsers(profileId)
|
||||
gridAvailableUsers.DataSource = ClassGIDatatables.GetAvailableUsers(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 As Integer = TextEditDoctypeID.Text
|
||||
|
||||
ClassGIDatatables.RemoveUserFromProfile(userId, profileId)
|
||||
gridAssignedUsers.DataSource = ClassGIDatatables.GetAssignedUsers(profileId)
|
||||
gridAvailableUsers.DataSource = ClassGIDatatables.GetAvailableUsers(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 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 As Integer = TextEditDoctypeID.Text
|
||||
|
||||
ClassGIDatatables.AddGroupToProfile(groupId, profileId)
|
||||
gridAssignedGroups.DataSource = ClassGIDatatables.GetAssignedGroups(profileId)
|
||||
gridAvailableGroups.DataSource = ClassGIDatatables.GetAvailableGroups(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 As Integer = TextEditDoctypeID.Text
|
||||
|
||||
ClassGIDatatables.RemoveGroupFromProfile(groupId, profileId)
|
||||
gridAssignedGroups.DataSource = ClassGIDatatables.GetAssignedGroups(profileId)
|
||||
gridAvailableGroups.DataSource = ClassGIDatatables.GetAvailableGroups(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 SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
|
||||
If Not ComboBoxEditAAttrFileParam.SelectedItem Is Nothing Then
|
||||
If GUIDTextBoxAutoAttribute.Text <> "" Then
|
||||
Dim value As String
|
||||
|
||||
Select Case ComboBoxEditAAttrFileParam.SelectedIndex
|
||||
Case 0 : value = "$filename_ext"
|
||||
Case 1 : value = "$filename"
|
||||
Case 2 : value = "$extension"
|
||||
Case 3 : value = "$FileCreateDate"
|
||||
Case 4 : value = "$FileCreatedWho"
|
||||
Case 5 : value = "$DateDDMMYYY"
|
||||
Case 6 : value = "$Username"
|
||||
Case 7 : value = "$Usercode"
|
||||
End Select
|
||||
|
||||
If value <> "" Then
|
||||
VALUETextBox.Text = value
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SimpleButton3_Click(sender As Object, e As EventArgs) Handles SimpleButton3.Click
|
||||
Dim str As String
|
||||
If (FOLDER_FOR_INDEXTextEdit.Text = "") = False Then
|
||||
str = FOLDER_FOR_INDEXTextEdit.Text & "\"
|
||||
End If
|
||||
If cmbAllAttributes.SelectedIndex <> -1 Then
|
||||
|
||||
Dim oPattern As String
|
||||
If cmbAllAttributes.Text.EndsWith("#M") Then
|
||||
oPattern = clsPatterns.WrapPatternValue(clsPatterns.PATTERN_ATTR_MAN, cmbAllAttributes.Text)
|
||||
Else
|
||||
oPattern = clsPatterns.WrapPatternValue(clsPatterns.PATTERN_ATTR_AUTO, cmbAllAttributes.Text)
|
||||
End If
|
||||
Me.FOLDER_FOR_INDEXTextEdit.Text = str & oPattern
|
||||
cmbAllAttributes.SelectedIndex = -1
|
||||
ElseIf cmbCrFolderDate.SelectedIndex <> -1 Then
|
||||
Dim oPattern As String = clsPatterns.WrapPatternValue(clsPatterns.PATTERN_INT, cmbCrFolderDate.Text)
|
||||
Me.FOLDER_FOR_INDEXTextEdit.Text = str & oPattern
|
||||
cmbCrFolderDate.SelectedIndex = -1
|
||||
ElseIf txtcrFoldermanuell.Text <> "" Then
|
||||
Me.FOLDER_FOR_INDEXTextEdit.Text = str & txtcrFoldermanuell.Text
|
||||
txtcrFoldermanuell.Text = ""
|
||||
End If
|
||||
Dim oPage = Pages.Current
|
||||
Save_AutoIndexe(oPage)
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub SimpleButton4_Click(sender As Object, e As EventArgs) Handles SimpleButton4.Click
|
||||
Try
|
||||
If Regex.IsMatch(REGEXTextBox.Text, txtDateinameTest.Text) Then
|
||||
MsgBox("The RegEx resulted in a proper match!", MsgBoxStyle.Information, "Perfect:")
|
||||
Else
|
||||
MsgBox("No Match- There might be an error in the RegEx!", MsgBoxStyle.Information, "Something wrong:")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in Testing Regex: ")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemDelete.ItemClick
|
||||
ResetMessages()
|
||||
|
||||
Dim result As MsgBoxResult
|
||||
|
||||
|
||||
Try
|
||||
Dim oPage = Pages.Current
|
||||
|
||||
Select Case oPage.TabPage.Name
|
||||
Case XtraTabPageProfile.Name
|
||||
If My.Application.User.Language = "de-DE" Then
|
||||
result = MessageBox.Show("Sind Sie sicher dass Sie das ausgewählte Profil löschen wollen?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
Else
|
||||
result = MessageBox.Show("Are you sure you want to delete the selected profile?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
End If
|
||||
|
||||
If result = MsgBoxResult.Yes Then
|
||||
Dim oSQL = $"EXEC PRDD_GLOBIX_DELETE_DOCTYPE {TextEditDoctypeID.Text}"
|
||||
If My.DatabaseECM.ExecuteNonQuery(oSQL) Then
|
||||
TBDD_DOKUMENTARTTableAdapter.Fill(Me.GlobixDataset.TBDD_DOKUMENTART, PrimaryKey)
|
||||
Load_TabData()
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Case XtraTabPageManIndexe.Name
|
||||
If My.Application.User.Language = "de-DE" Then
|
||||
result = MessageBox.Show("Sind Sie sicher dass Sie das ausgewählte manuelle Attribut löschen wollen?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
Else
|
||||
result = MessageBox.Show("Are you sure you want to delete this manual attribute?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
End If
|
||||
|
||||
If result = MsgBoxResult.Yes Then
|
||||
TBDD_INDEX_MANTableAdapter.Delete(GUIDTextBoxMANINDEX.Text)
|
||||
Load_INDEXMAN()
|
||||
End If
|
||||
|
||||
Case XtraTabPageAutoIndexe.Name
|
||||
If My.Application.User.Language = "de-DE" Then
|
||||
result = MessageBox.Show("Sind Sie sicher dass Sie das ausgewählte automatische Attribut löschen wollen?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
Else
|
||||
result = MessageBox.Show("Are you sure you want to delete the selected auto attribute?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
End If
|
||||
If result = MsgBoxResult.Yes Then
|
||||
TBDD_INDEX_AUTOMTableAdapter.Delete(GUIDTextBoxAutoAttribute.Text)
|
||||
Load_Attribute_Auto()
|
||||
End If
|
||||
|
||||
Case XtraTabPageAutoSelect.Name
|
||||
If My.Application.User.Language = "de-DE" Then
|
||||
result = MessageBox.Show("Sind Sie sicher dass Sie die ausgewählte Regex löschen wollen?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
Else
|
||||
result = MessageBox.Show("Are you sure you want to delete the selected regex?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
End If
|
||||
If result = MsgBoxResult.Yes Then
|
||||
TBGI_REGEX_DOCTYPETableAdapter.Delete(GUIDTextBoxAutoSelect.Text)
|
||||
Load_AutoSelect()
|
||||
End If
|
||||
|
||||
End Select
|
||||
|
||||
oPage.IsInsert = False
|
||||
|
||||
ShowStatus($"{oPage.Name} deleted!")
|
||||
Catch ex As Exception
|
||||
ShowErrorMessage(ex)
|
||||
End Try
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user