MS
This commit is contained in:
@@ -4,6 +4,10 @@ Imports DevExpress.XtraTreeList.Nodes.Operations
|
||||
Imports DevExpress.XtraTreeList.Nodes
|
||||
Imports DevExpress.XtraSplashScreen
|
||||
Imports System.Threading
|
||||
Imports DevExpress.Utils
|
||||
Imports DevExpress.XtraScheduler
|
||||
Imports DevExpress.Data
|
||||
Imports DD_Record_Organizer.frmConstructor_Main
|
||||
|
||||
Public Class frmNodeNavigation
|
||||
Dim DTNODES As DataTable
|
||||
@@ -14,30 +18,85 @@ Public Class frmNodeNavigation
|
||||
Private RunningTaskToken = RunningTaskTokenSource.Token
|
||||
Private oEntityID As Int16
|
||||
Private oConstructID As Int16
|
||||
Private CONSTRUCTORID As Integer
|
||||
Private CONSTRUCTOR_DETAIL_ID As Int16
|
||||
Private oFilterActive As Boolean = False
|
||||
Public CtrlBuilder As ClassControlBuilder
|
||||
Public CtrlCommandUI As ClassControlCommandsUI
|
||||
|
||||
Public Sub New(pEntityID As Int16, oConstructID As Int16)
|
||||
Private RECORD_ID As Integer
|
||||
Private DT_CONTROLS_ENTITY As DataTable
|
||||
Private DT_WINDREAM_COLUMNS_GRID As DataTable
|
||||
Private DT_DOCRESULT_DROPDOWN_ITEMS As DataTable
|
||||
Private DT_RESULTLIST_OPTIONS As DataTable
|
||||
Private DT_RESULTLIST_VARIABLE_VALUE As DataTable
|
||||
Private DT_ENTITY_DATA As DataTable
|
||||
Private DT_TBPMO_FORM_VIEW As DataTable
|
||||
Private DT_CONSTRUCT_VIEW As DataTable
|
||||
Private COUNT_RO_CONTROLS As Integer = 0
|
||||
Private SELECTED_RECORD_ID As Integer
|
||||
Private GRID_TYPE_ID As Integer = 1
|
||||
Private ENTITY_RECORD_COUNT As Integer = 0
|
||||
Private act_FormViewID As Integer
|
||||
Private FORMVIEW_ID As Integer
|
||||
Private FORM_LOADED As Boolean = False
|
||||
|
||||
Private ENTITY_LOADING_PROCESS As Boolean = False
|
||||
Private RECORD_ENABLED As Boolean = False
|
||||
Private BACKGROUND_HELPER As ClassBackgroundHelper
|
||||
Private Node_AfterSelect As Boolean = False
|
||||
|
||||
Public Sub New(pEntityID As Int16, pConstructID As Int16)
|
||||
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
InitializeComponent()
|
||||
oEntityID = pEntityID
|
||||
oConstructID = oConstructID
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
oEntityID = pEntityID
|
||||
oConstructID = pConstructID
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub frmNodeNavigation_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
|
||||
CONSTRUCTORID = CURRENT_CONSTRUCTOR_ID
|
||||
Dim Sql = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " &
|
||||
"FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {2} AND CONSTRUCT_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, CURRENT_SCREEN_ID, oConstructID)
|
||||
|
||||
DT_VWPMO_CONSTRUCTOR_FORMS = ClassDatabase.Return_Datatable(Sql, True)
|
||||
CURRENT_DT_TBPMO_ENTITY_RIGHT_CONTROLS = ClassDatabase.Return_Datatable(String.Format("SELECT T.* FROM TBPMO_ENTITY_RIGHT_CONTROLS T INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID where T1.CONSTRUCT_ID = {0}", CONSTRUCTORID), False)
|
||||
' Hintergrund Bild initialisieren
|
||||
BACKGROUND_HELPER = New ClassBackgroundHelper(GridViewDoc_Search, My.Resources.windream_Logo_transparent_klein) '
|
||||
ClassWindowLocation.LoadFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "CONSTRUCTOR_MAIN")
|
||||
Try
|
||||
DT_CONSTRUCT_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID)
|
||||
Dim SEL1 = String.Format("SELECT * FROM TBPMO_FORM WHERE GUID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {0} AND CONSTRUCT_ID = {1})", CURRENT_SCREEN_ID, CONSTRUCTORID)
|
||||
DT_ENTITY_DATA = ClassDatabase.Return_Datatable(SEL1, True)
|
||||
|
||||
SEL1 = String.Format("SELECT *, dbo.FNPMO_GET_CONTROL_CAPTION ('{0}', 1, CONTROL_ID) AS 'CAPTION' FROM VWPMO_CONTROL_SCREEN", USER_LANGUAGE)
|
||||
DT_VWPMO_CONTROL_SCREEN = ClassDatabase.Return_Datatable(SEL1, True)
|
||||
'DT_CONTROL_SCREEN_SHOW_COL_0 = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, "CONTROL_SHOW_COLUMN = 0", "") 'ClassDatabase.Return_Datatable("SELECT FORM_ID, CONTROL_ID, CONTROL_COL_NAME, CONTROL_SHOW_COLUMN FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_SHOW_COLUMN = 0", True)
|
||||
If DT_CONSTRUCT_VIEW.Rows.Count = 1 Then
|
||||
'Load Input Grid
|
||||
Me.Text = DT_CONSTRUCT_VIEW.Rows(0).Item("FORM_TITLE")
|
||||
'Die Standards ein/ausblenden
|
||||
End If
|
||||
|
||||
'Dim sql_ResultList = "select T1.ENTITY_ID,T.GUID,T.TITLE,T.MANUALLY,T.CREATE_ON_REC_CREATE,T.CREATE_ON_FOLL_UP " &
|
||||
' "FROM TBPMO_WORKFLOW T,TBPMO_WORKFLOW_ENTITY_STATE T1 " &
|
||||
' "WHERE T.GUID = T1.WF_ID " &
|
||||
' "GROUP BY T1.ENTITY_ID,T.GUID,T.TITLE,T.MANUALLY,T.CREATE_ON_REC_CREATE,T.CREATE_ON_FOLL_UP"
|
||||
'DT_WORKFLOWS_MANUAL = ClassDatabase.Return_Datatable(sql_ResultList)
|
||||
Load_Datafor_Entity()
|
||||
FORM_LOADED = True
|
||||
Catch ex As System.Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Loading Form part 4")
|
||||
End Try
|
||||
Load_nodes()
|
||||
End Sub
|
||||
Async Function Load_nodes() As Threading.Tasks.Task
|
||||
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
|
||||
Try
|
||||
Load_Datafor_Entity()
|
||||
|
||||
Dim oToken = RunningTaskTokenSource.Token
|
||||
Dim Sql = String.Format("select T.GUID,T.RECORD_ID, T.NODE_CONFIG_ID,T.NODE_CAPTION,T.ID1, T.BACK_COLOR,T.PARENT_GUID from VWPMO_STRUCTURE_NODES T INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID WHERE T1.CONSTRUCT_ID = {0}", 1)
|
||||
DTNODES = ClassDatabase.Return_Datatable(Sql, True)
|
||||
@@ -133,15 +192,107 @@ Public Class frmNodeNavigation
|
||||
End Class
|
||||
|
||||
Private Sub TreeListDevexpress_FocusedNodeChanged(sender As Object, e As FocusedNodeChangedEventArgs) Handles TreeListDevexpress.FocusedNodeChanged
|
||||
If oFilterActive Then
|
||||
Exit Sub
|
||||
End If
|
||||
For Each treeListNode As DevExpress.XtraTreeList.Nodes.TreeListNode In TreeListDevexpress.Selection
|
||||
Dim oID = treeListNode.Id
|
||||
Dim PID = treeListNode.ParentNode
|
||||
Dim Column_RecID As DevExpress.XtraTreeList.Columns.TreeListColumn = TreeListDevexpress.Columns("RECORD_ID")
|
||||
Dim RecID = e.Node.GetDisplayText(Column_RecID)
|
||||
Dim Column_pRecord As DevExpress.XtraTreeList.Columns.TreeListColumn = TreeListDevexpress.Columns("RECORD_ID")
|
||||
Dim pRecord = e.Node.GetDisplayText(Column_pRecord)
|
||||
Console.WriteLine(oID)
|
||||
If oID > 0 Then
|
||||
Update_Status_Label(True, oID)
|
||||
Else
|
||||
Exit Sub
|
||||
End If
|
||||
Dim oNodeInfo = $"NodeGUID {oID}"
|
||||
|
||||
If pRecord.Length > 0 Then
|
||||
oNodeInfo += $" - RecordID {pRecord}"
|
||||
Node_AfterSelect = True
|
||||
'Dim sw As New SW("TreeViewMain_AfterSelect1")
|
||||
' Dim swAll As New SW("TreeViewMain_AfterSelect")
|
||||
DisableEditMode()
|
||||
|
||||
Dim fl = FORM_LOADED
|
||||
Dim firstORFOLLWOWIN = False
|
||||
|
||||
' ClassNodeNavigation.Check_NODE_CONFIG_ID(oEntityID, SelectedNode)
|
||||
|
||||
CURRENT_RECORD_ID = pRecord
|
||||
CURRENT_SEARCH_TYPE = "RECORD"
|
||||
DisableEditMode()
|
||||
' muss vor show selected record data kommen,
|
||||
' sodass die datasource für die angehakten werte existiert (checked list box)
|
||||
CtrlBuilder.WatchRecordChanges = False
|
||||
ClassControlValues.LoadControlValuesListWithPlaceholders(oEntityID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, oEntityID)
|
||||
CtrlBuilder.WatchRecordChanges = True
|
||||
Show_Selected_Record_Data(CURRENT_RECORD_ID)
|
||||
|
||||
|
||||
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, oEntityID)
|
||||
CONTROL_HANDLING()
|
||||
|
||||
|
||||
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
|
||||
'tsButtonSave.Enabled = False
|
||||
'tsButtonDelete.Enabled = False
|
||||
Else
|
||||
' tsButtonEdit.Enabled = True
|
||||
End If
|
||||
|
||||
End If
|
||||
'If RIGHT_RECORD_AND_FILE_READ_ONLY = True Or NODE_NAVIGATION = True Then
|
||||
' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
'Else
|
||||
' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
'End If
|
||||
|
||||
|
||||
End If
|
||||
'Liste der geänderten Control Values leeren
|
||||
CtrlBuilder.ControlsChanged.Clear()
|
||||
|
||||
'Load_DocGrid_Layout()
|
||||
'Load_Grid_Layout()
|
||||
'Load_Variants_Grid_Layout()
|
||||
|
||||
'swAll.Done()
|
||||
Node_AfterSelect = False
|
||||
End If
|
||||
Update_Status_Label(True, oNodeInfo, EditState.None)
|
||||
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Sub Update_Status_Label(visible As Boolean, Optional text As String = "", Optional state As EditState = EditState.None)
|
||||
bsiInfo.Caption = text
|
||||
If visible = True Then
|
||||
bsiInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
Else
|
||||
bsiInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
End If
|
||||
|
||||
|
||||
Select Case state
|
||||
Case EditState.Insert
|
||||
bsiInfo.ItemAppearance.Normal.BackColor = Color.Yellow
|
||||
Case EditState.Update
|
||||
bsiInfo.ItemAppearance.Normal.BackColor = Color.LightBlue
|
||||
Case Else
|
||||
bsiInfo.ItemAppearance.Normal.BackColor = Color.LightGray
|
||||
End Select
|
||||
End Sub
|
||||
Private Sub TreeListDevexpress_GetStateImage(sender As Object, e As GetStateImageEventArgs) Handles TreeListDevexpress.GetStateImage
|
||||
Dim Column_Config_ID As DevExpress.XtraTreeList.Columns.TreeListColumn = TreeListDevexpress.Columns("NODE_CONFIG_ID")
|
||||
Dim configid = e.Node.GetDisplayText(Column_Config_ID)
|
||||
@@ -205,7 +356,9 @@ Public Class frmNodeNavigation
|
||||
FAU_AD_SERVER = ""
|
||||
FAU_AD_USER = ""
|
||||
FAU_AD_USER_PW = ""
|
||||
|
||||
If IsNothing(DT_ADDING_USERS) Then
|
||||
Load_Adding_users()
|
||||
End If
|
||||
If DT_ADDING_USERS.Rows.Count > 0 Then
|
||||
'Überprüfen ob für diese Entität ein spezifischer windream-User verwendet wird, wenn Dateien abgelegt werden?
|
||||
Dim query1 = From _user In DT_ADDING_USERS.AsEnumerable()
|
||||
@@ -228,11 +381,636 @@ Public Class frmNodeNavigation
|
||||
Next
|
||||
End If
|
||||
sw.Done()
|
||||
' Load_Entity_Data_CONTROLS_RECORDS()
|
||||
Load_Entity_Data_CONTROLS_RECORDS()
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Load_Datafor_Entity: " & ex.StackTrace)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Sub Load_Entity_Data_CONTROLS_RECORDS()
|
||||
Try
|
||||
LOGGER.Debug("START Load_Entity_Data")
|
||||
Dim sw As New SW("Load_Entity_Data")
|
||||
' Me.Cursor = Cursors.WaitCursor
|
||||
RECORD_CHANGED = False
|
||||
RECORD_ID = 0
|
||||
Dim expression As String
|
||||
Dim sql
|
||||
'Dim sql = "SELECT CONTROL_ID, CONTROL_READ_ONLY FROM VWPMO_CONTROL_SCREEN WHERE CTRLTYPE_ID NOT IN (1) AND CONTROL_ENTITY_ID = " & oEntityID
|
||||
DT_CONTROLS_ENTITY = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, "CTRLTYPE_ID NOT IN (1) AND CONTROL_ENTITY_ID = " & oEntityID, "")
|
||||
'ClassDatabase.Return_Datatable(sql, True)
|
||||
|
||||
expression = "CONTROL_READ_ONLY = " & 1
|
||||
Dim CONTROLS_ROW() As DataRow
|
||||
CONTROLS_ROW = DT_CONTROLS_ENTITY.Select(expression)
|
||||
Dim i As Integer
|
||||
' Count the locked controls
|
||||
For i = 0 To CONTROLS_ROW.GetUpperBound(0)
|
||||
COUNT_RO_CONTROLS += 1
|
||||
Next
|
||||
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
|
||||
bbtnitmEditRec.Enabled = False
|
||||
bbtnitmSaveRec.Enabled = False
|
||||
'tsButtonDelete.Enabled = False
|
||||
Else
|
||||
bbtnitmEditRec.Enabled = True
|
||||
bbtnitmSaveRec.Enabled = True
|
||||
' tsButtonDelete.Enabled = True
|
||||
End If
|
||||
|
||||
Dim resultDT_VWPMO_CONSTRUCTOR_FORMS = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
|
||||
Select form
|
||||
Where form.Item("FORM_ID") = oEntityID).Single()
|
||||
|
||||
|
||||
CURRENT_CONSTRUCTOR_DETAIL_ID = resultDT_VWPMO_CONSTRUCTOR_FORMS.Item("GUID")
|
||||
|
||||
SQL_RECORD_AND_FILE_READ_ONLY = resultDT_VWPMO_CONSTRUCTOR_FORMS.Item("SQL_RIGHT_READ_AND_VIEW_ONLY")
|
||||
SQL_DOC_READ_ONLY = resultDT_VWPMO_CONSTRUCTOR_FORMS.Item("SQL_RIGHT_WINDREAM_VIEW")
|
||||
|
||||
|
||||
|
||||
|
||||
expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}'", oEntityID, USER_LANGUAGE)
|
||||
DT_WINDREAM_COLUMNS_GRID = ClassHelper.FILTER_DATATABLE(CURRENT_RESULTLIST_CONFIG, expression, "SEQUENCE")
|
||||
expression = String.Format("oEntityID = {0} AND TYPE_ID = 10 AND LANGUAGE = '{1}'", oEntityID, USER_LANGUAGE)
|
||||
DT_DOCRESULT_DROPDOWN_ITEMS = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS, expression, "SEQUENCE")
|
||||
|
||||
DT_RESULTLIST_OPTIONS = ClassHelper.FILTER_DATATABLE(CURRENT_VARIABLE_CONTROLS, "ENTITY_ID = " & oEntityID, "")
|
||||
expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}' AND COLUMN_VIEW LIKE 'VALUE%'", oEntityID, USER_LANGUAGE)
|
||||
DT_RESULTLIST_VARIABLE_VALUE = ClassHelper.FILTER_DATATABLE(CURRENT_RESULTLIST_CONFIG, expression, "SEQUENCE")
|
||||
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
|
||||
Select form
|
||||
Where form.Item("GUID") = oEntityID).Single()
|
||||
|
||||
|
||||
'sql = String.Format("select * from TBPMO_RIGHT_USER WHERE USER_ID = {0} AND oEntityID = {1}", USER_GUID, oEntityID)
|
||||
DT_RIGHTS_USER = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_RIGHT_USER, "ENTITY_ID = " & oEntityID, "")
|
||||
expression = String.Format("")
|
||||
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})", oEntityID, USER_GUID)
|
||||
DT_RIGHTS_GROUP = ClassDatabase.Return_Datatable(sql, True)
|
||||
sql = String.Format("SELECT VIEW_ID FROM TBPMO_USER_CONSTR_VIEW_TYPE WHERE CONSTRUCTOR_DETAIL_ID = {0} AND [ENTITY_ID] = {1} AND USER_ID = {2}", CURRENT_CONSTRUCTOR_DETAIL_ID, oEntityID, USER_GUID)
|
||||
GRID_TYPE_ID = ClassDatabase.Execute_Scalar(sql, True)
|
||||
If IsNothing(GRID_TYPE_ID) Then
|
||||
ClassDatabase.Execute_non_Query("INSERT INTO TBPMO_USER_CONSTR_VIEW_TYPE ([USER_ID],CONSTRUCTOR_DETAIL_ID,[ENTITY_ID]) VALUES (" & USER_GUID & "," & CURRENT_CONSTRUCTOR_DETAIL_ID & "," & oEntityID & ")")
|
||||
GRID_TYPE_ID = 1
|
||||
End If
|
||||
|
||||
SELECTED_RECORD_ID = 0
|
||||
|
||||
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
|
||||
Dim result1 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
|
||||
Select form
|
||||
Where form.Item("FORM_ID") = oEntityID).Single()
|
||||
CURRENT_PARENT_ENTITY_ID = 0
|
||||
|
||||
|
||||
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
|
||||
Dim query = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
|
||||
Select form
|
||||
Where form.Item("FORM_ID") = oEntityID
|
||||
|
||||
Dim QuickViewSQL = query.Single().Item("SQL_QUICK_VIEW")
|
||||
|
||||
CURRENT_ENTITYSQL = Get_Grid_Sql_NODE_NAV(CONSTRUCTORID, oEntityID, CURRENT_CONSTRUCTOR_DETAIL_ID, USER_GUID)
|
||||
' CURRENT_ENTITYSQL = GridSQL
|
||||
'Anzahl der Datensätze
|
||||
ENTITY_RECORD_COUNT = ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBPMO_RECORD where PARENT_RECORD = 0 AND FORM_ID = " & oEntityID, True)
|
||||
|
||||
ClassDOC_SEARCH.Get_DOC_RESULTTABLE(DT_RESULTLIST_OPTIONS, DT_RESULTLIST_VARIABLE_VALUE, DT_WINDREAM_COLUMNS_GRID, oEntityID, RECORD_ID, True, True)
|
||||
|
||||
|
||||
DT_TBPMO_FORM_VIEW = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_FORM_VIEW, "FORM_ID = " & oEntityID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID, "")
|
||||
CURRENT_ENTITYSTRING = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_TITLE")
|
||||
|
||||
FORMVIEW_ID = DT_TBPMO_FORM_VIEW.Rows(0).Item("GUID")
|
||||
|
||||
Load_Controls(FORMVIEW_ID)
|
||||
|
||||
Try
|
||||
Dim async As New ClassAsyncSQL(CURRENT_ENTITYSQL)
|
||||
async.bw.RunWorkerAsync()
|
||||
While async.bw.IsBusy
|
||||
Application.DoEvents()
|
||||
End While
|
||||
CURRENT_DT_ENTITY_RECORDS = async.dt
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error Async EntitySQL", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
|
||||
|
||||
If IsNothing(CURRENT_DT_ENTITY_RECORDS) Then
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in getting Entity-Data - Check logfile")
|
||||
Else
|
||||
CURRENT_DT_ENTITY_RECORDS.TableName = "VWPMO_ENTITY_TABLE" & oEntityID
|
||||
' Dim SQL_AutoValues = "SELECT GUID AS CONTROL_ID, CONNECTION_ID_1 AS CONNECTION_ID, SQL_COMMAND_1 AS SQL_COMMAND FROM TBPMO_CONTROL WHERE CONNECTION_ID_1 <> '' AND SQL_COMMAND_1 <> '' AND FORM_ID = " & oEntityID
|
||||
|
||||
Dim DT_AUTOVALUES = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONNECTION_ID_1 > 0 AND SQL_COMMAND_1 <> '' AND FORM_ID = " & oEntityID, "")
|
||||
|
||||
'Dim DT_AUTOVALUES As DataTable = ClassDatabase.Return_Datatable(SQL_AutoValues, True)
|
||||
CURRENT_SQL_AUTO_VALUES_DT = DT_AUTOVALUES
|
||||
|
||||
If USER_WAN = True Then
|
||||
|
||||
End If
|
||||
Try
|
||||
Dim primaryKey(1) As DataColumn
|
||||
primaryKey(0) = CURRENT_DT_ENTITY_RECORDS.Columns("Record-ID")
|
||||
CURRENT_DT_ENTITY_RECORDS.PrimaryKey = primaryKey
|
||||
Catch ex As Exception
|
||||
LOGGER.Warn("Could not set the primary Key(Record-ID): " & ex.Message)
|
||||
End Try
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CtrlBuilder.WatchRecordChanges = False
|
||||
ClassControlValues.LoadControlValuesList(oEntityID, CtrlBuilder.MasterPanel.Controls)
|
||||
CtrlBuilder.WatchRecordChanges = True
|
||||
|
||||
'Zurücksetzen
|
||||
ENTITY_LOADING_PROCESS = True
|
||||
Dim RecLoaded As Boolean = False
|
||||
|
||||
|
||||
|
||||
End If
|
||||
'Load_Splitter_Layout()
|
||||
sw.Done()
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Load_Entity_Data", ex.Message, ex.StackTrace)
|
||||
Finally
|
||||
'Me.Cursor = Cursors.Default
|
||||
ENTITY_LOADING_PROCESS = True
|
||||
End Try
|
||||
|
||||
|
||||
End Sub
|
||||
Sub Update_Record_Label(RecordId As Integer)
|
||||
Try
|
||||
Dim SQL As String = "SELECT ADDED_WHO, CONVERT(VARCHAR(16),ADDED_WHEN,20) AS ADDED_WHEN, COALESCE(CHANGED_WHO,'') AS CHANGED_WHO, COALESCE(CONVERT(VARCHAR(16),CHANGED_WHEN,20),'') AS CHANGED_WHEN FROM TBPMO_RECORD WHERE GUID = " & RecordId
|
||||
Dim expression = "[Record-ID] = " & RecordId
|
||||
Dim resultDT As DataTable
|
||||
If CtrlCommandUI.IsInsert = True Then
|
||||
resultDT = ClassDatabase.Return_Datatable(SQL)
|
||||
Else
|
||||
resultDT = ClassDatabase.Return_Datatable(SQL, True)
|
||||
End If
|
||||
|
||||
|
||||
If Not IsNothing(resultDT) Then
|
||||
If resultDT.Rows.Count = 0 Then
|
||||
Exit Sub
|
||||
End If
|
||||
bsitmRecordID.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
Dim CreateChangeString = String.Format("Added by '{0}', when: {1}", resultDT.Rows(0).Item(0), resultDT.Rows(0).Item(1))
|
||||
If CtrlCommandUI.IsInsert = False Then
|
||||
CreateChangeString = CreateChangeString + String.Format(" - Changed by '{0}', when: {1}", resultDT.Rows(0).Item(2), resultDT.Rows(0).Item(3))
|
||||
End If
|
||||
|
||||
bsitmRecordID.Caption = String.Format("Record ({0}) - {1}", RecordId, CreateChangeString.ToString)
|
||||
bsitmRecordID.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Async Function Show_Selected_Record_Data(Rec_ID As Integer) As Threading.Tasks.Task
|
||||
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
|
||||
|
||||
Try
|
||||
LOGGER.Debug("Show_Selected_Record_Data: " & Rec_ID.ToString)
|
||||
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
|
||||
Select form
|
||||
Where form.Item("GUID") = oEntityID).Single()
|
||||
|
||||
Update_Status_Label(False, "")
|
||||
LOGGER.Debug("RECORD ID: " & Rec_ID.ToString)
|
||||
'Me.pnlDetails.Visible = True
|
||||
|
||||
SELECTED_RECORD_ID = Rec_ID
|
||||
RECORD_ID = SELECTED_RECORD_ID
|
||||
CURRENT_PARENT_RECORD_ID = 0
|
||||
|
||||
|
||||
RIGHT_CONTROL_CHANGED = False
|
||||
|
||||
ENTITY_RELOAD_AFT_CONTROL_LOAD = False
|
||||
CtrlBuilder.WatchRecordChanges = False
|
||||
If pnlControls.Enabled = False Then pnlControls.Enabled = True
|
||||
ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, 0, oEntityID, CtrlBuilder.AllControls, oEntityID)
|
||||
CtrlBuilder.WatchRecordChanges = True
|
||||
|
||||
Dim sw As New SW("Show Selected RecordData 2")
|
||||
' Laden der Daten bedeutet nicht dass Daten vom Benutzer geändert wurden!
|
||||
RECORD_CHANGED = False
|
||||
'Refresh_Navpane()
|
||||
Update_Record_Label(SELECTED_RECORD_ID)
|
||||
|
||||
|
||||
RECORD_ID = SELECTED_RECORD_ID
|
||||
sw.Done()
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in SelectedRecord_ShowData: ", ex.Message)
|
||||
Finally
|
||||
SplashScreenManager.CloseOverlayForm(oHandle)
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
#Region "Controls"
|
||||
Sub Load_Controls(frmview_id As Integer)
|
||||
Dim sw As New SW("Load_Controls")
|
||||
FORMVIEW_ID = frmview_id
|
||||
oEntityID = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_ID")
|
||||
CURRENT_ENTITY_ID = oEntityID
|
||||
CtrlBuilder = New ClassControlBuilder(pnlControls)
|
||||
CtrlCommandUI = New ClassControlCommandsUI(CtrlBuilder,
|
||||
ContextMenuDetails,
|
||||
AddressOf NewEditAppointment)
|
||||
|
||||
CtrlCommandUI.LoadControls(oEntityID)
|
||||
Lock_RecordControls(True)
|
||||
|
||||
AddHandler CtrlBuilder.OnRecordChanged, AddressOf OnRecordChanged
|
||||
' AddHandler CtrlBuilder.OnMouseHover, AddressOf HandleToolTip
|
||||
sw.Done()
|
||||
End Sub
|
||||
Private Sub OnRecordChanged(sender As Object, e As System.EventArgs)
|
||||
'If ENTITY_LOADING_PROCESS Then
|
||||
' RECORD_CHANGED = True
|
||||
'End If
|
||||
|
||||
End Sub
|
||||
'Private Sub HandleToolTip(sender As Object, e As EventArgs)
|
||||
' Dim control As Windows.Forms.Control = DirectCast(sender, Windows.Forms.Control)
|
||||
' Dim id As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
|
||||
|
||||
' Dim hint = ClassControlValueCache.LoadHint(id)
|
||||
' If Not IsNothing(hint) Then
|
||||
' 'show hint
|
||||
' Console.WriteLine("Showing hint: " & hint)
|
||||
' ToolTipController.ShowHint(hint.ToString, ToolTipLocation.RightCenter)
|
||||
' Else
|
||||
' ToolTipController.HideHint()
|
||||
' End If
|
||||
|
||||
'End Sub
|
||||
Sub Lock_RecordControls(state As Boolean)
|
||||
Lock_Record_Controls_Recursive(state, pnlControls.Controls)
|
||||
End Sub
|
||||
Sub Lock_Record_Controls_Recursive(state As Boolean, controls As System.Windows.Forms.Control.ControlCollection)
|
||||
For Each Control As System.Windows.Forms.Control In controls
|
||||
Dim controlId As Integer = DirectCast(Control.Tag, ClassControlMetadata).Id
|
||||
Select Case Control.GetType()
|
||||
Case GetType(System.Windows.Forms.GroupBox)
|
||||
Lock_Record_Controls_Recursive(state, DirectCast(Control, GroupBox).Controls)
|
||||
Case GetType(System.Windows.Forms.TextBox)
|
||||
Dim txt As TextBox = CType(Control, TextBox)
|
||||
txt.ReadOnly = CHECK_CONTROL_CONFIGURED_RO(controlId, state)
|
||||
Case Else
|
||||
Control.Enabled = Not CHECK_CONTROL_CONFIGURED_RO(controlId, state) 'state
|
||||
|
||||
End Select
|
||||
Next
|
||||
End Sub
|
||||
Private Function CHECK_CONTROL_CONFIGURED_RO(CONTROL_ID As Integer, state As Boolean)
|
||||
Try
|
||||
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
|
||||
Dim result1 = (From form In DT_CONTROLS_ENTITY.AsEnumerable()
|
||||
Select form
|
||||
Where form.Item("CONTROL_ID") = CONTROL_ID).Single()
|
||||
Dim locked = result1.Item("CONTROL_READ_ONLY")
|
||||
If state = False And locked = True Then
|
||||
state = True
|
||||
End If
|
||||
Return state
|
||||
Catch ex As Exception
|
||||
Return state
|
||||
End Try
|
||||
End Function
|
||||
Sub DisableEditMode()
|
||||
If RECORD_ID = 0 Then Exit Sub
|
||||
|
||||
Dim sw As New SW("DisableEditMode")
|
||||
Dim REC = RECORD_ID
|
||||
ClassRecordState.UnlockRecord(SELECTED_RECORD_ID)
|
||||
Dim isinsert As Boolean
|
||||
If IsNothing(CtrlCommandUI) Then
|
||||
isinsert = 0
|
||||
Else
|
||||
isinsert = CtrlCommandUI.IsInsert
|
||||
End If
|
||||
ClassRecordCommands.CHECK_RECORD_FINAL(SELECTED_RECORD_ID, isinsert)
|
||||
|
||||
Lock_RecordControls(True)
|
||||
RECORD_ENABLED = False
|
||||
CURRENT_RECORD_ENABLED = False
|
||||
|
||||
|
||||
Me.bbtnitmSaveRec.Enabled = False
|
||||
|
||||
If RECORD_ENABLED = True Then
|
||||
ClassControlValues.UnloadControlValuesList(SELECTED_RECORD_ID, RECORD_ID, CtrlBuilder.AllControls)
|
||||
End If
|
||||
If Not IsNothing(CtrlCommandUI) Then
|
||||
'If CtrlCommandUI.IsInsert Then
|
||||
' CtrlCommandUI.IsInsert = False
|
||||
'End If
|
||||
If CtrlCommandUI.IsEdit Then
|
||||
CtrlCommandUI.IsEdit = False
|
||||
End If
|
||||
End If
|
||||
If RIGHT_READ_ONLY_DOC = False Then
|
||||
'If ACTIVATE_DOC_SEARCH_ON_EDIT = False Then
|
||||
' Doc_ReadOnlyHandler(False)
|
||||
'Else
|
||||
Doc_ReadOnlyHandler(True)
|
||||
' End If
|
||||
|
||||
End If
|
||||
sw.Done()
|
||||
End Sub
|
||||
Sub CONTROL_HANDLING()
|
||||
Dim sw As New SW("CONTROL_HANDLING")
|
||||
bbtnitmSaveRec.Enabled = True
|
||||
|
||||
|
||||
bbtnitmEditRec.Enabled = True
|
||||
'tsButtonDelete.Enabled = True
|
||||
|
||||
'tslblLocked.Visible = False
|
||||
'tslblFileslocked.Visible = False
|
||||
|
||||
'pnlPositions.Enabled = True
|
||||
|
||||
|
||||
If SQL_RECORD_AND_FILE_READ_ONLY <> "" Or SQL_DOC_READ_ONLY <> "" Then
|
||||
If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
|
||||
|
||||
bbtnitmEditRec.Enabled = False
|
||||
bbtnitmSaveRec.Enabled = False
|
||||
'tsButtonDelete.Enabled = False
|
||||
'tslblLocked.Visible = True
|
||||
'TabFollowUp.PageEnabled = False
|
||||
'tsmiMassChanges.Enabled = False
|
||||
|
||||
End If
|
||||
If RIGHT_READ_ONLY_DOC = True Then
|
||||
' tslblFileslocked.Visible = True
|
||||
Doc_ReadOnlyHandler(False)
|
||||
End If
|
||||
|
||||
Else
|
||||
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
|
||||
If RIGHT_EDIT_R = False Then
|
||||
' tslblLocked.Visible = True
|
||||
bbtnitmEditRec.Enabled = False
|
||||
bbtnitmSaveRec.Enabled = False
|
||||
' tsButtonDelete.Enabled = False
|
||||
' tsmiMassChanges.Enabled = False
|
||||
If RIGHT_ADD_R = False Then
|
||||
bbtnitmSaveRec.Enabled = False
|
||||
End If
|
||||
End If
|
||||
If RIGHT_DELETE_R = False Then
|
||||
' tsButtonDelete.Enabled = False
|
||||
End If
|
||||
'DATEI-RECHTE
|
||||
If RIGHT_READ_ONLY_DOC = True Then
|
||||
' tslblFileslocked.Visible = True
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
sw.Done()
|
||||
End Sub
|
||||
#End Region
|
||||
#Region "Appointments"
|
||||
Sub NewEditAppointment(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
|
||||
Try
|
||||
Dim ctrl As Windows.Forms.Control = sender
|
||||
ClassFunctionCommandsUI.NewEditAppointment(ctrl.Name, oEntityID, RECORD_ID, pnlControls.Controls)
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Sub EditAppointment(ByVal sender As Windows.Forms.Control, FormID As Integer)
|
||||
Try
|
||||
' Load All appointments first
|
||||
frmCalendar.TBPMO_RESOURCESTableAdapter.Fill(frmCalendar.DD_DMSDataSetCalendar.TBPMO_RESOURCES)
|
||||
frmCalendar.TBPMO_APPOINTMENTSTableAdapter.Fill(frmCalendar.DD_DMSDataSetCalendar.TBPMO_APPOINTMENTS)
|
||||
|
||||
Dim apt As Appointment = frmCalendar.SchedulerStorage1.Appointments.Items.Find(AddressOf FindAppointment)
|
||||
If apt IsNot Nothing Then
|
||||
frmCalendar.SchedulerControl1.ShowEditAppointmentForm(apt)
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Function FindAppointment(ByVal apt As Appointment) As Boolean
|
||||
Return Convert.ToInt32(apt.CustomFields("RecordID")) = SELECTED_RECORD_ID
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
Sub Doc_ReadOnlyHandler(state As Boolean)
|
||||
Dim sw As New SW("Doc_ReadOnlyHandler")
|
||||
If state = False Then
|
||||
GridControlDocSearch.ContextMenuStrip = cmsResultFilesBasic
|
||||
'tslblDocViewLocked.Visible = True
|
||||
ElseIf state = True Then
|
||||
GridControlDocSearch.ContextMenuStrip = ContextMenuStripResultFiles
|
||||
' tslblDocViewLocked.Visible = False
|
||||
End If
|
||||
sw.Done()
|
||||
End Sub
|
||||
Private Sub TreeListDevexpress_ColumnFilterChanged_1(sender As Object, e As EventArgs) Handles TreeListDevexpress.ColumnFilterChanged
|
||||
'oFilterActive = True
|
||||
End Sub
|
||||
Private Sub LoadRecord(pRecord As Integer)
|
||||
Try
|
||||
CURRENT_RECORD_ID = pRecord
|
||||
CURRENT_SEARCH_TYPE = "RECORD"
|
||||
|
||||
|
||||
'Wird jetzt bei BeforeRowChange überprüft
|
||||
|
||||
DisableEditMode()
|
||||
|
||||
' muss vor show selected record data kommen,
|
||||
' sodass die datasource für die angehakten werte existiert (checked list box)
|
||||
CtrlBuilder.WatchRecordChanges = False
|
||||
|
||||
ClassControlValues.LoadControlValuesListWithPlaceholders(CURRENT_ENTITY_ID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, oEntityID)
|
||||
CtrlBuilder.WatchRecordChanges = True
|
||||
If CURRENT_RECORD_ID > 0 Then
|
||||
Show_Selected_Record_Data(CURRENT_RECORD_ID)
|
||||
End If
|
||||
|
||||
|
||||
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, oEntityID)
|
||||
CONTROL_HANDLING()
|
||||
|
||||
|
||||
|
||||
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
|
||||
bbtnitmEditRec.Enabled = False
|
||||
bbtnitmSaveRec.Enabled = False
|
||||
'tsButtonDelete.Enabled = False
|
||||
Else
|
||||
' bbtnitmEditRec.Enabled = True
|
||||
End If
|
||||
|
||||
End If
|
||||
If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
|
||||
' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
Else
|
||||
' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
End If
|
||||
|
||||
'tsButtonAdd.Enabled = False
|
||||
'MsgBox(SplitContainerFORM.Collapsed)
|
||||
'MsgBox(SplitContainerMain.Collapsed)
|
||||
'MsgBox(SplitContainerTop.Collapsed)
|
||||
|
||||
|
||||
|
||||
|
||||
End If
|
||||
'Liste der geänderten Control Values leeren
|
||||
CtrlBuilder.ControlsChanged.Clear()
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error:", ex.Message & vbNewLine & ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub DateiÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiÖffnenToolStripMenuItem.Click
|
||||
|
||||
End Sub
|
||||
'''' <summary>
|
||||
'''' Fragt den Benutzer beim Datensatzwechsel, ob Änderungen gespeichert werden sollen. Gibt False zurück, wenn Mussfelder ausgefüllt werden müssen, ansonsten True.
|
||||
'''' </summary>
|
||||
'Private Function TrySave_Automatic() As Boolean
|
||||
' Try
|
||||
' EDIT_STATE = EditState.None
|
||||
' 'Update_Status_Label(False)
|
||||
|
||||
' If RECORD_CHANGED = True Then
|
||||
' Dim ShouldSave As DialogResult
|
||||
' If USER_LANGUAGE = "de-DE" Then
|
||||
' ShouldSave = MessageBox.Show("Sie haben ungespeicherte Änderungen. Wollen Sie diese speichern?", "Ungespeicherte Änderungen", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
' Else
|
||||
' ShouldSave = MessageBox.Show("There are unsaved changes. Would You like to save?", "Unsaved changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
' End If
|
||||
|
||||
' ' Änderungen sollen gespeichert werden
|
||||
' If ShouldSave = DialogResult.Yes Then
|
||||
|
||||
' If CtrlCommandUI.IsInsert Then
|
||||
' EDIT_STATE = EditState.None
|
||||
' End If
|
||||
|
||||
' Dim RequiredControlsFilled As Boolean = TrySave_RequiredControlsFilled()
|
||||
|
||||
' If RequiredControlsFilled = True Then
|
||||
' ' Änderungen sollen gespeichert werden,
|
||||
' ' Muss-Felder sind alle ausgefüllt
|
||||
' TrySave_DoSave()
|
||||
' ' Hinzufügen Button wieder aktivieren
|
||||
' If ADD_RECORDS_CONSTR = False Then
|
||||
' tsButtonAdd.Enabled = False
|
||||
' Else
|
||||
' tsButtonAdd.Enabled = True
|
||||
' End If
|
||||
' If CtrlCommandUI.IsInsert Then
|
||||
' Lock_RecordControls(True)
|
||||
' End If
|
||||
' Return True
|
||||
' Else
|
||||
' ' Änderungen sollen gespeichert werden,
|
||||
' ' aber Muss-Felder sind noch nicht ausgefüllt worden
|
||||
' Return False
|
||||
' End If
|
||||
' Else ' Änderungen sollen nicht gespeichert werden
|
||||
' ' Angelegten Record löschen
|
||||
' If CtrlCommandUI.IsInsert Then
|
||||
' If ClassHelper.DeleteRecord(SELECTED_RECORD_ID, "TrySave - UserdecidedNotToSave - ENTITY-ID: " & CURRENT_ENTITY_ID) = True Then
|
||||
' CtrlCommandUI.IsInsert = False
|
||||
' INSERT_IN_ACTION = False
|
||||
' End If
|
||||
' End If
|
||||
|
||||
' ' Änderungen sollen nicht gespeichert werden
|
||||
' RECORD_CHANGED = False
|
||||
' tsButtonCancel.Visible = False
|
||||
' ' Hinzufügen Button wieder aktivieren
|
||||
' If ADD_RECORDS_CONSTR = False Then
|
||||
' tsButtonAdd.Enabled = False
|
||||
' Else
|
||||
' tsButtonAdd.Enabled = True
|
||||
' End If
|
||||
|
||||
' Return True
|
||||
' End If
|
||||
' Else
|
||||
|
||||
' ' Datensatz wurde nicht verändert
|
||||
' Return True
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
' MessageBox.Show("Error in TrySave_Automatic: " & vbNewLine & ex.Message)
|
||||
' Return False
|
||||
' End Try
|
||||
'End Function
|
||||
Private Sub frmNodeNavigation_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
||||
|
||||
'If TrySave_Automatic() = False Then
|
||||
|
||||
' e.Cancel = True
|
||||
'End If
|
||||
|
||||
'_FormClosing = True
|
||||
|
||||
|
||||
' Save_Grid_Layout()
|
||||
|
||||
ClassWindowLocation.SaveFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "CONSTRUCTOR_MAIN")
|
||||
|
||||
CURRENT_OPEN_CONSTRUCTOR_FORMS.Remove(CONSTRUCTORID)
|
||||
|
||||
' Verhindert, das noch geöffnete Records für immer gelockt sind
|
||||
If Not IsNothing(CURRENT_DOCVIEW) Then
|
||||
Try
|
||||
CURRENT_DOCVIEW.CloseView(CURRENT_DOCVIEW_PATH, 0)
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user