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)
' Return True
'End Function
Private Function GET_PARENT_RECORD(LINKED_RECORD As Integer)
Private Function GET_LINKED_RECORD(RECORDID As Integer, ENTITY_ID As Integer)
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)
Dim PARENT_RECORD = ClassDatabase.Execute_Scalar(sql, True)
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)
If ClassDatabase.Execute_Scalar(LINK_EXISTS) = 0 Then
If ClassControlCommandsUI.CreateRecord(CURRENT_FORM_ID) = True Then
Dim New_Record = ClassControlCommandsUI.GetLastRecord
If Not IsNothing(New_Record) Then
'Die neue Record-ID setzen
ClassControlCommandsUI.ConnectRecord(PARENT_RECORD, New_Record, "PARENT-LINK FOR ENTITY " & CURRENT_FORM_ID & "")
Return PARENT_RECORD
'Je nach der Ebene muss evtl die übergeordnete Entität ausgelesen werden
Select Case ACT_EBENE
Case 2
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)
Dim PARENT_RECORD1 = ClassDatabase.Execute_Scalar(sql, True)
If IsNothing(PARENT_RECORD1) 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 0
Return PARENT_RECORD1
End If
Else
Return 0
End If
Else
Return PARENT_RECORD
End If
Case 3
Dim sqlp = "SELECT PARENT_ID FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID
Dim Parent_EntityID = ClassDatabase.Execute_Scalar(sqlp, True)
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 " & _
"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)
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
MsgBox("Error in GET_PARENT_RECORD: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in GET_LINKED_RECORD: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return 0
End Try
End Function
Private Function LoadGrid_Selection()
Try
If GRID_TYPE = GridType.Tiles Then
@ -1942,32 +1962,38 @@ Public Class frmForm_Constructor_Main_2
'Me.pnlDetails.Visible = True
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####
Dim pID As Integer
Dim linkedRecord
' Dim pID As Integer
Select Case ACT_EBENE '#### Hier muss nun der Parent-Record gewählt werden ####
Case 3
Dim parent_ID = GET_PARENT_RECORD(RECORD_ID)
If parent_ID > 0 Then
EBENE2_RECID = RECORD_ID
PARENT_RECORDID = RECORD_ID
CURRENT_PARENTID = RECORD_ID
pID = RECORD_ID
linkedRecord = GET_LINKED_RECORD(RECORD_ID, CURRENT_FORM_ID)
If linkedRecord > 0 Then
Dim sqlp = "SELECT PARENT_ID FROM TBPMO_FORM WHERE GUID = " & CURRENT_FORM_ID
Dim Parent_EntityID = ClassDatabase.Execute_Scalar(sqlp, True)
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
Case 2
Dim parent_ID = GET_PARENT_RECORD(RECORD_ID)
If parent_ID > 0 Then
linkedRecord = linkedRecord(RECORD_ID, CURRENT_FORM_ID)
If linkedRecord > 0 Then
EBENE1_RECID = RECORD_ID
PARENT_RECORDID = RECORD_ID
CURRENT_PARENTID = RECORD_ID
pID = RECORD_ID
End If
Case 1
PARENT_RECORDID = RECORD_ID
EBENE1_RECID = PARENT_RECORDID
CURRENT_PARENTID = PARENT_RECORDID
pID = PARENT_RECORDID
End Select
CURRENT_RECORD_ID = CInt(linkedRecord)
SELECTED_RECORD_ID = CURRENT_RECORD_ID
'#### 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 ####
SELECTED_RECORD_ID = RECORD_ID
CURRENT_RECORD_ID = SELECTED_RECORD_ID