Files
RecordOrganizer/app/DD-Record-Organiser/frmUserKonfig.vb
SchreiberM f85b19b83f MS_1603
2016-03-16 10:15:51 +01:00

451 lines
20 KiB
VB.net

Public Class frmUserKonfig
Private Shared _Instance As frmUserKonfig = Nothing
Public Shared Function Instance() As frmUserKonfig
If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then
_Instance = New frmUserKonfig
End If
_Instance.BringToFront()
Return _Instance
End Function
Private Sub TBDD_USERBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles TBDD_USERBindingNavigatorSaveItem.Click
Save_User()
End Sub
Private Sub frmUserKonfig_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle "DD_DMSDataSet.TBDD_CLIENT". Sie können sie bei Bedarf verschieben oder entfernen.
Load_User()
Load_Clients()
End Sub
Sub Load_User()
Try
Me.TBDD_USERTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBDD_USERTableAdapter.Fill(Me.DD_DMSDataSet.TBDD_USER)
Me.TBDD_USER_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBDD_USER_GROUPSTableAdapter.Fill(Me.DD_DMSDataSet.TBDD_USER_GROUPS)
Dim sql = "select GUID, CLIENT_NAME FROM TBDD_CLIENT order by Client_Name"
Dim DT_CLIENT As DataTable = ClassDatabase.Return_Datatable(sql)
Catch ex As Exception
MsgBox("Error in frmUserKonfig_Load:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub Load_Clients()
Try
Me.TBDD_CLIENTTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBDD_CLIENTTableAdapter.Fill(Me.DD_DMSDataSet.TBDD_CLIENT)
Catch ex As Exception
MsgBox("Error in Load Clients:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub Save_Clients()
Try
Me.TBDD_CLIENTBindingSource.EndEdit()
If DD_DMSDataSet.TBDD_CLIENT.GetChanges Is Nothing = False Then
Me.CHANGED_WHOTextBox2.Text = Environment.UserName
Me.TBDD_CLIENTBindingSource.EndEdit()
Me.TBDD_CLIENTTableAdapter.Update(Me.DD_DMSDataSet.TBDD_CLIENT)
Label7.Visible = True
Else
Label7.Visible = False
End If
Catch ex As Exception
MsgBox("Error in Save Clients:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub Save_User()
Try
Me.TBDD_USERBindingSource.EndEdit()
If DD_DMSDataSet.TBDD_USER.GetChanges Is Nothing = False Then
Me.CHANGED_WHOTextBox.Text = Environment.UserName
Me.TBDD_USERBindingSource.EndEdit()
Me.TBDD_USERTableAdapter.Update(Me.DD_DMSDataSet.TBDD_USER)
lblsave.Visible = True
Else
lblsave.Visible = False
End If
Catch ex As Exception
MsgBox("Error in Save USer:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub TBDD_USERBindingSource_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBDD_USERBindingSource.AddingNew
DD_DMSDataSet.TBDD_USER.ADDED_WHOColumn.DefaultValue = Environment.UserName
End Sub
Private Sub tsAddUser_Click(sender As Object, e As EventArgs) Handles tsAddUser.Click
Dim frm As New frmUserKonfig_AddUsers
Cursor = Cursors.WaitCursor
frm.ShowDialog()
Load_User()
Cursor = Cursors.Default
End Sub
Private Sub tbRefreshUsers_Click(sender As Object, e As EventArgs) Handles tbRefreshUsers.Click
Load_User()
End Sub
Private Sub btnAddUserToGroup_Click(sender As Object, e As EventArgs) Handles btnAddUserToGroup.Click
Try
Dim user As DataRowView = GetSelectedUserObject()
Dim group As DataRowView = GetSelectedGroupObject()
Dim userID As Integer = user.Item(0)
Dim userName As String = user.Item(3)
Dim groupID As Integer = group.Item(0)
Dim groupName As String = group.Item(1)
Dim SQL = String.Format("SELECT GUID FROM TBDD_GROUPS_USER WHERE USER_ID = {0} AND GROUP_ID = {1}", userID, groupID)
Dim userInGroup = ClassDatabase.Execute_Scalar(SQL)
If Not IsNothing(userInGroup) Then
MsgBox(String.Format("Der Benutzer {0} ist bereits Mitglied der Gruppe {1}", userName, groupName), MsgBoxStyle.Exclamation)
Exit Sub
Else
SQL = String.Format("INSERT INTO TBDD_GROUPS_USER (USER_ID, GROUP_ID, ADDED_WHO) VALUES ({0}, {1}, '{2}')", userID, groupID, Environment.UserName)
If ClassDatabase.Execute_non_Query(SQL) = True Then
LoadGroupsForSelectedUser()
Else
MsgBox(String.Format("Fehler beim Hinzufügen des Benutzers {0} zur Gruppe {1}", userName, groupName))
End If
End If
Catch ex As Exception
MsgBox("Error in btnAddUserToGroup_Click:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Function GetSelectedUserObject() As DataRowView
Dim user As DataRowView = lbUsers.SelectedItem
Return user
End Function
Private Function GetSelectedGroupObject() As DataRowView
Dim group As DataRowView = cmbGroup.SelectedItem
Return group
End Function
Private Function GetSelectedGroupObjectFromList() As String
Return lbGroups.SelectedItem
End Function
Private Sub LoadGroupsForSelectedUser()
Dim userID As Integer
Try
userID = USER_GUIDTextBox.Text
Catch ex As Exception
Exit Sub
End Try
Dim SQL As String = String.Format("SELECT GROUP_NAME FROM VWPMO_USERS_GROUPS WHERE USER_ID = {0}", userID)
Try
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
lbGroups.Items.Clear()
For Each row As DataRow In dt.Rows
lbGroups.Items.Add(row.Item(0).ToString)
Next
Catch ex As Exception
MsgBox("Error in LoadGroupsForSelectedUser:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub GetMandantForSelectedUser()
Dim userID As Integer
Try
userID = USER_GUIDTextBox.Text
Catch ex As Exception
Exit Sub
End Try
Dim SQL As String = String.Format("SELECT T.GUID, T1.CLIENT_NAME FROM TBDD_CLIENT_USER T, TBDD_CLIENT T1 WHERE T.CLIENT_ID = T1.GUID AND T.USER_ID = {0} ORDEr BY T1.CLIENT_NAME", userID)
Try
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
lstbxUserMandant.Items.Clear()
For Each row As DataRow In dt.Rows
lstbxUserMandant.Items.Add(row.Item(1).ToString)
Next
Catch ex As Exception
MsgBox("Error in GetMandantForSelectedUser:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub TBDD_USERBindingSource_PositionChanged(sender As Object, e As EventArgs) Handles TBDD_USERBindingSource.PositionChanged
LoadGroupsForSelectedUser()
GetMandantForSelectedUser()
End Sub
Private Sub btnRemoveUserFromGroup_Click(sender As Object, e As EventArgs) Handles btnRemoveUserFromGroup.Click
Try
Dim user As DataRowView = GetSelectedUserObject()
Dim userID As Integer = user.Item(0)
Dim userName As String = user.Item(3)
Dim group As String = GetSelectedGroupObjectFromList()
' Gruppen ID über Name auslesen
Dim SQL = String.Format("SELECT GUID FROM TBDD_USER_GROUPS WHERE NAME = '{0}'", group)
Dim groupID As Integer = ClassDatabase.Execute_Scalar(SQL)
' Keine Gruppe ausgewählt
If IsNothing(group) Then
MsgBox("Bitte wählen Sie eine Gruppe aus.", MsgBoxStyle.Exclamation)
Exit Sub
End If
SQL = String.Format("DELETE FROM TBDD_GROUPS_USER WHERE USER_ID = {0} AND GROUP_ID = {1}", userID, groupID)
If ClassDatabase.Execute_non_Query(SQL) = True Then
LoadGroupsForSelectedUser()
Else
Throw New Exception(String.Format("Fehler beim Löschen der Gruppe {0} für Benutzer {1}", group, userName))
End If
Catch ex As Exception
MsgBox("Error in btnRemoveUserFromGroup_Click:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub TBDD_USER_GROUPSBindingSource_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBDD_USER_GROUPSBindingSource.AddingNew
Me.DD_DMSDataSet.TBDD_USER_GROUPS.ADDED_WHOColumn.DefaultValue = Environment.UserName
End Sub
Private Sub ToolStripButton7_Click(sender As Object, e As EventArgs) Handles ToolStripButton7.Click
Save_Groups()
End Sub
Sub Save_Groups()
Try
Me.TBDD_USER_GROUPSBindingSource.EndEdit()
If DD_DMSDataSet.TBDD_USER_GROUPS.GetChanges Is Nothing = False Then
Me.CHANGED_WHOTextBox1.Text = Environment.UserName
Me.TBDD_USER_GROUPSBindingSource.EndEdit()
Me.TBDD_USER_GROUPSTableAdapter.Update(Me.DD_DMSDataSet.TBDD_USER_GROUPS)
MsgBox("Changes saved successfully.", MsgBoxStyle.Information)
End If
Catch ex As Exception
MsgBox("Error in Save Groups:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub ToolStripButton8_Click(sender As Object, e As EventArgs) Handles ToolStripButton8.Click
Load_Groups()
End Sub
Sub Load_Groups()
Try
Me.TBDD_USER_GROUPSTableAdapter.Fill(Me.DD_DMSDataSet.TBDD_USER_GROUPS)
Catch ex As Exception
MsgBox("Error in Load_Groups:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub XtraTabControl1_SelectedPageChanged(sender As Object, e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles XtraTabControl1.SelectedPageChanged
Select Case XtraTabControl1.SelectedTabPageIndex
Case 0
Load_Groups()
LoadGroupsForSelectedUser()
Case 1
End Select
End Sub
Private Sub LANGUAGEComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LANGUAGEComboBox.SelectedIndexChanged
End Sub
Private Sub frmUserKonfig_Shown(sender As Object, e As EventArgs) Handles Me.Shown
GetMandantForSelectedUser()
End Sub
Public Class MyListBoxItem
Private _text As String
Private _extraData As String
Public Property Text As String
Get
Return _text
End Get
Set(ByVal value As String)
_text = value
End Set
End Property
Public Property ExtraData As String
Get
Return _extraData
End Get
Set(ByVal value As String)
_extraData = value
End Set
End Property
Public Overrides Function ToString() As String
Return Text
End Function
End Class
Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
Select Case TabControl1.SelectedIndex
Case 0
Load_Groups()
LoadGroupsForSelectedUser()
Case 1
Load_Groups()
clbUsersGroups.Items.Clear()
Dim sql = String.Format("SELECT DISTINCT T.GUID, T.USERNAME FROM TBDD_USER T where T.GUID in (SELECT DISTINCT USER_ID FROM TBDD_CLIENT_USER WHERE CLIENT_ID IN ({0})) ORDER BY T.USERNAME", USER_CLIENTS_COMMA_SEPERATED)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
For Each userrow As DataRow In DT.Rows
clbUsersGroups.Items.Add(New MyListBoxItem() With {.Text = userrow.Item(1), .ExtraData = userrow.Item(0)})
Next
Try
cmbGroups_Group2User.SelectedIndex = 1
Catch ex As Exception
End Try
cmbGroups_Group2User.SelectedIndex = 0
End Select
End Sub
Private Sub btnaddSelectedUser2Group_Click(sender As Object, e As EventArgs) Handles btnaddSelectedUser2Group.Click
For Each obj As Object In clbUsersGroups.CheckedItems
Dim item As MyListBoxItem = CType(obj, MyListBoxItem)
Dim sql = "select count(*) from TBDD_GROUPS_USER Where user_id = " & item.ExtraData & " AND GROUP_ID = " & cmbGroups_Group2User.SelectedValue
If ClassDatabase.Execute_Scalar(sql) = 0 Then
sql = String.Format("INSERT INTO TBDD_GROUPS_USER (USER_ID, GROUP_ID, ADDED_WHO) VALUES ({0}, {1}, '{2}')", item.ExtraData, cmbGroups_Group2User.SelectedValue, Environment.UserName)
If ClassDatabase.Execute_non_Query(sql) = False Then
MsgBox(String.Format("Error in Adding User {0} to Group {1}", item.Text, cmbGroups_Group2User.Text), MsgBoxStyle.Critical)
End If
End If
Next
LoadUserForGroups()
End Sub
Private Sub LoadUserForGroups()
Dim groupid
Try
groupid = cmbGroups_Group2User.SelectedValue
Catch ex As Exception
Exit Sub
End Try
If groupid Is Nothing Then Exit Sub
If Not cmbGroups_Group2User.SelectedValue Is Nothing Then
Dim SQL As String = String.Format("SELECT T1.GUID, T.USERNAME FROM TBDD_USER T, TBDD_GROUPS_USER T1 WHERE T1.USER_ID = T.GUID AND T1.GROUP_ID = {0} ORDER BY T.USERNAME", cmbGroups_Group2User.SelectedValue)
lblUserforGroup.Text = "User for Group " & cmbGroups_Group2User.Text
Try
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
chklbxUserForGroup.Items.Clear()
For Each row As DataRow In dt.Rows
chklbxUserForGroup.Items.Add(New MyListBoxItem() With {.Text = row.Item(1), .ExtraData = row.Item(0)})
Next
Catch ex As Exception
MsgBox("Error in LoadUserForGroups:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End If
End Sub
Private Sub cmbGroups_Group2User_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbGroups_Group2User.SelectedIndexChanged
LoadUserForGroups()
End Sub
Private Sub btndeleteUserfromGroup_Click(sender As Object, e As EventArgs) Handles btndeleteUserfromGroup.Click
For Each obj As Object In chklbxUserForGroup.CheckedItems
Dim item As MyListBoxItem = CType(obj, MyListBoxItem)
Dim sql
sql = String.Format("DELETE FROM TBDD_GROUPS_USER WHERE GUID = {0}", item.ExtraData)
If ClassDatabase.Execute_non_Query(sql, True) = False Then
MsgBox(String.Format("Error in deleting User {0} from Group", item.Text), MsgBoxStyle.Critical)
End If
Next
LoadUserForGroups()
End Sub
Private Sub ToolStripButton16_Click(sender As Object, e As EventArgs) Handles ToolStripButton24.Click
Load_Clients()
End Sub
Private Sub ToolStripButton15_Click(sender As Object, e As EventArgs) Handles ToolStripButton23.Click
Save_Clients()
End Sub
Private Sub TBDD_CLIENTBindingSource_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBDD_CLIENTBindingSource.AddingNew
DD_DMSDataSet.TBDD_CLIENT.ADDED_WHOColumn.DefaultValue = Environment.UserName
End Sub
Private Sub TabControl3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl3.SelectedIndexChanged
Select Case TabControl3.SelectedIndex
Case 1
Try
chklbxUserClient.Items.Clear()
Dim sql = String.Format("SELECT T.GUID, T.USERNAME FROM TBDD_USER T where T.GUID in (SELECT DISTINCT USER_ID FROM TBDD_CLIENT_USER WHERE CLIENT_ID IN ({0})) ORDER BY T.USERNAME", USER_CLIENTS_COMMA_SEPERATED)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
For Each userrow As DataRow In DT.Rows
chklbxUserClient.Items.Add(New MyListBoxItem() With {.Text = userrow.Item(1), .ExtraData = userrow.Item(0)})
Next
Catch ex As Exception
MsgBox("Error in LoadUserForClients:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
Try
cmbClientsforUser.SelectedIndex = 1
Catch ex As Exception
End Try
cmbClientsforUser.SelectedIndex = 0
End Select
End Sub
Private Sub btnsaddUser2Client_Click(sender As Object, e As EventArgs) Handles btnsaddUser2Client.Click
For Each obj As Object In chklbxUserClient.CheckedItems
Dim item As MyListBoxItem = CType(obj, MyListBoxItem)
Dim sql = "select count(*) from TBDD_CLIENT_USER Where user_id = " & item.ExtraData & " AND CLIENT_ID = " & cmbClientsforUser.SelectedValue
If ClassDatabase.Execute_Scalar(sql) = 0 Then
sql = String.Format("INSERT INTO TBDD_CLIENT_USER (USER_ID, CLIENT_ID, ADDED_WHO) VALUES ({0}, {1}, '{2}')", item.ExtraData, cmbClientsforUser.SelectedValue, Environment.UserName)
If ClassDatabase.Execute_non_Query(sql) = False Then
MsgBox(String.Format("Error in Adding User {0} to Client {1}", item.Text, cmbGroups_Group2User.Text), MsgBoxStyle.Critical)
End If
End If
Next
LoadUserForClient()
End Sub
Private Sub LoadUserForClient()
Dim clientid
Try
clientid = cmbClientsforUser.SelectedValue
Catch ex As Exception
Exit Sub
End Try
If clientid Is Nothing Then Exit Sub
If Not cmbClientsforUser.SelectedValue Is Nothing Then
lblUser2Client.Text = "User for Client " & cmbClientsforUser.Text
Dim SQL As String = String.Format("SELECT T1.GUID, T.USERNAME FROM TBDD_USER T, TBDD_CLIENT_USER T1 WHERE T1.USER_ID = T.GUID AND T1.CLIENT_ID = {0} ORDER BY T.USERNAME", cmbClientsforUser.SelectedValue)
Try
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
chklbxUsersforClient.Items.Clear()
For Each row As DataRow In dt.Rows
chklbxUsersforClient.Items.Add(New MyListBoxItem() With {.Text = row.Item(1), .ExtraData = row.Item(0)})
Next
Catch ex As Exception
MsgBox("Error in LoadUserForClient:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End If
End Sub
Private Sub cmbClientsforUser_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbClientsforUser.SelectedIndexChanged
LoadUserForClient()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btndeleteUserfromClient.Click
For Each obj As Object In chklbxUsersforClient.CheckedItems
Dim item As MyListBoxItem = CType(obj, MyListBoxItem)
Dim sql
sql = String.Format("DELETE FROM TBDD_CLIENT_USER WHERE GUID = {0}", item.ExtraData)
If ClassDatabase.Execute_non_Query(sql, True) = False Then
MsgBox(String.Format("Error in deleting User {0} from Client", item.Text), MsgBoxStyle.Critical)
End If
Next
LoadUserForClient()
End Sub
End Class