This commit is contained in:
SchreiberM
2015-12-16 15:40:35 +01:00
parent d1f55fae86
commit 11a88d9067

View File

@@ -1795,35 +1795,55 @@ Public Class frmForm_Constructor_Main_2
' Update_Record_Label(CURRENT_RECORD_ID) ' Update_Record_Label(CURRENT_RECORD_ID)
' Return True ' Return True
'End Function 'End Function
Private Function GET_PARENT_RECORD(LINKED_RECORD As Integer) Private Function GET_LINKED_RECORD(RECORDID As Integer, ENTITY_ID As Integer)
Try Try
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}", LINKED_RECORD, CURRENT_FORM_ID)
' Dim sqlRecord 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 = (SELECT PARENT_ID FROM TBPMO_FORM WHERE GUID = {1})", LINKED_RECORD, CURRENT_FORM_ID) 'Je nach der Ebene muss evtl die übergeordnete Entität ausgelesen werden
Dim PARENT_RECORD = ClassDatabase.Execute_Scalar(sql, True) Select Case ACT_EBENE
Dim LINK_EXISTS = String.Format("SELECT COUNT(T.GUID) FROM TBPMO_RECORD_CONNECT T, TBPMO_RECORD T1 WHERE T.RECORD2_ID = T1.GUID AND T.RECORD2_ID = {0} and T1.FORM_ID = {1}", PARENT_RECORD, CURRENT_FORM_ID) Case 2
If ClassDatabase.Execute_Scalar(LINK_EXISTS) = 0 Then 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}", RECORDID, ENTITY_ID)
If ClassControlCommandsUI.CreateRecord(CURRENT_FORM_ID) = True Then Dim PARENT_RECORD1 = ClassDatabase.Execute_Scalar(sql, True)
Dim New_Record = ClassControlCommandsUI.GetLastRecord If IsNothing(PARENT_RECORD1) Then
If Not IsNothing(New_Record) Then Dim New_Record = ClassControlCommandsUI.GetLastRecord
'Die neue Record-ID setzen If Not IsNothing(New_Record) Then
ClassControlCommandsUI.ConnectRecord(PARENT_RECORD, New_Record, "PARENT-LINK FOR ENTITY " & CURRENT_FORM_ID & "") If LogErrorsOnly = False Then ClassLogger.Add(">> Parent-Record Ebene 1 wird neu angelegt...", False)
Return PARENT_RECORD 'Die neue Record-ID setzen
ClassControlCommandsUI.ConnectRecord(New_Record, RECORDID, "PARENT-LINK FOR ENTITY " & ENTITY_ID & "")
Return New_Record
Else
Return 0
End If
Else Else
Return 0 Return PARENT_RECORD1
End If End If
Else Case 3
Return 0 Dim sqlp = "SELECT PARENT_ID FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID
End If Dim Parent_EntityID = ClassDatabase.Execute_Scalar(sqlp, True)
Else 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 = (SELECT T.RECORD2_ID FROM TBPMO_RECORD_CONNECT T, TBPMO_RECORD T1 WHERE " & _
Return PARENT_RECORD "T.RECORD2_ID = T1.GUID AND T.RECORD1_ID = {0} and T1.FORM_ID = {1}) and T1.FORM_ID = {2}", RECORDID, Parent_EntityID, ENTITY_ID)
End If Dim PARENT_RECORD2 = ClassDatabase.Execute_Scalar(sql, True)
If IsNothing(PARENT_RECORD2) Then
Dim New_Record = ClassControlCommandsUI.GetLastRecord
If Not IsNothing(New_Record) Then
If LogErrorsOnly = False Then ClassLogger.Add(">> Parent-Record Ebene 1 wird neu angelegt...", False)
'Die neue Record-ID setzen
ClassControlCommandsUI.ConnectRecord(New_Record, RECORDID, "PARENT-LINK FOR ENTITY " & ENTITY_ID & "")
Return New_Record
Else
Return 0
End If
Else
Return PARENT_RECORD2
End If
End Select
Catch ex As Exception Catch ex As Exception
MsgBox("Error in GET_PARENT_RECORD: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) MsgBox("Error in GET_LINKED_RECORD: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return 0 Return 0
End Try End Try
End Function End Function
Private Function LoadGrid_Selection() Private Function LoadGrid_Selection()
Try Try
If GRID_TYPE = GridType.Tiles Then If GRID_TYPE = GridType.Tiles Then
@@ -1942,32 +1962,38 @@ Public Class frmForm_Constructor_Main_2
'Me.pnlDetails.Visible = True 'Me.pnlDetails.Visible = True
ZeigeRecordLogsToolStripMenuItem.Enabled = False ZeigeRecordLogsToolStripMenuItem.Enabled = False
If CURRENT_FORM_TYPE = 5 And EntityLoad = False Or IS_SINGLE_RECORD = True And EntityLoad = False Then '#### Es sind untergeordnete Entitäten geöffnet#### If CURRENT_FORM_TYPE = 5 And EntityLoad = False Or IS_SINGLE_RECORD = True And EntityLoad = False Then '#### Es sind untergeordnete Entitäten geöffnet####
Dim pID As Integer Dim linkedRecord
' Dim pID As Integer
Select Case ACT_EBENE '#### Hier muss nun der Parent-Record gewählt werden #### Select Case ACT_EBENE '#### Hier muss nun der Parent-Record gewählt werden ####
Case 3 Case 3
Dim parent_ID = GET_PARENT_RECORD(RECORD_ID) linkedRecord = GET_LINKED_RECORD(RECORD_ID, CURRENT_FORM_ID)
If parent_ID > 0 Then If linkedRecord > 0 Then
EBENE2_RECID = RECORD_ID
PARENT_RECORDID = RECORD_ID Dim sqlp = "SELECT PARENT_ID FROM TBPMO_FORM WHERE GUID = " & CURRENT_FORM_ID
CURRENT_PARENTID = RECORD_ID Dim Parent_EntityID = ClassDatabase.Execute_Scalar(sqlp, True)
pID = RECORD_ID 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}", RECORD_ID, Parent_EntityID)
Dim PARENT_RECORD1 = ClassDatabase.Execute_Scalar(sql, True)
EBENE2_RECID = PARENT_RECORD1
PARENT_RECORDID = PARENT_RECORD1
CURRENT_PARENTID = PARENT_RECORD1
End If End If
Case 2 Case 2
Dim parent_ID = GET_PARENT_RECORD(RECORD_ID) linkedRecord = linkedRecord(RECORD_ID, CURRENT_FORM_ID)
If parent_ID > 0 Then If linkedRecord > 0 Then
EBENE1_RECID = RECORD_ID EBENE1_RECID = RECORD_ID
PARENT_RECORDID = RECORD_ID PARENT_RECORDID = RECORD_ID
CURRENT_PARENTID = RECORD_ID CURRENT_PARENTID = RECORD_ID
pID = RECORD_ID
End If End If
Case 1 Case 1
PARENT_RECORDID = RECORD_ID PARENT_RECORDID = RECORD_ID
EBENE1_RECID = PARENT_RECORDID EBENE1_RECID = PARENT_RECORDID
CURRENT_PARENTID = PARENT_RECORDID CURRENT_PARENTID = PARENT_RECORDID
pID = PARENT_RECORDID
End Select End Select
CURRENT_RECORD_ID = CInt(linkedRecord)
SELECTED_RECORD_ID = CURRENT_RECORD_ID
'#### Den Group or Single_Record holen/anlegen '#### Den Group or Single_Record holen/anlegen
GET_GROUP_OR_SINGLE_RECORD(pID, False) ' GET_GROUP_OR_SINGLE_RECORD(pID, False)
Else '#### Datensatz wird normal geladen #### Else '#### Datensatz wird normal geladen ####
SELECTED_RECORD_ID = RECORD_ID SELECTED_RECORD_ID = RECORD_ID
CURRENT_RECORD_ID = SELECTED_RECORD_ID CURRENT_RECORD_ID = SELECTED_RECORD_ID