MS11.01(2)
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user