This commit is contained in:
JenneJ
2016-05-19 17:03:19 +02:00
parent 2e5e1310fa
commit 62920ed048

View File

@@ -157,17 +157,20 @@ Public Class frmConstructor_Main
End Sub
Private Sub frmForm_Constructor_Main_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
If RECORD_CHANGED = True Then
Dim ResultMessage As String
Try
ResultMessage = Update_Record_OnChange()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
Me.Cursor = Cursors.Default
' Verhindert den Zeilenwechsel
e.Cancel = True
Exit Sub
End Try
'If RECORD_CHANGED = True Then
' Dim ResultMessage As String
' Try
' ResultMessage = Update_Record_OnChange()
' Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
' Me.Cursor = Cursors.Default
' ' Verhindert den Zeilenwechsel
' e.Cancel = True
' Exit Sub
' End Try
'End If
If TrySave_Automatic() = False Then
e.Cancel = True
End If
@@ -694,16 +697,19 @@ Public Class frmConstructor_Main
End Function
Private Sub grvwGrid_BeforeLeaveRow(sender As Object, e As RowAllowEventArgs) Handles grvwGrid.BeforeLeaveRow
If RECORD_CHANGED = True Then
Dim ResultMessage As String
Try
ResultMessage = Update_Record_OnChange()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
Me.Cursor = Cursors.Default
' Verhindert den Zeilenwechsel
e.Allow = False
End Try
'If RECORD_CHANGED = True Then
' Dim ResultMessage As String
' Try
' ResultMessage = Update_Record_OnChange()
' Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
' Me.Cursor = Cursors.Default
' ' Verhindert den Zeilenwechsel
' e.Allow = False
' End Try
'End If
If TrySave_Automatic() = False Then
e.Allow = False
End If
End Sub
@@ -784,7 +790,10 @@ Public Class frmConstructor_Main
grvwTiles.OptionsBehavior.Editable = Not IsTopFirstRow
End If
End If
Check_Record_Changed()
'Wird jetzt bei BeforeRowChange überprüft
'Check_Record_Changed()
DisableEditMode()
VerknüpfungenAnzeigenToolStripMenuItem.Enabled = True
elapsed = sw.Elapsed.TotalSeconds
@@ -1406,20 +1415,24 @@ Public Class frmConstructor_Main
End If
End If
'Update aller Control-Werte
Dim ResultMessage
' Wenn MussFelder nicht ausgefüllt werden, wird eine exception geworfen und abgefangen
Try
ResultMessage = Update_Record_OnChange()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
''Update aller Control-Werte
'Dim ResultMessage
'' Wenn MussFelder nicht ausgefüllt werden, wird eine exception geworfen und abgefangen
'Try
' ResultMessage = Update_Record_OnChange()
'Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
' Me.Cursor = Cursors.Default
' Return False
'End Try
'Update_Status_Label(True, ResultMessage, EDIT_STATE)
If TrySave_User() = False Then
' Cursor zurücksetzen
Me.Cursor = Cursors.Default
Return False
End Try
End If
Dim recid As Integer
Update_Status_Label(True, ResultMessage, EDIT_STATE)
'If EDIT_STATE = EditState.Update Then
' recid = RECORD_ID
'Else
@@ -1587,18 +1600,19 @@ Public Class frmConstructor_Main
If RECORD_ENABLED = False Then
EnableEditMode()
Else
If RECORD_CHANGED = True Then
Dim ResultMessage As String
Try
ResultMessage = Update_Record_OnChange()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
Me.Cursor = Cursors.Default
Exit Sub
End Try
'If RECORD_CHANGED = True Then
' Dim ResultMessage As String
' Try
' ResultMessage = Update_Record_OnChange()
' Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
' Me.Cursor = Cursors.Default
' Exit Sub
' End Try
'End If
If TrySave_User() = True Then
DisableEditMode()
End If
DisableEditMode()
End If
End Sub
@@ -2353,7 +2367,6 @@ Public Class frmConstructor_Main
Next
End Sub
Private Sub Check_Record_Changed()
If EDIT_STATE <> EditState.None Then
Update_Status_Label(False, "")
@@ -2376,7 +2389,8 @@ Public Class frmConstructor_Main
'CtrlCommandUI.IsInsert = False
End If
Try
Update_Record_OnChange()
Dim ResultMessage = Update_Record_OnChange()
Update_Status_Label(True, ResultMessage)
Catch ex As Exception
MsgBox("Error in Save Record Changes: " & vbNewLine & ex.Message, MsgBoxStyle.Exclamation)
End Try
@@ -2387,15 +2401,15 @@ Public Class frmConstructor_Main
ClassDatabase.Execute_non_Query(del, True)
End If
Dim ResultMessage
' Wenn MussFelder nicht ausgefüllt werden, wird eine exception geworfen und abgefangen
Try
ResultMessage = Update_Record_OnChange()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
Me.Cursor = Cursors.Default
Exit Sub
End Try
'Dim ResultMessage
'' Wenn MussFelder nicht ausgefüllt werden, wird eine exception geworfen und abgefangen
'Try
' ResultMessage = Update_Record_OnChange()
'Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
' Me.Cursor = Cursors.Default
' Exit Sub
'End Try
End If
CtrlCommandUI.IsInsert = False
@@ -2987,6 +3001,7 @@ Public Class frmConstructor_Main
Dim ResultMessage = CtrlCommandUI.SaveRecord(SELECTED_RECORD_ID, ENTITY_ID, PARENT_RECORDID)
'Jetzt die für die Entität notwendigen Prroceduren ausführen
Customer_Run_Procedures()
RECORD_CHANGED = False
Return ResultMessage
@@ -4877,7 +4892,6 @@ Public Class frmConstructor_Main
msg = "The Parent-Record was changed successful!"
End If
MsgBox(msg, MsgBoxStyle.Information)
Check_Record_Changed()
'Load_Data_for_TreeView()
btnRelinkParentID.BackColor = Color.Lime
btnRelinkParentID.FlatAppearance.BorderColor = Color.Lime
@@ -5122,4 +5136,136 @@ Public Class frmConstructor_Main
End If
End Sub
#Region "TrySave Funktionen"
Public Function TrySave_RequiredControlsFilled() As Boolean
Dim missingValues As New List(Of String)
missingValues = ClassControlValues.CheckRequiredControlValues(CtrlBuilder.MasterPanel.Controls)
If missingValues.Count > 0 Then
Dim RequiredControlNames = String.Join(vbNewLine, missingValues)
If (USER_LANGUAGE = "de-DE") Then
Dim message = String.Format("Die folgenden Steuerelemente müssen ausgefüllt sein: {0}{1}", vbNewLine, RequiredControlNames)
MessageBox.Show(message, "Muss-Felder ausfüllen", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
Dim message = String.Format("The following controls must be filled with values: {0}{1}", vbNewLine, RequiredControlNames)
MessageBox.Show(message, "Fill Required Controls", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
Focus_Control(missingValues.First())
' Muss-Felder sind noch nicht ausgefüllt worden
Return False
Else
' Muss-Felder sind alle ausgefüllt
Return True
End If
End Function
''' <summary>
''' Überprüft beim manuellen Speichern, ob Datensatz verändert wurde und
''' ob alle Muss-Felder ausgefüllt wurden
''' </summary>
''' <returns>
''' Gibt False zurück, wenn nicht alle Muss-Felder gefüllt wurde,
''' ansonsten True
''' </returns>
Public Function TrySave_User() As Boolean
Try
EDIT_STATE = EditState.None
'Update_Status_Label(False)
If RECORD_CHANGED = False Then
' Datensatz wurde nicht verändert
Return True
End If
Dim RequiredControlsFilled As Boolean = TrySave_RequiredControlsFilled()
If RequiredControlsFilled = True Then
TrySave_DoSave()
Return True
Else
Return False
End If
Catch ex As Exception
MessageBox.Show("Error in TrySave_User: " & vbNewLine & ex.Message)
Return False
End Try
End Function
Public Sub TrySave_DoSave()
' Record Speichern
Dim ResultMessage = CtrlCommandUI.SaveRecord(SELECTED_RECORD_ID, ENTITY_ID, PARENT_RECORDID)
' Status anzeigen
Update_Status_Label(True, ResultMessage)
'Jetzt die für die Entität notwendigen Prroceduren ausführen
Customer_Run_Procedures()
' RECORD_CHANGED zurücksetzen
RECORD_CHANGED = False
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>
Public 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
If ShouldSave = DialogResult.Yes Then
If CtrlCommandUI.IsInsert Then
EDIT_STATE = EditState.None
Lock_RecordControls(True)
End If
Dim RequiredControlsFilled As Boolean = TrySave_RequiredControlsFilled()
If RequiredControlsFilled = True Then
' Änderungen sollen gespeichert werden,
' Muss-Felder sind alle ausgefüllt
TrySave_DoSave()
Return True
Else
' Änderungen sollen gespeichert werden,
' aber Muss-Felder sind noch nicht ausgefüllt worden
Return False
End If
Else
' Angelegten Record löschen
If CtrlCommandUI.IsInsert Then
Dim DeleteRecordSQL = String.Format("EXEC [dbo].[PRPMO_DELETE_RECORD] {0}", SELECTED_RECORD_ID)
ClassDatabase.Execute_non_Query(DeleteRecordSQL, True)
End If
' Änderungen sollen nicht gespeichert werden
RECORD_CHANGED = False
tsButtonCancel.Visible = False
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
#End Region
End Class