This commit is contained in:
Digital Data - Marlon Schreiber 2017-10-26 17:24:35 +02:00
parent 0addb3a1e8
commit 8a9ce6726a
6 changed files with 117 additions and 64 deletions

View File

@ -378,8 +378,8 @@ Public Class ClassControlBuilder
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> ctrlvalID is Nothing - Attention.....", False, False)
If CURRENT_RECORD_ID <> 0 Then
If ClassControlCommandsUI.InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, value, CURRENT_ENTITY_ID) = False Then
ClassLogger.Add(String.Format(" >> ClassControlCommandsUI.InsertControlValue (1) was not successfull - ControlID: {0},RecordID: {1},value: {2}'", CONTROL_ID, CURRENT_RECORD_ID, value), False)
If ClassControlCommandsUI.CreateControlProcedure(CONTROL_ID, CURRENT_RECORD_ID, value, CURRENT_ENTITY_ID) = 0 Then
ClassLogger.Add(String.Format(" >> ClassControlCommandsUI.CreateControlProcedure (1) was not successfull - ControlID: {0},RecordID: {1},value: {2}'", CONTROL_ID, CURRENT_RECORD_ID, value), False)
Else
ControlsChanged.Remove(CONTROL_ID)
End If
@ -438,19 +438,14 @@ Public Class ClassControlBuilder
End If
Else
If ClassControlCommandsUI.InsertControlValue(dependingControlId, CURRENT_RECORD_ID, dateValue, CURRENT_ENTITY_ID) = True Then
If ClassControlCommandsUI.CreateControlProcedure(dependingControlId, CURRENT_RECORD_ID, dateValue, CURRENT_ENTITY_ID) = 1 Then
ControlsChanged.Remove(dependingControlId)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue (DateEdit)!", False)
Else
ClassLogger.Add(String.Format(" >> ClassControlCommandsUI.InsertControlValue (DateEdit) was not successfull - ControlID: {0},RecordID: {1},value: {2}'", CONTROL_ID, CURRENT_RECORD_ID, dateValue), False)
End If
'Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", dependingControlId, CURRENT_RECORD_ID, dateValue, USER_USERNAME)
'If ClassDatabase.Execute_non_Query(ins) = True Then
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue '" & ins & "'")
'Else
' ClassLogger.Add(" >> Check Insert depending control value as it was nothing and Insert was not successful- Insert-Command '" & ins & "'")
'End If
End If
Catch ex As Exception
@ -511,18 +506,13 @@ Public Class ClassControlBuilder
'End If
Else
If ClassControlCommandsUI.InsertControlValue(dependingControlId, CURRENT_RECORD_ID, value1, CURRENT_ENTITY_ID) = True Then
If ClassControlCommandsUI.CreateControlProcedure(dependingControlId, CURRENT_RECORD_ID, value1, CURRENT_ENTITY_ID) = 1 Then
ControlsChanged.Remove(dependingControlId)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue (TextBox)!", False)
Else
ClassLogger.Add(String.Format(" >> ClassControlCommandsUI.InsertControlValue (TextBox) was not successfull - ControlID: {0},RecordID: {1},value: {2}'", CONTROL_ID, CURRENT_RECORD_ID, value1), False)
End If
'Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", dependingControlId, CURRENT_RECORD_ID, value1, USER_USERNAME)
'If ClassDatabase.Execute_non_Query(ins) = True Then
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue '" & ins & "'")
'Else
' ClassLogger.Add(" >> Check Insert depending control value as it was nothing and Insert was not successful- Insert-Command '" & ins & "'")
'End If
End If
Catch ex As Exception

View File

@ -1,7 +1,7 @@
Imports DD_Record_Organizer.ClassDatabase
Imports DD_Record_Organizer.ClassControlBuilder
Imports DD_LIB_Standards
Imports System.Data.SqlClient
Public Class ClassControlCommandsUI
Private _CtrlBuilder As ClassControlBuilder
@ -333,13 +333,17 @@ Public Class ClassControlCommandsUI
Try
Dim ADDED_WHO As String = USER_USERNAME
If LogErrorsOnly = False Then ClassLogger.Add(" >> (SaveRecord) Update RecordID: " & RecordID, False)
UpdateAllControls(FormID, RecordID, _CtrlBuilder.AllControls)
Return "Datensatz aktualisiert - " & Now
If UpdateAllControls(FormID, RecordID, _CtrlBuilder.AllControls) = True Then
Return "Datensatz aktualisiert - " & Now
Else
Return "ERROR"
End If
'End If
Catch ex As Exception
MsgBox("Unexpected Error in SaveRecord: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
Private Sub InsertAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
@ -369,7 +373,7 @@ Public Class ClassControlCommandsUI
InsertAllControls(FormID, RecordID, DirectCast(ctrl, GroupBox).Controls)
End If
Else
InsertControlValue(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
CreateControlProcedure(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
End If
Next
End Sub
@ -481,8 +485,9 @@ Public Class ClassControlCommandsUI
End Try
End Sub
Private Sub UpdateAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
Private Function UpdateAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
Try
Dim _error As Boolean = False
Dim sw As New SW("UpdateAllControls")
Dim del = String.Format("DELETE FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE UPPER(ADDED_WHO) = '{0}'", USER_USERNAME.ToUpper)
ClassDatabase.Execute_non_Query(del)
@ -539,7 +544,9 @@ Public Class ClassControlCommandsUI
Continue For
End If
If CONTROL_VALUE <> "" Then
InsertControlValue(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
If CreateControlProcedure(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID) = 0 Then
_error = True
End If
End If
End If
Else ' Update Control
@ -572,13 +579,18 @@ Public Class ClassControlCommandsUI
Next
sw.Done()
If _error = True Then
Return False
Else
Return True
End If
Catch ex As Exception
MsgBox("Unexpected Error in UpdateAllControls: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Sub
End Function
Public Shared Sub UpdateMultipleValues(ControlId As Integer, RecordId As Integer, value As String)
Try
@ -608,11 +620,8 @@ Public Class ClassControlCommandsUI
If Not _addValue = "" Then
Dim converted_value = Check_and_Format_Value(ControlId, RecordId, _addValue)
If Not IsNothing(converted_value) Then
ClassControlCommandsUI.InsertControlValue(ControlId, RecordId, converted_value, CURRENT_ENTITY_ID)
ClassControlCommandsUI.CreateControlProcedure(ControlId, RecordId, converted_value, CURRENT_ENTITY_ID)
'Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE,ADDED_WHO) VALUES({0}, {1}, '{2}','{3}')", ControlId, RecordId, converted_value, USER_USERNAME)
'ClassDatabase.Execute_non_Query(ins)
'ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(CURRENT_ENTITY_ID, ControlId, RecordId, converted_value)
End If
End If
Next
@ -831,6 +840,7 @@ Public Class ClassControlCommandsUI
Dim oDate = ClassHelper.Convert_to_Database_Date(Value)
Value = oDate.ToString()
End Select
Value = Value.Replace("'", "´")
Return Value
Catch ex As Exception
MsgBox("Unexpected Error in Check_and_Format_Value: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
@ -838,7 +848,39 @@ Public Class ClassControlCommandsUI
Return Nothing
End Try
End Function
Public Shared Function InsertControlValue(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
Public Shared Function CreateControlProcedure(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
Try
Dim _result As Integer
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)
If Not IsNothing(converted_value) Then
Dim connection As New SqlConnection
connection.ConnectionString = MyConnectionString
Using cmd As New SqlCommand("PRPMO_CREATE_CONTROL_VALUE", connection)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pRECORD_ID", RecordID)
cmd.Parameters.AddWithValue("@pCONTROL_ID", ControlID)
cmd.Parameters.AddWithValue("@pVALUE", converted_value)
cmd.Parameters.AddWithValue("@pADDED_WHO", USER_USERNAME)
cmd.Parameters.Add("@pRESULT", SqlDbType.Int)
cmd.Parameters("@pRESULT").Direction = ParameterDirection.Output
connection.Open()
cmd.ExecuteNonQuery()
connection.Close()
_result = cmd.Parameters("@pRESULT").Value
If _result = 1 And clsDatabase.DB_PROXY_INITIALIZED = True Then
ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(ENTITY_ID, ControlID, RecordID, converted_value)
End If
Return _result
End Using
Else
_result = 0
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Error", "Error in CreateControlProcedure: ", ex.Message)
Return 0
End Try
End Function
Public Shared Function InsertControlValueOld(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
Try
Dim AddedWho = USER_USERNAME
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)

View File

@ -164,6 +164,24 @@ Public Class ClassProxy
Return False
End If
End Function
Public Shared Function PRPROXY_CONTROL_VALUE_RENEW(RecordID As Integer)
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False
End If
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
"EXEC @return_value = [dbo].[PRPROXY_CONTROL_VALUE_RENEW] {0}" & vbNewLine &
"SELECT 'Return Value' = @return_value", RecordID)
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
If Not IsNothing(Result) Then
If Result.Rows(0).Item(0) = 0 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Public Shared Function IS_PROXY_BUSY()
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
Return False

View File

@ -1,4 +1,5 @@
Imports System.Data.SqlClient
Imports DD_LIB_Standards
Public Class ClassRecordCommands
Public Shared Function CreateRecordProcedure(formId As Integer)
@ -20,7 +21,9 @@ Public Class ClassRecordCommands
connection.Close()
Dim GUID As Integer = cmd.Parameters("@pRESULT").Value
If GUID > 0 And clsDatabase.DB_PROXY_INITIALIZED = True Then
ClassProxy.PRPROXY_CONTROL_VALUE_RENEW(GUID)
End If
Return GUID
End Using
Catch ex As Exception

View File

@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.4.9.4")>
<Assembly: AssemblyVersion("2.4.9.5")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: NeutralResourcesLanguageAttribute("")>

View File

@ -189,6 +189,7 @@ Public Class frmConstructor_Main
Private IW_COMMENT As String
Private BACKGROUND_HELPER As ClassBackgroundHelper
Private ROW_READ_ONLY As Boolean = False
Private ERROR_WHILE_SAVING As Boolean = False
Public Enum EditState
None
@ -900,17 +901,7 @@ 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
'End If
If TrySave_Automatic() = False Then
e.Allow = False
Else
@ -960,7 +951,7 @@ Public Class frmConstructor_Main
Exit Sub
End If
If NODE_NAVIGATION = True Then
Exit Sub
' Exit Sub
End If
' If NODE_NAVIGATION = False Then
Dim Grid_RecordID = Get_Focused_Row_Cell_Value("Record-ID")
@ -979,7 +970,7 @@ Public Class frmConstructor_Main
CURRENT_RECORD_ID = RECID
CURRENT_SEARCH_TYPE = "RECORD"
If RECID = RECORD_ID And ENTITY_RECORD_COUNT > 1 And _refresh = False Then
If RECID = RECORD_ID And ENTITY_RECORD_COUNT > 1 And _refresh = False And ERROR_WHILE_SAVING = False Then
Exit Sub
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowHandler: RID: " & RECID.ToString & " - " & Now, False)
@ -1696,7 +1687,7 @@ Public Class frmConstructor_Main
Private Sub tsButtonAdd_Click(sender As Object, e As EventArgs) Handles tsButtonAdd.Click
If USER_PERSONIFIED_TEST = True Then
ClassHelper.MSGBOX_Handler("INFO", "Attention", "You are using ADDi in personified mode! Adding records is not allowed!")
ClassHelper.MSGBOX_Handler("INFO", "Attention", "You are using ADDI in personified mode! Adding records is not allowed!")
Exit Sub
End If
'If ClassProxy.IS_PROXY_BUSY = True Then
@ -1749,8 +1740,7 @@ Public Class frmConstructor_Main
' Try
If TCDetails.SelectedTabPage.Text.StartsWith("Pos") = False Then
SELECTED_RECORD_ID = 0
Lock_RecordControls(False)
tsButtonCancel.Visible = True
' Lock_RecordControls(False)
CURRENT_PARENT_ENTITY_ID = PARENT_ENTITYID
' Den Record anlegen, damit wir eine RECORD_ID bekommen
@ -1758,6 +1748,8 @@ Public Class frmConstructor_Main
Dim recordId = ClassRecordCommands.CreateRecordProcedure(ENTITY_ID)
If recordId > 0 Then
Lock_RecordControls(False)
tsButtonCancel.Visible = True
' Die RECORD_ID auslesen und setzen
NEW_RECORD_ID = recordId
CURRENT_RECORD_ID = NEW_RECORD_ID
@ -1790,6 +1782,9 @@ Public Class frmConstructor_Main
tslblLocked.Visible = False
tslblFileslocked.Visible = False
tsButtonAdd.Enabled = False
Else
Me.Cursor = Cursors.Default
MsgBox("Could not create a new record. Please check the log for further informations!", MsgBoxStyle.Critical)
End If
End If
' Catch ex As Exception
@ -1801,6 +1796,9 @@ Public Class frmConstructor_Main
Private Sub tsButtonSave_Click(sender As Object, e As EventArgs) Handles tsButtonSave.Click
Save_Record()
If ERROR_WHILE_SAVING = True Then
Column_Row_Handler()
End If
End Sub
@ -2055,16 +2053,7 @@ 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
'End If
If TrySave_Automatic() = True Then
DisableEditMode()
End If
@ -2845,7 +2834,10 @@ Public Class frmConstructor_Main
End If
Try
Dim ResultMessage = Update_Record_OnChange()
Update_Status_Label(True, ResultMessage)
If ResultMessage <> "ERROR" Then
Update_Status_Label(True, ResultMessage)
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Save Record Changes: " & ex.Message, ex.StackTrace)
End Try
@ -4810,11 +4802,11 @@ Public Class frmConstructor_Main
End If
' Wenn cId = 0, existiert noch kein wert für diese controlId/FormId Kombination
If cId = 0 Then
ClassControlCommandsUI.InsertControlValue(controlid, POS_RECORD_ID, e.Value, POS_ENTITY)
Update_Status_Label(True, "Record was added!", EditState.Insert)
ClassControlCommandsUI.CreateControlProcedure(controlid, POS_RECORD_ID, e.Value, POS_ENTITY)
Update_Status_Label(True, "Value was added!", EditState.Insert)
Else
ClassControlCommandsUI.UpdateControlValue(controlid, POS_RECORD_ID, e.Value, POS_ENTITY)
Update_Status_Label(True, "Record was updated!", EditState.Update)
Update_Status_Label(True, "Value was updated!", EditState.Update)
End If
Else
Update_Status_Label(False)
@ -5295,10 +5287,15 @@ Public Class frmConstructor_Main
End Function
Public Sub TrySave_DoSave()
ERROR_WHILE_SAVING = False
' Record Speichern
Dim ResultMessage = CtrlCommandUI.SaveRecord(SELECTED_RECORD_ID, ENTITY_ID, PARENT_RECORDID)
' Status anzeigen
Update_Status_Label(True, ResultMessage)
If ResultMessage <> "ERROR" Then
' Status anzeigen
Update_Status_Label(True, ResultMessage)
Else
ERROR_WHILE_SAVING = True
End If
'Jetzt die für die Entität notwendigen Prroceduren ausführen
Customer_Run_Procedures()
' RECORD_CHANGED zurücksetzen
@ -6714,6 +6711,9 @@ Public Class frmConstructor_Main
Refresh_Entity_Data()
ElseIf e.KeyCode = Keys.Control And e.KeyCode = Keys.S Then
Save_Record()
If ERROR_WHILE_SAVING = True Then
Column_Row_Handler()
End If
End If
End Sub