This commit is contained in:
Digital Data - Marlon Schreiber
2017-05-24 11:46:17 +02:00
parent 1d18370ec0
commit 9c0e09dcef
28 changed files with 659 additions and 887 deletions

View File

@@ -88,6 +88,7 @@ Public Class frmConstructor_Main
Private TreeView_perControl As Boolean = False
Dim IsTopFirstRow As Boolean = True
Dim IsFilterMode As Boolean = False
Private GRIDRightMouse_Clicked = False
Private GRIDdownHitInfo As GridHitInfo
@@ -229,7 +230,6 @@ Public Class frmConstructor_Main
If DOC_SEARCH_TAB1 = True Then
Save_DocGrid_Layout()
End If
Save_Splitter_Layout()
ClassWindowLocation.SaveFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "CONSTRUCTOR_MAIN")
' Verhindert, das noch geöffnete Records für immer gelockt sind
@@ -491,8 +491,13 @@ Public Class frmConstructor_Main
If settings.Count = 0 Then
settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition))
settings.Add(New ClassSetting("SplitViewDetailsSplitterPosition", SplitContainerDetails.SplitterPosition))
If CONSTRUCTOR_DETAIL_ID > 0 Then
settings.Add(New ClassSetting("SplitViewMainSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString, SplitContainerMain.SplitterPosition))
Else
settings.Add(New ClassSetting("SplitViewMainSplitterPosition_0", SplitContainerMain.SplitterPosition))
End If
settings.Add(New ClassSetting("SplitViewDetailsSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString, SplitContainerDetails.SplitterPosition))
layout.Save(settings)
End If
@@ -500,13 +505,13 @@ Public Class frmConstructor_Main
Select Case setting._name
Case "SplitViewTopSplitterPosition"
SplitContainerTop.SplitterPosition = Integer.Parse(setting._value)
Case "SplitViewMainSplitterPosition"
Case "SplitViewMainSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString
If NODE_NAVIGATION = False Then
SplitContainerMain.SplitterPosition = Integer.Parse(setting._value)
Else
SplitContainerFORM.SplitterPosition = Integer.Parse(setting._value)
End If
Case "SplitViewDetailsSplitterPosition"
Case "SplitViewDetailsSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString
If DOC_SEARCH_TAB1 = True Then
SplitContainerDetails.SplitterPosition = Integer.Parse(setting._value)
End If
@@ -523,15 +528,18 @@ Public Class frmConstructor_Main
Dim settings As New System.Collections.Generic.List(Of ClassSetting)
If NODE_NAVIGATION = False Then
settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition))
If CONSTRUCTOR_DETAIL_ID > 0 Then
settings.Add(New ClassSetting("SplitViewMainSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString, SplitContainerMain.SplitterPosition))
Else
settings.Add(New ClassSetting("SplitViewMainSplitterPosition_0", SplitContainerMain.SplitterPosition))
End If
Else
settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerFORM.SplitterPosition))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString, SplitContainerFORM.SplitterPosition))
End If
If DOC_SEARCH_TAB1 = True Then
settings.Add(New ClassSetting("SplitViewDetailsSplitterPosition", SplitContainerDetails.SplitterPosition))
settings.Add(New ClassSetting("SplitViewDetailsSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString, SplitContainerDetails.SplitterPosition))
End If
layout.Save(settings)
Catch ex As Exception
@@ -544,7 +552,7 @@ Public Class frmConstructor_Main
End Function
Private Function Get_Splitter_Layout_Filename()
Dim Filename As String = String.Format("{0}-SplitterLayout.xml", CONSTRUCTORID)
Dim Filename As String = String.Format("{0}-{1}-SplitterLayout.xml", CONSTRUCTORID, CONSTRUCTOR_DETAIL_ID.ToString)
Return System.IO.Path.Combine(Application.UserAppDataPath(), Filename)
End Function
@@ -737,7 +745,7 @@ Public Class frmConstructor_Main
GridControlMain.MainView = grvwTiles
End Sub
Public Function Get_Pos_SQL(FormId As Integer)
POS_SQL = "SELECT T.* FROM VWPMO_ENTITY_TABLE" & FormId.ToString & " T, TBPMO_RECORD_CONNECT t1 where T.[Record-ID] = T1.RECORD2_ID AND T1.RECORD1_ID = @PARENT_ID"
POS_SQL = "Select T.* FROM VWPMO_ENTITY_TABLE" & FormId.ToString & " T, TBPMO_RECORD_CONNECT t1 where T.[Record-ID] = T1.RECORD2_ID And T1.RECORD1_ID = @PARENT_ID"
End Function
Public Sub Clear_Grid_View()
GridControlMain.DataSource = Nothing
@@ -782,7 +790,7 @@ Public Class frmConstructor_Main
' End If
' End If
' Catch ex As Exception
' ClassLogger.Add("Error in Search_RowHandle: " & ex.Message, False)
' ClassLogger.Add("Error In Search_RowHandle: " & ex.Message, False)
' End Try
'End Function
Public Function Get_Grid_Column_Count() As Integer
@@ -882,8 +890,9 @@ Public Class frmConstructor_Main
'End If
End If
CURRENT_RECORD_ID = RECORD_ID
CURRENT_RECORD_ID = RECID
CURRENT_SEARCH_TYPE = "RECORD"
If RECID = RECORD_ID And ENTITY_RECORD_COUNT > 1 And _refresh = False Then
Exit Sub
End If
@@ -923,28 +932,32 @@ Public Class frmConstructor_Main
' 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)
ClassControlValues.LoadControlValuesListWithPlaceholders(ENTITY_ID, CURRENT_RECORD_ID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
CtrlBuilder.WatchRecordChanges = True
Show_Selected_Record_Data(RECID, False)
If CURRENT_RECORD_ID > 0 Then
Show_Selected_Record_Data(CURRENT_RECORD_ID, False)
End If
Dim sw1 As New Stopwatch
sw1.Start()
ClassRightManagement.Check_Set_Rights(RECORD_ID, ENTITY_ID)
sw1.Start()
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, ENTITY_ID)
CONTROL_HANDLING()
elapsed = sw1.Elapsed.TotalSeconds
sw1.Stop()
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 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 CURRENT_RECORD_ID > 0 Then
If RIGHT_RECORD_AND_FILE_READ_ONLY = False And CtrlCommandUI.IsInsert = False Then
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
tsButtonEdit.Enabled = False
@@ -963,14 +976,15 @@ Public Class frmConstructor_Main
'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
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
@@ -1148,6 +1162,7 @@ Public Class frmConstructor_Main
If DOC_SEARCH_TAB1 = True Then
Save_DocGrid_Layout()
End If
Else
If Not IsNothing(TreeViewMain.SelectedNode) Then
TreeViewMain.SelectedNode.NodeFont = New Font(TreeViewMain.Font.FontFamily, TreeViewMain.Font.Size, FontStyle.Regular)
@@ -1265,7 +1280,6 @@ Public Class frmConstructor_Main
Sub Create_variable_node()
End Sub
Sub Load_Datafor_Entity()
'If ClassProxy.IS_PROXY_BUSY = True Then
' MsgBox("Proxy-Server is actually synchronizing! Please wait until synchronisation is finished!" & vbNewLine & "This might take up to 3 minutes!", MsgBoxStyle.Information)
@@ -2386,7 +2400,7 @@ Public Class frmConstructor_Main
progressLoadEntity.Visible = True
labelLoadEntity.Visible = True
Load_Splitter_Layout()
If LOCK_CONTROLS_BG_LOAD = True Then
SplitContainerMain.Panel2.Enabled = False
End If
@@ -2516,7 +2530,7 @@ Public Class frmConstructor_Main
End If
End If
Load_Splitter_Layout()
sw.Done()
If ENTITY_RELOAD_AFT_CONTROL_LOAD = True Then
@@ -4714,13 +4728,15 @@ Public Class frmConstructor_Main
Private Sub grvwGrid_RowStyle(sender As Object, e As DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs) Handles grvwGrid.RowStyle
If e.RowHandle = -1 Then
IsFilterMode = True
Exit Sub
End If
If e.RowHandle = DevExpress.XtraGrid.GridControl.AutoFilterRowHandle Then
IsFilterMode = True
e.Appearance.BackColor = Color.Orange
Else
If GRID_TYPE = GridType.Grid Then
IsFilterMode = False
Try
Dim rowCellValue = grvwGrid.GetRowCellValue(e.RowHandle, "ROW_COLOR")
If rowCellValue <> "" Then
@@ -4968,26 +4984,28 @@ Public Class frmConstructor_Main
If result = MsgBoxResult.Yes Then
Try
For Each row As DataRow In ClassWindreamDocGrid.DT_RESULTFILES.Rows
Dim DT_INDICES As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_WD_OBJECTTYPE WHERE OBJECT_TYPE = '" & row.Item("OBJECTTYPE") & "'", True)
If Not IsNothing(DT_INDICES) Then
If DT_INDICES.Rows.Count = 1 Then
'Record-Links entfernen
If clsWD_SET.REMOVE_VEKTOR_LINK(row.Item("DOC_PATH"), DT_INDICES.Rows(0).Item("IDXNAME_RECORDID"), RECORD_ID) = True Then
'ENTITY-Links entfernen
If clsWD_SET.REMOVE_VEKTOR_LINK(row.Item("DOC_PATH"), DT_INDICES.Rows(0).Item("IDXNAME_ENTITYID"), ENTITY_ID) = True Then
If ClassFileResult.Delete_ResultFile(row.Item("DOC_ID"), RECORD_ID, 0) = True Then
ClassHelper.InsertEssential_Log(row.Item("DOC_ID"), "DOC-ID", "RECORD LINK REMOVED FROM DOC-SEARCH")
Cursor = Cursors.WaitCursor
RUN_WDSEARCH_GRID()
End If
Else
MsgBox("Could not remove Vektor-Link ENTITY! Check logfile.", MsgBoxStyle.Exclamation)
End If
Else
MsgBox("Could not remove Vektor-Link RECORD! Check logfile.", MsgBoxStyle.Exclamation)
End If
End If
If ClassFileResult.Delete_ResultFile(row.Item("DOC_ID"), RECORD_ID, 0) = True Then
ClassHelper.InsertEssential_Log(row.Item("DOC_ID"), "DOC-ID", "RECORD LINK REMOVED FROM DOC-SEARCH")
Cursor = Cursors.WaitCursor
RUN_WDSEARCH_GRID()
End If
'Dim DT_INDICES As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_WD_OBJECTTYPE WHERE OBJECT_TYPE = '" & row.Item("OBJECTTYPE") & "'", True)
'If Not IsNothing(DT_INDICES) Then
' If DT_INDICES.Rows.Count = 1 Then
' 'Record-Links entfernen
' If clsWD_SET.REMOVE_VEKTOR_LINK(row.Item("DOC_PATH"), DT_INDICES.Rows(0).Item("IDXNAME_RECORDID"), RECORD_ID) = True Then
' 'ENTITY-Links entfernen
' If clsWD_SET.REMOVE_VEKTOR_LINK(row.Item("DOC_PATH"), DT_INDICES.Rows(0).Item("IDXNAME_ENTITYID"), ENTITY_ID) = True Then
' Else
' MsgBox("Could not remove Vektor-Link ENTITY! Check logfile.", MsgBoxStyle.Exclamation)
' End If
' Else
' MsgBox("Could not remove Vektor-Link RECORD! Check logfile.", MsgBoxStyle.Exclamation)
' End If
' End If
'End If
Next
Catch ex As Exception
@@ -5423,7 +5441,7 @@ Public Class frmConstructor_Main
End If
End If
File_in_Work()
Dim Result = clsWD_GET.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_PATH, USER_USERNAME)
Dim Result = ClassDOC_SEARCH.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_ID)
If Not IsNothing(Result) Then
ROW_READ_ONLY = False
Select Case Result.ToString
@@ -5482,11 +5500,7 @@ Public Class frmConstructor_Main
IW_USER = ""
IW_COMMENT = ""
End Try
Dim displ As String
If CBool(ClassWindreamDocGrid.SELECTED_INWORK) = True Then
If IW_USER.ToUpper = USER_USERNAME.ToUpper Or USER_IS_ADMIN Then
displ = "Datei wieder freigeben"
@@ -5764,10 +5778,10 @@ Public Class frmConstructor_Main
ClassHelper.InsertEssential_Log(_RECORD, "RECORD-ID", msg)
sql = "SELECT T.* FROM VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK T1 WHERE T.DocID = T1.DOC_ID AND T1.RECORD_ID = " & _RECORD
Dim DT_DOCS As DataTable = ClassDatabase.Return_Datatable(sql, True)
For Each doc As DataRow In DT_DOCS.Rows
Dim DT_INDICES As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_WD_OBJECTTYPE WHERE OBJECT_TYPE = '" & doc.Item("OBJECTTYPE") & "'", True)
clsWD_SET.REMOVE_VEKTOR_LINK(doc.Item("FULL_FILENAME"), DT_INDICES.Rows(0).Item("IDXNAME_ENTITYID"), ENTITY_ID)
Next
'For Each doc As DataRow In DT_DOCS.Rows
' Dim DT_INDICES As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_WD_OBJECTTYPE WHERE OBJECT_TYPE = '" & doc.Item("OBJECTTYPE") & "'", True)
' clsWD_SET.REMOVE_VEKTOR_LINK(doc.Item("FULL_FILENAME"), DT_INDICES.Rows(0).Item("IDXNAME_ENTITYID"), ENTITY_ID)
'Next
sql = String.Format("select ORIGIN_CTRL_ID,LINKED_CTRL_ID from TBPMO_CONTROL_ENTITY_LINK where ORIGIN_CTRL_ID in (SELECT GUID FROM TBPMO_CONTROL where FORM_ID = {0}) " &
"AND LINKED_CTRL_ID IN (SELECT GUID FROM TBPMO_CONTROL where FORM_ID = {1})", ENTITY_ID, node_tag)
@@ -5830,7 +5844,7 @@ Public Class frmConstructor_Main
End Try
End Sub
Private Sub DateirechteFürUserToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles docCM_GetRights.Click
Dim result = clsWD_GET.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_PATH, USER_USERNAME)
Dim result = ClassDOC_SEARCH.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_ID)
If Not IsNothing(result) Then
Dim msg = "Das aktuelle Recht für Sie (" & USER_USERNAME & ") ist: "
If USER_LANGUAGE <> "de-DE" Then
@@ -6338,7 +6352,7 @@ Public Class frmConstructor_Main
Me.Cursor = Cursors.WaitCursor
Dim allow_Open As Boolean = False
ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search)
Dim Result = clsWD_GET.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_PATH, USER_USERNAME)
Dim Result = ClassDOC_SEARCH.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_ID) 'clsWD_GET.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_PATH, USER_USERNAME)
If Not IsNothing(Result) Then
Select Case Result.ToString
Case "R"
@@ -6359,7 +6373,7 @@ Public Class frmConstructor_Main
ClassHelper.File_open(row.Item("DOC_PATH"), row.Item("DOC_ID"))
Next
Else
If clsWD_GET.WDFile_exists(ClassWindreamDocGrid.SELECTED_DOC_PATH, True) = True Then
If clsWD_GET.WDFile_exists(ClassWindreamDocGrid.SELECTED_DOC_PATH, DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED, ClassProxy.MyLinkedServer, True) = True Then
ClassHelper.MSGBOX_Handler("ERROR", "Right-Management", "File is existing, but you do not have the rights to open this file! " & vbNewLine & "Please contact your admin!" & vbNewLine & "DOC-ID: " & ClassWindreamDocGrid.SELECTED_DOC_ID.ToString)
Else
ClassHelper.MSGBOX_Handler("ERROR", "", "File does not exist! Please contact your admin!")
@@ -6461,7 +6475,7 @@ Public Class frmConstructor_Main
e.Cancel = True
End If
Me.Cursor = Cursors.WaitCursor
Dim Result = clsWD_GET.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_PATH, USER_USERNAME)
Dim Result = ClassDOC_SEARCH.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_ID) 'clsWD_GET.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_PATH, USER_USERNAME)
If Not IsNothing(Result) Then
Select Case Result.ToString
Case "R"
@@ -6553,6 +6567,19 @@ Public Class frmConstructor_Main
Save_Record()
End If
End Sub
Private Sub grvwGrid_LostFocus(sender As Object, e As EventArgs) Handles grvwGrid.LostFocus
Save_Grid_Layout()
End Sub
Private Sub SplitContainerMain_SplitterMoved(sender As Object, e As EventArgs) Handles SplitContainerMain.SplitterMoved
Save_Splitter_Layout()
End Sub
Private Sub SplitContainerTop_SplitterMoved(sender As Object, e As EventArgs) Handles SplitContainerTop.SplitterMoved
Save_Splitter_Layout()
End Sub
Private Sub SplitContainerDetails_SplitterMoved(sender As Object, e As EventArgs) Handles SplitContainerDetails.SplitterMoved
Save_Splitter_Layout()
End Sub
End Class