This commit is contained in:
Digital Data - Marlon Schreiber
2017-10-25 16:11:46 +02:00
7 changed files with 140 additions and 103 deletions

View File

@@ -942,6 +942,7 @@ Public Class ClassControlBuilder
'AddHandler combo.GotFocus, AddressOf OnComboBoxFocused
AddHandler combo.Enter, AddressOf OnComboBoxFocused
AddHandler combo.SelectedValueChanged, AddressOf OnComboBoxValueChanged
AddHandler combo.TextChanged, AddressOf RecordChanged
'AddHandler combo.TextChanged, AddressOf RecordChanged
'AddHandler combo.GotFocus, AddressOf OnComboBoxFocus

View File

@@ -340,9 +340,24 @@
CURRENT_CONTROL_ID = properties.ID
End If
SQL = $"UPDATE TBPMO_CONTROL SET REQUIRED = {REQUIRED}, READ_ONLY = {READ_ONLY}, SHOW_COLUMN = {SHOW_COLUMN}, FORMAT_TYPE = '{FORMAT_TYPE}', DEFAULT_VALUE = '{DEFAULTVALUE}',
NAME = '{NAME}', SQL_COMMAND_1 = '{SQLCommand}', CHANGED_WHO = '{CHANGED_WHO}', COL_NAME = '{COL_NAME}', MULTILINE = {MULTILINE}, MASTER_DATA_ID = {MASTER_DATA_ID},
STATIC_LIST = '{STATIC_LIST}', SQL_COMMAND_2 = '{SQL_ENABLED_WHEN}', VISIBLE = {VISIBLE}, TREE_VIEW = {TREE_VIEW}, SELECT_ONLY = {SELECT_ONLY}, AUTO_SUGGEST = {AUTO_SUGGEST}
SQL = $"UPDATE TBPMO_CONTROL
SET REQUIRED = {REQUIRED},
READ_ONLY = {READ_ONLY},
SHOW_COLUMN = {SHOW_COLUMN},
FORMAT_TYPE = '{FORMAT_TYPE}',
DEFAULT_VALUE = '{DEFAULTVALUE}',
NAME = '{NAME}',
SQL_COMMAND_1 = '{SQLCommand}',
SQL_COMMAND_2 = '{SQL_ENABLED_WHEN}',
CHANGED_WHO = '{CHANGED_WHO}',
COL_NAME = '{COL_NAME}',
MULTILINE = {MULTILINE},
MASTER_DATA_ID = {MASTER_DATA_ID},
STATIC_LIST = '{STATIC_LIST}',
VISIBLE = {VISIBLE},
TREE_VIEW = {TREE_VIEW},
SELECT_ONLY = {SELECT_ONLY},
AUTO_SUGGEST = {AUTO_SUGGEST}
WHERE GUID = {CURRENT_CONTROL_ID}"
If ClassDatabase.Execute_non_Query(SQL) = True Then
@@ -493,11 +508,6 @@
End If
End If
Return True
Else
Throw New Exception()

View File

@@ -543,7 +543,14 @@ Public Class ClassControlCommandsUI
End If
End If
Else ' Update Control
If TypeOf ctrl Is DevExpress.XtraEditors.DateEdit And (IsNothing(CONTROL_VALUE) Or CONTROL_VALUE = String.Empty) Then
Dim isEmptyValue As Boolean = IsNothing(CONTROL_VALUE) Or CONTROL_VALUE = String.Empty
Dim isDateEdit = TypeOf ctrl Is DevExpress.XtraEditors.DateEdit
Dim isTextBox = TypeOf ctrl Is TextBox
Dim isComboBox = TypeOf ctrl Is CustomComboBox
' Bei bestimmten Controls soll der Wert in CONTROL_VALUES gelöscht werden
' wenn der Wert im Control leer ist
If (isDateEdit Or isTextBox Or isComboBox) And isEmptyValue Then
Dim sql As String = $"DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = {RecordID} AND CONTROL_ID = {CONTROL_ID}"
If ClassDatabase.Execute_non_Query(sql) = True Then

View File

@@ -19,33 +19,7 @@ Public Class ClassDatabase
End Try
End Function
Public Shared Function CreateRecord_New(formId As Integer, Optional UseProxy As Boolean = False)
Dim SQLconnect As New SqlClient.SqlConnection
If UseProxy = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
SQLconnect.ConnectionString = ClassProxy.MyPROXYConnectionString
Else
SQLconnect.ConnectionString = ClassDatabase.connectionString
End If
Using cmd As New SqlCommand("PRPMO_CREATE_RECORD", SQLconnect)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pFORM_ID", formId)
cmd.Parameters.AddWithValue("@pADDED_WHO", Environment.UserName)
cmd.Parameters.Add("@pRESULT", SqlDbType.Int)
cmd.Parameters("@pRESULT").Direction = ParameterDirection.Output
SQLconnect.Open()
cmd.ExecuteNonQuery()
SQLconnect.Close()
Dim GUID As Integer = cmd.Parameters("@pRESULT").Value
Return GUID
End Using
End Function
Public Shared Function GetConnectionString(id As Integer)
Dim connectionString As String = ""

View File

@@ -1,4 +1,34 @@
Public Class ClassRecordCommands
Imports System.Data.SqlClient
Public Class ClassRecordCommands
Public Shared Function CreateRecordProcedure(formId As Integer)
Try
Dim connection As New SqlConnection
connection.ConnectionString = MyConnectionString
Using cmd As New SqlCommand("PRPMO_CREATE_RECORD", connection)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pFORM_ID", formId)
cmd.Parameters.AddWithValue("@pADDED_WHO", Environment.UserName)
cmd.Parameters.Add("@pRESULT", SqlDbType.Int)
cmd.Parameters("@pRESULT").Direction = ParameterDirection.Output
connection.Open()
cmd.ExecuteNonQuery()
connection.Close()
Dim GUID As Integer = cmd.Parameters("@pRESULT").Value
Return GUID
End Using
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Error", "Error in CreateRecordProcedure: ", ex.Message)
Return 0
End Try
End Function
Public Shared Function CreateRecord(EntityID)
Dim SQL = "INSERT INTO TBPMO_RECORD(ADDED_WHO, FORM_ID,RECORD_ENTITY_ID) VALUES ('" & USER_USERNAME & "', " & EntityID & ",4711)"
Return ClassDatabase.Execute_non_Query(SQL) = True

View File

@@ -1748,48 +1748,50 @@ Public Class frmConstructor_Main
Me.Cursor = Cursors.WaitCursor
' Try
If TCDetails.SelectedTabPage.Text.StartsWith("Pos") = False Then
SELECTED_RECORD_ID = 0
Lock_RecordControls(False)
tsButtonCancel.Visible = True
SELECTED_RECORD_ID = 0
Lock_RecordControls(False)
tsButtonCancel.Visible = True
CURRENT_PARENT_ENTITY_ID = PARENT_ENTITYID
' Den Record anlegen, damit wir eine RECORD_ID bekommen
If ClassRecordCommands.CreateRecord(ENTITY_ID) = True Then
CURRENT_PARENT_ENTITY_ID = PARENT_ENTITYID
' Den Record anlegen, damit wir eine RECORD_ID bekommen
Dim recordId = ClassRecordCommands.CreateRecordProcedure(ENTITY_ID)
If recordId > 0 Then
' Die RECORD_ID auslesen und setzen
NEW_RECORD_ID = ClassRecordCommands.GetLastRecord()
NEW_RECORD_ID = recordId
CURRENT_RECORD_ID = NEW_RECORD_ID
RECORD_ID = NEW_RECORD_ID
SELECTED_RECORD_ID = NEW_RECORD_ID
ClassProxy.PRPROXY_RECORD_UPD_INS(ENTITY_ID, SELECTED_RECORD_ID)
If PARENT_ENTITYID > 0 And PARENT_RECORDID > 0 Then
If ClassRecordCommands.ConnectRecord(PARENT_RECORDID, CURRENT_RECORD_ID, "INSERT RECORD") = False Then
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "In Connecting Record - Check the log!")
Else
ClassProxy.PRPROXY_RECORD_CONNECT(PARENT_RECORDID, CURRENT_RECORD_ID)
End If
RECORD_ID = NEW_RECORD_ID
SELECTED_RECORD_ID = NEW_RECORD_ID
ClassProxy.PRPROXY_RECORD_UPD_INS(ENTITY_ID, SELECTED_RECORD_ID)
If PARENT_ENTITYID > 0 And PARENT_RECORDID > 0 Then
If ClassRecordCommands.ConnectRecord(PARENT_RECORDID, CURRENT_RECORD_ID, "INSERT RECORD") = False Then
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "In Connecting Record - Check the log!")
Else
ClassProxy.PRPROXY_RECORD_CONNECT(PARENT_RECORDID, CURRENT_RECORD_ID)
End If
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls, CURRENT_PARENT_ENTITY_ID, ENTITY_ID)
ClassControlValues.Enable_Depending_Controls(ENTITY_ID, RECORD_ID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
' Das StatusLabel aktualisieren
Update_Record_Label(NEW_RECORD_ID)
Doc_ReadOnlyHandler(True)
RUN_WDSEARCH_GRID()
' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden
tsButtonSave.Enabled = True
' Muss aktiviert werden, sonst funktionieren die Combobox Abhängigkeits Events nicht
CURRENT_RECORD_ENABLED = True
' EDIT_STATE muss hier (immer?) Update sein, sonst wird beim Speichern noch ein Datensatz angelegt
EDIT_STATE = EditState.Update
RECORD_CHANGED = True
'tsslblRecord.Text = "Adding record ......"
RIGHT_RECORD_AND_FILE_READ_ONLY = False
tslblLocked.Visible = False
tslblFileslocked.Visible = False
tsButtonAdd.Enabled = False
End If
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls, CURRENT_PARENT_ENTITY_ID, ENTITY_ID)
ClassControlValues.Enable_Depending_Controls(ENTITY_ID, RECORD_ID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
' Das StatusLabel aktualisieren
Update_Record_Label(NEW_RECORD_ID)
Doc_ReadOnlyHandler(True)
RUN_WDSEARCH_GRID()
' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden
tsButtonSave.Enabled = True
' Muss aktiviert werden, sonst funktionieren die Combobox Abhängigkeits Events nicht
CURRENT_RECORD_ENABLED = True
' EDIT_STATE muss hier (immer?) Update sein, sonst wird beim Speichern noch ein Datensatz angelegt
EDIT_STATE = EditState.Update
RECORD_CHANGED = True
'tsslblRecord.Text = "Adding record ......"
RIGHT_RECORD_AND_FILE_READ_ONLY = False
tslblLocked.Visible = False
tslblFileslocked.Visible = False
tsButtonAdd.Enabled = False
End If
End If
' Catch ex As Exception
'ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error tsButtonAdd", ex.Message, ex.StackTrace)
' Finally
@@ -2863,8 +2865,11 @@ Public Class frmConstructor_Main
Dim sql As String = String.Format("SELECT T.RECORD2_ID FROM TBPMO_RECORD_CONNECT T, TBPMO_RECORD T1 WHERE T.RECORD2_ID = T1.GUID AND T.RECORD1_ID = {0} and T1.FORM_ID = {1}", PARENT_RECORD_ID, ENTITY_ID)
Dim GRP_SINGLE_REC = ClassDatabase.Execute_Scalar(sql, True)
If IsNothing(GRP_SINGLE_REC) Then
If ClassRecordCommands.CreateRecord(ENTITY_ID) = True Then
GRP_SINGLE_REC = ClassRecordCommands.GetLastRecord
Dim recordId = ClassRecordCommands.CreateRecordProcedure(ENTITY_ID)
If recordId > 0 Then
GRP_SINGLE_REC = recordId
If Not IsNothing(GRP_SINGLE_REC) Then
'Die neue Record-ID setzen
RECORD_ID = GRP_SINGLE_REC
@@ -4790,18 +4795,17 @@ Public Class frmConstructor_Main
sql = String.Format("SELECT CONTROL_ID FROM VWPMO_VALUES WHERE CONTROL_ID = {0} AND FORM_ID = {1} AND CONTROL_COLUMN = '{2}' AND RECORD_ID = {3}", controlid, POS_ENTITY, column, POS_RECORD_ID)
Dim cId As Integer = ClassDatabase.Execute_Scalar(sql, True)
If IsNothing(POS_RECORD_ID) Or IsDBNull(POS_RECORD_ID) Then
If ClassRecordCommands.CreateRecord(POS_ENTITY) = True Then
Dim recid = ClassRecordCommands.GetLastRecord
If Not IsNothing(recid) Then
'Die neue Record-ID setzen
POS_RECORD_ID = recid
ClassProxy.PRPROXY_RECORD_UPD_INS(POS_ENTITY, POS_RECORD_ID)
If ClassRecordCommands.ConnectRecord(PARENT_RECORDID, POS_RECORD_ID, "POS_LINK for Entity " & POS_ENTITY.ToString) = True Then
ClassProxy.PRPROXY_RECORD_CONNECT(PARENT_RECORDID, POS_RECORD_ID)
End If
Else
MsgBox("Unexpected Error in Creating POS", MsgBoxStyle.Exclamation)
Dim recordId = ClassRecordCommands.CreateRecordProcedure(POS_ENTITY)
If recordId > 0 Then
'Die neue Record-ID setzen
POS_RECORD_ID = recordId
ClassProxy.PRPROXY_RECORD_UPD_INS(POS_ENTITY, POS_RECORD_ID)
If ClassRecordCommands.ConnectRecord(PARENT_RECORDID, POS_RECORD_ID, "POS_LINK for Entity " & POS_ENTITY.ToString) = True Then
ClassProxy.PRPROXY_RECORD_CONNECT(PARENT_RECORDID, POS_RECORD_ID)
End If
Else
MsgBox("Unexpected Error in Creating POS", MsgBoxStyle.Exclamation)
End If
End If
' Wenn cId = 0, existiert noch kein wert für diese controlId/FormId Kombination
@@ -4819,9 +4823,6 @@ Public Class frmConstructor_Main
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in grvwGridPos_CellValueChanged: ", ex.Message)
End Try
End Sub
Private Sub grvwGridPos_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles grvwGridPos.FocusedRowChanged
@@ -6402,13 +6403,15 @@ Public Class frmConstructor_Main
Dim NEWRECORD As Integer
If RECORD_CREATE = True Then
ClassRecordCommands.CreateRecord(ENTITY_ID)
Try
NEWRECORD = ClassRecordCommands.GetLastRecord()
Catch ex As Exception
Dim SQL = "SELECT (MAX(GUID)) FROM TBPMO_RECORD where PARENT_RECORD = 0 AND ADDED_WHO = '" & USER_USERNAME & "'"
NEWRECORD = ClassDatabase.Execute_Scalar(SQL)
End Try
Dim recordId = ClassRecordCommands.CreateRecordProcedure(ENTITY_ID)
If recordId = 0 Then
ClassLogger.Add("Error in ADD_NODE: Could not create Record", True)
ClassHelper.MSGBOX_Handler("ERROR", "Error in ADD_NODE", "Could not create Record")
Exit Sub
Else
NEWRECORD = recordId
End If
End If
'Dim NEWRECORD As Integer = ClassControlCommandsUI.GetLastRecord(ENTITY_ID)

View File

@@ -494,11 +494,17 @@ Public Class frmWD_Import_Doc_Record
If IMPORT_REC_ID = Nothing Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Record is new!", False)
'Den Record inserten
ClassRecordCommands.CreateRecord(PROFILE_ENTITY)
IMPORT_REC_ID = ClassRecordCommands.GetLastRecord()
REC_ADDED = True
If LogErrorsOnly = False Then ClassLogger.Add(" >> New Record-ID: " & IMPORT_REC_ID.ToString, False)
_RecordsAdded += 1
Dim recordId = ClassRecordCommands.CreateRecordProcedure(PROFILE_ENTITY)
If recordId > 0 Then
IMPORT_REC_ID = recordId
REC_ADDED = True
If LogErrorsOnly = False Then ClassLogger.Add(" >> New Record-ID: " & IMPORT_REC_ID.ToString, False)
_RecordsAdded += 1
Else
Throw New Exception("Could not create Record")
End If
Else
ClassLogger.Add(">> ## RECORD already exists - Record-ID: '" & IMPORT_REC_ID.ToString & "' ##", False)
If LogErrorsOnly = True Then ClassLogger.Add(">> Unique SQL: " & SQL_UNIQUE_FILE, False)
@@ -544,10 +550,16 @@ Public Class frmWD_Import_Doc_Record
If IMP_PARENT_REC_ID = Nothing Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> No PARENT_RECORD found!", False)
'Den Record inserten
ClassRecordCommands.CreateRecord(PROFILE_ENTITY)
IMP_PARENT_REC_ID = ClassRecordCommands.GetLastRecord()
If LogErrorsOnly = False Then ClassLogger.Add(" >> New PARENT_RECORD-ID: " & IMP_PARENT_REC_ID.ToString, False)
_RecordsAdded += 1
Dim recordId = ClassRecordCommands.CreateRecordProcedure(PROFILE_ENTITY)
If recordId > 0 Then
IMP_PARENT_REC_ID = recordId
If LogErrorsOnly = False Then ClassLogger.Add(" >> New PARENT_RECORD-ID: " & IMP_PARENT_REC_ID.ToString, False)
_RecordsAdded += 1
Else
Throw New Exception("Could not create Record. Check PRPMO_CREATE_RECORD Procedure.")
End If
Else
ClassLogger.Add(">> ## PARENT_RECORD already exists - PARENT_RECORD-ID: '" & IMP_PARENT_REC_ID.ToString & "' ##", False)
If LogErrorsOnly = True Then ClassLogger.Add(">> parent SQL: " & SQL_PARENT, False)