MS11.01(2)

This commit is contained in:
SchreiberM
2017-01-12 11:47:43 +01:00
parent 03ae19ae3e
commit 2af5a0bc0d
18 changed files with 59308 additions and 1606 deletions

View File

@@ -25,6 +25,7 @@ Public Class frmConstructor_Main
Private Const SEE_MASK_FLAG_NO_UI = &H400
Public Const SW_SHOW As Short = 5
Private PARENT_SKIPPED As Boolean = False
<DllImport("Shell32", CharSet:=CharSet.Auto, SetLastError:=True)> _
Public Shared Function ShellExecuteEx(ByRef lpExecInfo As SHELLEXECUTEINFO) As Boolean
End Function
@@ -121,12 +122,14 @@ Public Class frmConstructor_Main
Private RIGHT_EDIT_R As Boolean = True
Private RIGHT_ADD_R As Boolean = True
Private RIGHT_DELETE_R As Boolean = False
Private RIGHT_ONLY_READ_DOC As Boolean = True
Private RIGHT_ADD_DOC As Boolean = True
Private RIGHT_VIEW_DOC As Boolean = True
Private RIGHT_DELETE_DOC As Boolean = False
Private RIGHT_ONLY_READ As Boolean = False
Private RIGHT_WINDREAM_FORBIDDEN As Boolean = False
Private RIGHT_ONLY_READ_RECORD As Boolean = False
Private RIGHT_ONLY_READ_DOCS As Boolean = False
Private windream_Docshow As Boolean = False
Private WD_Suche As String
@@ -153,6 +156,8 @@ Public Class frmConstructor_Main
Private DT_RESULTLIST_OPTIONS As DataTable
Private DT_RESULTLIST_VARIABLE_VALUE As DataTable
Private DT_WORKFLOWS_MANUAL As DataTable
Private DT_RIGHTS_USER As DataTable
Private DT_RIGHTS_GROUP As DataTable
Private _MANUAL_WORKFLOW As Boolean = False
@@ -170,8 +175,6 @@ Public Class frmConstructor_Main
Private LOAD_ENTITY_SEARCH_AT_STARTUP As Boolean = False
Private RECORD_ID As Integer
Private PARENT_ENTITYID As Integer
Private SQL_RIGHT_READ_AND_VIEW_ONLY As String = ""
Private SQL_RIGHT_WINDREAM_FORBIDDEN As String = ""
Private DOC_SEARCH_TAB1 As Boolean = False
Private ACTIVATE_DOC_SEARCH_ON_EDIT As Boolean = False
Private FORM_TYPE As Integer
@@ -498,7 +501,7 @@ Public Class frmConstructor_Main
If NODE_NAVIGATION = False Then
settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition))
Else
settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerFORM.SplitterPosition))
@@ -826,132 +829,167 @@ Public Class frmConstructor_Main
End If
End Sub
Sub Column_Row_Handler(Optional RECID As Integer = 0, Optional _navload As Boolean = False, Optional _refresh As Boolean = False)
Dim sw As New Stopwatch
sw.Start()
Dim elapsed As Double
If RECID = 0 Then
If _FormClosing = True Then 'Or SaveRoutine_Active = True
Exit Sub
End If
'Aussteigen, wenng erade die Entität gewechselt wird
If ENTITY_LOADED = False Then
Exit Sub
End If
If GRIDRightMouse_Clicked Then
Exit Sub
End If
' If NODE_NAVIGATION = False Then
Dim Grid_RecordID = Get_Focused_Row_Cell_Value("Record-ID")
If IsNothing(Grid_RecordID) Then
Console.WriteLine("No Record ID selectable")
Else
If Grid_RecordID = 0 Then
Console.WriteLine("Grid_RecordID = 0")
Try
Dim sw As New Stopwatch
sw.Start()
Dim elapsed As Double
If RECID = 0 Then
If _FormClosing = True Then 'Or SaveRoutine_Active = True
Exit Sub
End If
'Aussteigen, wenng erade die Entität gewechselt wird
If ENTITY_LOADED = False Then
Exit Sub
End If
If GRIDRightMouse_Clicked Then
Exit Sub
End If
' If NODE_NAVIGATION = False Then
Dim Grid_RecordID = Get_Focused_Row_Cell_Value("Record-ID")
If IsNothing(Grid_RecordID) Then
Console.WriteLine("No Record ID selectable")
Else
RECID = Grid_RecordID
If Grid_RecordID = 0 Then
Console.WriteLine("Grid_RecordID = 0")
Else
RECID = Grid_RecordID
End If
End If
'End If
End If
CURRENT_RECORD_ID = RECORD_ID
CURRENT_SEARCH_TYPE = "RECORD"
If RECID = RECORD_ID And ENTITY_RECORD_COUNT > 1 And _refresh = False Then
Exit Sub
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowHandler: RID: " & RECID.ToString & " - " & Now, False)
'Hier jetzt erst das Anzeigen für einen selektierten Datensatz
If GRID_TYPE = GridType.Grid Then
If IsTopFirstRow Then
IsTopFirstRow = False
'grvwGrid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
'grvwGrid.OptionsBehavior.Editable = Not IsTopFirstRow
'grvwGrid.OptionsSelection.EnableAppearanceFocusedCell = Not IsTopFirstRow
'grvwGrid.OptionsSelection.EnableAppearanceFocusedRow = Not IsTopFirstRow
'grvwGrid.OptionsSelection.EnableAppearanceHideSelection = Not IsTopFirstRow
End If
ElseIf GRID_TYPE = GridType.Carousel Then
If IsTopFirstRow Then
IsTopFirstRow = False
grvwCarousel.OptionsBehavior.Editable = Not IsTopFirstRow
End If
ElseIf GRID_TYPE = GridType.Tiles Then
If IsTopFirstRow Then
IsTopFirstRow = False
grvwTiles.OptionsBehavior.Editable = Not IsTopFirstRow
End If
End If
'End If
End If
CURRENT_RECORD_ID = RECORD_ID
CURRENT_SEARCH_TYPE = "RECORD"
If RECID = RECORD_ID And ENTITY_RECORD_COUNT > 1 And _refresh = False Then
Exit Sub
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowHandler: RID: " & RECID.ToString & " - " & Now, False)
'Hier jetzt erst das Anzeigen für einen selektierten Datensatz
If GRID_TYPE = GridType.Grid Then
If IsTopFirstRow Then
IsTopFirstRow = False
'grvwGrid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
'grvwGrid.OptionsBehavior.Editable = Not IsTopFirstRow
'grvwGrid.OptionsSelection.EnableAppearanceFocusedCell = Not IsTopFirstRow
'grvwGrid.OptionsSelection.EnableAppearanceFocusedRow = Not IsTopFirstRow
'grvwGrid.OptionsSelection.EnableAppearanceHideSelection = Not IsTopFirstRow
'Wird jetzt bei BeforeRowChange überprüft
'Check_Record_Changed()
DisableEditMode()
ChangeParentLinktsmi.Enabled = True
elapsed = sw.Elapsed.TotalSeconds
sw.Stop()
sw.Reset()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Precheck Row took " & Format(elapsed, "0.000000000") & " seconds", False)
sw.Start()
' muss vor show selected record data kommen,
' sodass die datasource für die angehakten werte existiert (checked list box)
CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesListWithPlaceholders(ENTITY_ID, RECID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
CtrlBuilder.WatchRecordChanges = True
Show_Selected_Record_Data(RECID, False)
Dim sw1 As New Stopwatch
sw1.Start()
Check_Rights()
elapsed = sw1.Elapsed.TotalSeconds
sw1.Stop()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Check Rights took " & Format(elapsed, "0.000000000") & " seconds", False)
If TCDetails.SelectedTabPage Is Nothing Then
Exit Sub
End If
ElseIf GRID_TYPE = GridType.Carousel Then
If IsTopFirstRow Then
IsTopFirstRow = False
grvwCarousel.OptionsBehavior.Editable = Not IsTopFirstRow
If TabPos.PageVisible = True And TCDetails.SelectedTabPage.Name = "TabPos" Then
Clear_GridPos_View()
Dim POS_GRID_RECORD = Get_Focused_Row_Cell_Value_pos("Record-ID")
Load_Pos_Data()
Load_POSGrid_Layout()
End If
ElseIf GRID_TYPE = GridType.Tiles Then
If IsTopFirstRow Then
IsTopFirstRow = False
grvwTiles.OptionsBehavior.Editable = Not IsTopFirstRow
End If
End If
'Wird jetzt bei BeforeRowChange überprüft
'Check_Record_Changed()
If RECORD_ID > 0 Then
If RIGHT_ONLY_READ_RECORD = False And CtrlCommandUI.IsInsert = False Then
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
tsButtonEdit.Enabled = False
Else
' tsButtonEdit.Enabled = True
End If
DisableEditMode()
ChangeParentLinktsmi.Enabled = True
elapsed = sw.Elapsed.TotalSeconds
sw.Stop()
sw.Reset()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Precheck Row took " & Format(elapsed, "0.000000000") & " seconds", False)
sw.Start()
' muss vor show selected record data kommen,
' sodass die datasource für die angehakten werte existiert (checked list box)
CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesListWithPlaceholders(ENTITY_ID, RECID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
CtrlBuilder.WatchRecordChanges = True
Show_Selected_Record_Data(RECID, False)
Dim sw1 As New Stopwatch
sw1.Start()
Check_Rights()
elapsed = sw1.Elapsed.TotalSeconds
sw1.Stop()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Check Rights took " & Format(elapsed, "0.000000000") & " seconds", False)
If TCDetails.SelectedTabPage Is Nothing Then
Exit Sub
End If
If TabPos.PageVisible = True And TCDetails.SelectedTabPage.Name = "TabPos" Then
Clear_GridPos_View()
Dim POS_GRID_RECORD = Get_Focused_Row_Cell_Value_pos("Record-ID")
Load_Pos_Data()
Load_POSGrid_Layout()
End If
If RECORD_ID > 0 Then
If RIGHT_ONLY_READ = False And CtrlCommandUI.IsInsert = False Then
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
tsButtonEdit.Enabled = False
End If
If NODE_NAVIGATION = False Then
Get_RecordCounts_Nodes()
Else
tsButtonEdit.Enabled = True
tsButtonAdd.Enabled = False
End If
End If
If NODE_NAVIGATION = False Then
Get_RecordCounts_Nodes()
Else
'Liste der geänderten Control Values leeren
CtrlBuilder.ControlsChanged.Clear()
elapsed = sw.Elapsed.TotalSeconds
sw.Stop()
Console.WriteLine("Column_Row_Handler took {0}ms to load", sw.ElapsedMilliseconds)
sw.Reset()
If LogErrorsOnly = False Then ClassLogger.Add(" >>>> Column/Row Change took " & Format(elapsed, "0.000000000") & " seconds", False)
If NODE_NAVIGATION = True And _navload = False Then
SearchNode(TreeViewMain.Nodes, RECORD_ID)
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error:", ex.Message & vbNewLine & ex.StackTrace)
End Try
End Sub
Sub RIGHTS_ON_CONTROLS()
tsButtonSave.Enabled = True
tsButtonAdd.Enabled = True
tsButtonEdit.Enabled = True
tsButtonDelete.Enabled = True
tsmi_RecordDelete.Enabled = True
RecordDeleteToolStripMenuItem.Enabled = True
If DT_RIGHTS_GROUP.Rows.Count > 0 Or DT_RIGHTS_USER.Rows.Count > 0 Then
'DATENSATZ-RECHTE
If RIGHT_ADD_R = False Then
tsButtonAdd.Enabled = False
End If
End If
'Liste der geänderten Control Values leeren
CtrlBuilder.ControlsChanged.Clear()
elapsed = sw.Elapsed.TotalSeconds
sw.Stop()
Console.WriteLine("Column_Row_Handler took {0}ms to load", sw.ElapsedMilliseconds)
sw.Reset()
If LogErrorsOnly = False Then ClassLogger.Add(" >>>> Column/Row Change took " & Format(elapsed, "0.000000000") & " seconds", False)
If NODE_NAVIGATION = True And _navload = False Then
SearchNode(TreeViewMain.Nodes, RECORD_ID)
If RIGHT_EDIT_R = False Then
tslblLocked.Visible = True
tsButtonEdit.Enabled = False
If RIGHT_ADD_R = False Then
tsButtonSave.Enabled = False
End If
End If
If RIGHT_DELETE_R = False Then
tsButtonDelete.Enabled = False
tsmi_RecordDelete.Enabled = False
RecordDeleteToolStripMenuItem.Enabled = False
End If
'DATEI-RECHTE
If RIGHT_ONLY_READ_DOC = True Then
tslblFileslocked.Visible = True
End If
End If
End Sub
Sub Check_Rights()
Try
RIGHT_ONLY_READ = False
RIGHT_WINDREAM_FORBIDDEN = False
RIGHT_ONLY_READ_RECORD = False
RIGHT_ONLY_READ_DOCS = False
tsmi_RecordDelete.Enabled = True
MassenänderungToolStripMenuItem.Enabled = True
docCM_RemoveLink.Enabled = True
docCM_RenameMain.Enabled = True
docCM_linkRecord.Enabled = True
@@ -969,52 +1007,25 @@ Public Class frmConstructor_Main
tsmientitySearch.Enabled = True
docCM_Open.Enabled = True
docCM_InWork.Enabled = True
ChangeParentLinktsmi.Enabled = True
Dim tempsql
If SQL_RIGHT_READ_AND_VIEW_ONLY <> "" Then
Try
tempsql = SQL_RIGHT_READ_AND_VIEW_ONLY
tempsql = tempsql.Replace("@RECORDID", RECORD_ID)
tempsql = tempsql.Replace("@RECORD_ID", RECORD_ID)
tempsql = tempsql.Replace("@USER_ID", USER_GUID)
tempsql = tempsql.Replace("@USER_GUID", USER_GUID)
tempsql = tempsql.Replace("@ENTITY_ID", ENTITY_ID)
tempsql = tempsql.Replace("@USERNAME", USER_USERNAME)
tempsql = tempsql.Replace("@USER_NAME", USER_USERNAME)
''Regulären Ausdruck zum Auslesen der windream-Indexe definieren
'Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
'' einen Regulären Ausdruck laden
'Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
'' die Vorkommen im SQL-String auslesen
'Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(tempsql)
'' alle Vorkommen der windream-Indexe im SQL-String durchlaufen
''#####
'' alle Vorkommen der windream-Indexe im SQL-String durchlaufen
'For Each element As System.Text.RegularExpressions.Match In elemente
' Dim elementohneSZ = element.Value.Replace("[%", "")
' elementohneSZ = elementohneSZ.Replace("]", "")
' ' den Platzhalter für den auszulesenden View durch den Viewnamen ersetzen
' tempsql = tempsql.Replace(element.Value, controlvalue.ToString)
'Next
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> RIGHT_ONLY_READ SQL: (When true then disable) '" & tempsql & "'", False)
RIGHT_ONLY_READ = CBool(ClassDatabase.Execute_Scalar(tempsql))
Catch ex As Exception
RIGHT_ONLY_READ = False
End Try
If RIGHT_ONLY_READ = True Then
' Hinzufügen sollte auch bei RIGHT_ONLY_READ verfügbar sein
RIGHTS_ON_CONTROLS()
If SQL_RECORD_READ_ONLY <> "" Then
Try
RIGHT_ONLY_READ_RECORD = ClassHelper.Check_Record_Read_only(RECORD_ID, ENTITY_ID)
If RIGHT_ONLY_READ_RECORD = True Then
' Hinzufügen sollte auch bei RIGHT_ONLY_READ_RECORD verfügbar sein
tsButtonAdd.Enabled = True
tsButtonEdit.Enabled = False
tsButtonSave.Enabled = False
tsButtonDelete.Enabled = False
tsmi_RecordDelete.Enabled = False
MassenänderungToolStripMenuItem.Enabled = False
docCM_RenameMain.Enabled = False
docCM_linkRecord.Enabled = False
docCM_InWork.Enabled = False
WindreamToolStripMenuItem.Enabled = False
docCM_PropertiesFile.Enabled = False
docCM_Copy.Enabled = False
docCM_RemoveLink.Enabled = False
@@ -1026,44 +1037,26 @@ Public Class frmConstructor_Main
' tsButtonShowTaskOverview.Enabled = False
CreateWorkflowtaskstsmi.Enabled = False
ChangeParentLinktsmi.Enabled = False
Else
If tsButtonEdit.Enabled = False Then
tsButtonEdit.Enabled = True
End If
If tslblLocked.Visible = True Then
tslblLocked.Visible = False
End If
If tsButtonSave.Enabled = False Then
tsButtonSave.Enabled = True
End If
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
ClassLogger.Add("TempSQL so far: " & tempsql)
End Try
End If
If SQL_RIGHT_WINDREAM_FORBIDDEN <> "" Then
If SQL_DOC_READ_ONLY <> "" Then
Try
tempsql = SQL_RIGHT_WINDREAM_FORBIDDEN
tempsql = tempsql.Replace("@RECORDID", RECORD_ID)
tempsql = tempsql.Replace("@RECORD_ID", RECORD_ID)
tempsql = tempsql.Replace("@USER_ID", USER_GUID)
tempsql = tempsql.Replace("@USER_GUID", USER_GUID)
''Regulären Ausdruck zum Auslesen der windream-Indexe definieren
'Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
'' einen Regulären Ausdruck laden
'Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
'' die Vorkommen im SQL-String auslesen
'Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(tempsql)
'' alle Vorkommen der windream-Indexe im SQL-String durchlaufen
''#####
'' alle Vorkommen der windream-Indexe im SQL-String durchlaufen
'For Each element As System.Text.RegularExpressions.Match In elemente
' Dim elementohneSZ = element.Value.Replace("[%", "")
' elementohneSZ = elementohneSZ.Replace("]", "")
' ' den Platzhalter für den auszulesenden View durch den Viewnamen ersetzen
' tempsql = tempsql.Replace(element.Value, controlvalue.ToString)
'Next
Try
RIGHT_WINDREAM_FORBIDDEN = CBool(ClassDatabase.Execute_Scalar(tempsql))
Catch ex As Exception
RIGHT_WINDREAM_FORBIDDEN = False
End Try
If RIGHT_WINDREAM_FORBIDDEN = True Then
' Hinzufügen sollte auch bei RIGHT_ONLY_READ verfügbar sein
RIGHT_ONLY_READ_DOCS = ClassHelper.Check_File_Read_only(RECORD_ID, ENTITY_ID)
If RIGHT_ONLY_READ_DOCS = True Then
' Hinzufügen sollte auch bei RIGHT_ONLY_READ_RECORD verfügbar sein
tslblFileslocked.Visible = True
Doc_Controls_EditMode(False)
'TabWindream.PageEnabled = False
@@ -1071,13 +1064,28 @@ Public Class frmConstructor_Main
tsmientitySearch.Enabled = False
docCM_Open.Enabled = False
docCM_InWork.Enabled = False
WindreamToolStripMenuItem.Enabled = False
Else
If tsbtnDoc_Refresh.Enabled = False Then
tsbtnDoc_Refresh.Enabled = True
End If
If tslblFileslocked.Visible = True Then
tslblFileslocked.Visible = False
End If
If tsmientitySearch.Enabled = True Then
tsmientitySearch.Enabled = False
End If
If docCM_Open.Enabled = False Then
docCM_Open.Enabled = True
End If
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Check Read-Limitations WINDREAM: " & ex.StackTrace)
ClassLogger.Add("TempSQL so far: " & tempsql)
End Try
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
@@ -1155,7 +1163,7 @@ Public Class frmConstructor_Main
If DOC_SEARCH_TAB1 = True Then
tsbtnPanel1Collapse.Visible = True
Else
tsbtnPanel1Collapse.Visible = True
tsbtnPanel1Collapse.Visible = False
End If
If NODE_NAVIGATION = True Then
Dim SelectedNode As TreeNode = TryCast(TreeViewMain.SelectedNode, TreeNode)
@@ -1175,7 +1183,7 @@ Public Class frmConstructor_Main
If pnlDetails.Enabled = True Then pnlDetails.Enabled = False
ToolStripEdit.Enabled = False
End If
If RIGHT_WINDREAM_FORBIDDEN = False Then
If RIGHT_ONLY_READ_DOCS = False Then
If ACTIVATE_DOC_SEARCH_ON_EDIT = False Then
Doc_Controls_EditMode(False)
Else
@@ -1318,7 +1326,7 @@ Public Class frmConstructor_Main
Sub Create_variable_node()
End Sub
Sub Load_Datafor_Entity()
Try
If NODE_NAVIGATION = True Then
@@ -1576,7 +1584,7 @@ Public Class frmConstructor_Main
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
End Sub
#End Region
@@ -1710,7 +1718,7 @@ Public Class frmConstructor_Main
EDIT_STATE = EditState.Update
RECORD_CHANGED = True
'tsslblRecord.Text = "Adding record ......"
RIGHT_ONLY_READ = False
RIGHT_ONLY_READ_RECORD = False
tslblLocked.Visible = False
tslblFileslocked.Visible = False
tsButtonAdd.Enabled = False
@@ -1942,7 +1950,7 @@ Public Class frmConstructor_Main
End Sub
Sub ToggleEditMode()
If RECORD_ENABLED = False Then
EnableEditMode()
Else
@@ -1991,7 +1999,6 @@ Public Class frmConstructor_Main
Lock_RecordControls(False)
tsmi_RecordDelete.Enabled = True
RecordDeleteToolStripMenuItem.Enabled = True
MassenänderungToolStripMenuItem.Enabled = True
Me.tsButtonAdd.Enabled = False
Me.tsButtonSave.Enabled = True
tsbtnRedo.Visible = True
@@ -2002,7 +2009,7 @@ Public Class frmConstructor_Main
stg = "End Working"
End If
Me.tsButtonEdit.Text = stg
If RIGHT_ONLY_READ = False Then
If RIGHT_ONLY_READ_RECORD = False Then
tsButtonDelete.Enabled = True
End If
@@ -2016,7 +2023,7 @@ Public Class frmConstructor_Main
RECORD_ENABLED = True
CURRENT_RECORD_ENABLED = True
If RIGHT_WINDREAM_FORBIDDEN = False Then
If RIGHT_ONLY_READ_DOCS = False Then
Doc_Controls_EditMode(True)
End If
pnlDetails.Focus()
@@ -2060,7 +2067,7 @@ Public Class frmConstructor_Main
CtrlCommandUI.IsEdit = False
End If
End If
If RIGHT_WINDREAM_FORBIDDEN = False Then
If RIGHT_ONLY_READ_DOCS = False Then
If ACTIVATE_DOC_SEARCH_ON_EDIT = False Then
Doc_Controls_EditMode(False)
Else
@@ -2105,75 +2112,55 @@ Public Class frmConstructor_Main
#End Region
Sub GetSet_Rights()
Try
Dim sel = String.Format("SELECT DISTINCT EDIT_REC,ADD_REC,DELETE_REC,ADD_DOC,VIEW_DOC,DELETE_DOC FROM TBPMO_RIGHT_GROUP WHERE ENTITY_ID = {0} AND GROUP_ID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {1})", ENTITY_ID, USER_GUID)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Select Rightsmanagement " & sel, False)
Dim DT As DataTable = ClassDatabase.Return_Datatable(sel, True)
If DT.Rows.Count > 0 Then
For Each row As DataRow In DT.Rows
'RIGHT_EDIT_R = True
'RIGHT_ADD_R = True
'RIGHT_DELETE_R = False
'RIGHT_ADD_DOC = True
'RIGHT_VIEW_DOC = True
'RIGHT_DELETE_DOC = False
If RIGHT_EDIT_R = True And CBool(DT.Rows(0).Item(0)) = False Then
If DT_RIGHTS_GROUP.Rows.Count > 0 And DT_RIGHTS_USER.Rows.Count = 0 Then
For Each row As DataRow In DT_RIGHTS_GROUP.Rows
If RIGHT_EDIT_R = True And CBool(DT_RIGHTS_GROUP.Rows(0).Item(0)) = False Then
RIGHT_EDIT_R = False
ElseIf RIGHT_EDIT_R = False And CBool(DT.Rows(0).Item(0)) = True Then
ElseIf RIGHT_EDIT_R = False And CBool(DT_RIGHTS_GROUP.Rows(0).Item(0)) = True Then
RIGHT_EDIT_R = True
End If
If RIGHT_ADD_R = True And CBool(DT.Rows(0).Item(1)) = False Then
If RIGHT_ADD_R = True And CBool(DT_RIGHTS_GROUP.Rows(0).Item(1)) = False Then
RIGHT_ADD_R = False
ElseIf RIGHT_EDIT_R = False And CBool(DT.Rows(0).Item(1)) = True Then
ElseIf RIGHT_EDIT_R = False And CBool(DT_RIGHTS_GROUP.Rows(0).Item(1)) = True Then
RIGHT_EDIT_R = True
End If
If RIGHT_DELETE_R = False And CBool(DT.Rows(0).Item(2)) = True Then
If RIGHT_DELETE_R = False And CBool(DT_RIGHTS_GROUP.Rows(0).Item(2)) = True Then
RIGHT_DELETE_R = True
ElseIf RIGHT_DELETE_R = False And CBool(DT.Rows(0).Item(2)) = False Then
ElseIf RIGHT_DELETE_R = False And CBool(DT_RIGHTS_GROUP.Rows(0).Item(2)) = False Then
RIGHT_DELETE_R = False
End If
If RIGHT_ADD_DOC = True And CBool(DT.Rows(0).Item(3)) = False Then
If RIGHT_ADD_DOC = True And CBool(DT_RIGHTS_GROUP.Rows(0).Item(3)) = False Then
RIGHT_ADD_DOC = False
ElseIf RIGHT_ADD_DOC = False And CBool(DT.Rows(0).Item(3)) = True Then
ElseIf RIGHT_ADD_DOC = False And CBool(DT_RIGHTS_GROUP.Rows(0).Item(3)) = True Then
RIGHT_ADD_DOC = True
End If
If RIGHT_VIEW_DOC = True And CBool(DT.Rows(0).Item(4)) = False Then
If RIGHT_VIEW_DOC = True And CBool(DT_RIGHTS_GROUP.Rows(0).Item(4)) = False Then
RIGHT_VIEW_DOC = False
ElseIf RIGHT_VIEW_DOC = True And CBool(DT.Rows(0).Item(4)) = False Then
ElseIf RIGHT_VIEW_DOC = True And CBool(DT_RIGHTS_GROUP.Rows(0).Item(4)) = False Then
RIGHT_VIEW_DOC = True
End If
If RIGHT_DELETE_DOC = False And CBool(DT.Rows(0).Item(5)) = True Then
If RIGHT_DELETE_DOC = False And CBool(DT_RIGHTS_GROUP.Rows(0).Item(5)) = True Then
RIGHT_DELETE_DOC = False
ElseIf RIGHT_DELETE_DOC = True And CBool(DT.Rows(0).Item(5)) = False Then
ElseIf RIGHT_DELETE_DOC = True And CBool(DT_RIGHTS_GROUP.Rows(0).Item(5)) = False Then
RIGHT_DELETE_DOC = True
End If
Next
Else
If DT_RIGHTS_USER.Rows.Count = 1 Then
RIGHT_EDIT_R = CBool(DT_RIGHTS_USER.Rows(0).Item("EDIT_REC"))
RIGHT_ADD_R = CBool(DT_RIGHTS_USER.Rows(0).Item("ADD_REC"))
RIGHT_DELETE_R = CBool(DT_RIGHTS_USER.Rows(0).Item("DELETE_REC"))
End If
tsButtonSave.Visible = True
tsButtonAdd.Visible = True
tsButtonEdit.Visible = True
tsButtonDelete.Visible = True
tsmi_RecordDelete.Enabled = True
RecordDeleteToolStripMenuItem.Enabled = True
MassenänderungToolStripMenuItem.Enabled = True
RIGHT_ADD_DOC = CBool(DT_RIGHTS_USER.Rows(0).Item("ADD_DOC"))
RIGHT_VIEW_DOC = CBool(DT_RIGHTS_USER.Rows(0).Item("FILES_VISIBLE"))
RIGHT_DELETE_DOC = CBool(DT_RIGHTS_USER.Rows(0).Item("DELETE_DOC"))
RIGHT_ONLY_READ_DOC = CBool(DT_RIGHTS_USER.Rows(0).Item("READ_ONLY_DOC"))
If RIGHT_ADD_R = False Then
tsButtonAdd.Visible = False
End If
If RIGHT_EDIT_R = False Then
tsButtonEdit.Visible = False
MassenänderungToolStripMenuItem.Enabled = False
If RIGHT_ADD_R = False Then
tsButtonSave.Visible = False
End If
End If
If RIGHT_DELETE_R = False Then
tsButtonDelete.Visible = False
tsmi_RecordDelete.Enabled = False
RecordDeleteToolStripMenuItem.Enabled = False
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
@@ -2187,7 +2174,7 @@ Public Class frmConstructor_Main
RECORD_ID = 0
ChangeParentLinktsmi.Enabled = True
'Setzen von Rechten
'GetSet_Rights()
'VerknüpfungenToolStripMenuItem.Enabled = False
Dim sql = "SELECT CONTROL_ID, CONTROL_READ_ONLY FROM VWPMO_CONTROL_SCREEN WHERE CTRLTYPE_ID NOT IN (1) AND CONTROL_ENTITY_ID = " & ENTITY_ID
DT_CONTROLS_ENTITY = ClassDatabase.Return_Datatable(sql, True)
@@ -2216,8 +2203,8 @@ Public Class frmConstructor_Main
LOAD_DIRECT = result.Item("LOAD_DIRECT")
CURRENT_CONSTRUCTOR_DETAIL_ID = result.Item("GUID")
CONTROL_DOCTYPE_MATCH = result.Item("CONTROL_DOCTYPE_MATCH")
SQL_RIGHT_READ_AND_VIEW_ONLY = result.Item("SQL_RIGHT_READ_AND_VIEW_ONLY")
SQL_RIGHT_WINDREAM_FORBIDDEN = result.Item("SQL_RIGHT_WINDREAM_VIEW")
SQL_RECORD_READ_ONLY = result.Item("SQL_RIGHT_READ_AND_VIEW_ONLY")
SQL_DOC_READ_ONLY = result.Item("SQL_RIGHT_WINDREAM_VIEW")
DOC_SEARCH_TAB1 = result.Item("DOC_SEARCH_TAB1")
If DOC_SEARCH_TAB1 = True Then
tslblDocIDMain.Visible = False
@@ -2264,6 +2251,13 @@ Public Class frmConstructor_Main
Else
CURRENT_ENTITY_REDUNDANT_ID = 0
End If
sql = String.Format("select * from TBPMO_RIGHT_USER WHERE USER_ID = {0}", USER_GUID)
DT_RIGHTS_USER = ClassDatabase.Return_Datatable(sql, True)
sql = String.Format("SELECT DISTINCT EDIT_REC,ADD_REC,DELETE_REC,ADD_DOC,VIEW_DOC,DELETE_DOC FROM TBPMO_RIGHT_GROUP WHERE ENTITY_ID = {0} AND GROUP_ID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {1})", ENTITY_ID, USER_GUID)
DT_RIGHTS_GROUP = ClassDatabase.Return_Datatable(sql, True)
GetSet_Rights()
If VIEW_ID_RUNTIME <> -1 Then
GRID_TYPE_ID = VIEW_ID_RUNTIME
Else
@@ -2605,7 +2599,7 @@ Public Class frmConstructor_Main
'GridControlDocSearch.Dock = DockStyle.Top
TabWindream.PageVisible = True
End If
If RIGHT_WINDREAM_FORBIDDEN = False Then
If RIGHT_ONLY_READ_DOCS = False Then
If ACTIVATE_DOC_SEARCH_ON_EDIT = False Then
Doc_Controls_EditMode(False)
Else
@@ -3663,7 +3657,7 @@ Public Class frmConstructor_Main
grvwGrid.ShowFindPanel()
grvwGrid.FindFilterText = CURRENT_FULLTEXT_PATTERN
End If
ClassWindreamDocGrid.FillColumns(
GridViewDoc_Search,
DT_RESULT,
@@ -4146,7 +4140,7 @@ Public Class frmConstructor_Main
End If
End Sub
Sub Drag_Drop(e As DragEventArgs)
If act_FormViewID <> 0 And RIGHT_WINDREAM_FORBIDDEN = False And GridControlDocSearch.ContextMenuStrip.Name = "ContextMenuStripResultFiles" Then
If act_FormViewID <> 0 And (RIGHT_ONLY_READ_DOCS = False And GridControlDocSearch.ContextMenuStrip.Name = "ContextMenuStripResultFiles") Or RIGHT_ADD_DOC = True Then
Dim sql = "select count(*) from VWPMO_DOKUMENTTYPES where FORMVIEW_ID = " & FORMVIEW_ID
Dim count_DT = ClassDatabase.Execute_Scalar(sql, True)
If count_DT = 0 And CURRENT_ENTITY_REDUNDANT_ID = 0 Then
@@ -4215,10 +4209,10 @@ Public Class frmConstructor_Main
End If
Me.Cursor = Cursors.Default
Else
'If RIGHT_ONLY_READ = True Then
' ClassLogger.Add(">> RIGHT_ONLY_READ is set! No DragDrop allowed", False)
'If RIGHT_ONLY_READ_RECORD = True Then
' ClassLogger.Add(">> RIGHT_ONLY_READ_RECORD is set! No DragDrop allowed", False)
'End If
If RIGHT_WINDREAM_FORBIDDEN = True Then
If RIGHT_ONLY_READ_DOCS = True Then
ClassLogger.Add(">> RIGHT_WD_FORBIDDEN is set! No DragDrop allowed", False)
End If
@@ -5027,7 +5021,7 @@ Public Class frmConstructor_Main
Private Sub tslblLocked_VisibleChanged(sender As Object, e As EventArgs) Handles tslblLocked.VisibleChanged
If tslblLocked.Visible = True Then
Dim msg = "Nur lesenden Zugriff"
Dim msg = "Datensatz - Nur lesenden Zugriff"
If USER_LANGUAGE <> "de-DE" Then
msg = "Record is read only"
End If
@@ -5379,7 +5373,7 @@ Public Class frmConstructor_Main
Next
MASS_COLUMN_LIST = collist
MASS_RECORD_IDs2CHANGE = list
Save_Grid_Layout()
CURRENT_ENTITY_ID = ENTITY_ID
frmMass_Change.ShowDialog()
If SUCCESSFULL = True Then
Cursor = Cursors.WaitCursor
@@ -5525,6 +5519,7 @@ Public Class frmConstructor_Main
docCM_CheckRights.Enabled = False
docCM_DeleteFile.Enabled = False
docCM_RemoveLink.Enabled = False
WindreamToolStripMenuItem.Enabled = False
End Sub
Sub ContextMenu_Write()
docCM_Open.Enabled = True
@@ -5535,6 +5530,7 @@ Public Class frmConstructor_Main
docCM_CheckRights.Enabled = True
docCM_DeleteFile.Enabled = True
docCM_RemoveLink.Enabled = True
WindreamToolStripMenuItem.Enabled = True
End Sub
Private Sub ContextMenuStripResultFiles_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStripResultFiles.Opening
GridViewDoc_Search.EndSelection()