MS01062016_1

This commit is contained in:
SchreiberM
2016-06-01 10:41:28 +02:00
parent a1d125cf21
commit e74b44e1e9
8 changed files with 771 additions and 97 deletions

View File

@@ -14,10 +14,12 @@ Imports System.Runtime.InteropServices
Public Class frmConstructor_Main
Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private DT_ENTITY_DATA As DataTable
Private Const SEE_MASK_INVOKEIDLIST = &HC
Private Const SEE_MASK_NOCLOSEPROCESS = &H40
Private Const SEE_MASK_FLAG_NO_UI = &H400
Public Const SW_SHOW As Short = 5
Private PARENT_SKIPPED As Boolean = False
<DllImport("Shell32", CharSet:=CharSet.Auto, SetLastError:=True)> _
Public Shared Function ShellExecuteEx(ByRef lpExecInfo As SHELLEXECUTEINFO) As Boolean
End Function
@@ -224,6 +226,9 @@ Public Class frmConstructor_Main
DT_VWPMO_CONSTRUCTOR_FORMS = ClassDatabase.Return_Datatable(SQL)
DT_CONSTRUCT_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID)
Dim SEL1 = String.Format("SELECT * FROM TBPMO_FORM WHERE GUID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {0} AND CONSTRUCT_ID = {1})", CURRENT_SCREEN_ID, CONSTRUCTORID)
DT_ENTITY_DATA = ClassDatabase.Return_Datatable(SEL1)
If DT_CONSTRUCT_VIEW.Rows.Count = 1 Then
'Load Input Grid
Me.Text = DT_CONSTRUCT_VIEW.Rows(0).Item("FORM_TITLE")
@@ -545,7 +550,7 @@ Public Class frmConstructor_Main
Public Sub Hide_Grid_Columns()
Try
Dim DefaultHiddenColumns As New List(Of String) From {"Record-ID", "Form-ID", "ROW_COLOR"}
Dim DefaultHiddenColumns As New List(Of String) From {"Record-ID", "Form-ID", "ROW_COLOR", "COLOR"}
Dim QuickHiddenColumns As New List(Of String) From {"AddedWho", "AddedWhen", "ChangedWho", "ChangedWhen"}
If GRID_TYPE = GridType.Carousel Or GRID_TYPE = GridType.Tiles Then
@@ -1334,6 +1339,16 @@ Public Class frmConstructor_Main
'If CtrlCommandUI.IsInsert Then
' Exit Sub
'End If
If PARENT_ID > 0 Then
If PARENT_SKIPPED = True Then
Dim msg = "Achtung es wurde noch kein Parent-Datensatz ausgewählt! Bitte wählen Sie einen Datensatz aus!"
If USER_LANGUAGE <> "de-DE" Then
msg = "Attention: No parent-record was selected! Please choose a parent record!"
End If
MsgBox(msg, MsgBoxStyle.Exclamation)
Exit Sub
End If
End If
Me.Cursor = Cursors.WaitCursor
Try
If TCDetails.SelectedTabPage.Text.StartsWith("Pos") = False Then
@@ -1350,6 +1365,11 @@ Public Class frmConstructor_Main
CURRENT_RECORD_ID = NewRecordId
RECORD_ID = NewRecordId
SELECTED_RECORD_ID = NewRecordId
If PARENT_ID > 0 Then
If ClassControlCommandsUI.ConnectRecord(PARENT_ID, CURRENT_RECORD_ID, "INSERT RECORD") = False Then
MsgBox("Unexpected Error in Connect Record - Please check the logfile and inform the admin!", MsgBoxStyle.Critical)
End If
End If
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls, CURRENT_PARENT_ID, ENTITY_ID)
@@ -1414,17 +1434,7 @@ 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")
' 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
@@ -1806,7 +1816,7 @@ Public Class frmConstructor_Main
Sub Load_Entity_Data(ClickedLevel As Integer)
Try
Dim sw As New SW("Load_Entity_Data")
PARENT_SKIPPED = False
Me.Cursor = Cursors.WaitCursor
RECORD_CHANGED = False
RECORD_ID = 0
@@ -1825,17 +1835,13 @@ Public Class frmConstructor_Main
SQL_RIGHT_READ_AND_VIEW_ONLY = result.Item("SQL_RIGHT_READ_AND_VIEW_ONLY")
SQL_RIGHT_WINDREAM_FORBIDDEN = result.Item("SQL_RIGHT_WINDREAM_VIEW")
'LOAD_DIRECT = ClassDatabase.Execute_Scalar("SELECT LOAD_DIRECT FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID)
'CURRENT_CONSTRUCTOR_DETAIL_ID = ClassDatabase.Execute_Scalar("SELECT GUID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID)
'CONTROL_DOCTYPE_MATCH = ClassDatabase.Execute_Scalar("SELECT CONTROL_DOCTYPE_MATCH FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID)
'SQL_RIGHT_READ_AND_VIEW_ONLY = ClassDatabase.Execute_Scalar("SELECT SQL_RIGHT_READ_AND_VIEW_ONLY FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID)
'SQL_RIGHT_WINDREAM_FORBIDDEN = ClassDatabase.Execute_Scalar("SELECT SQL_RIGHT_WINDREAM_VIEW FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID)
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form
Where form.Item("GUID") = ENTITY_ID).Single()
FORM_TYPE = ClassDatabase.Execute_Scalar("SELECT FORM_TYPE_ID FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID)
IS_SINGLE_RECORD = ClassDatabase.Execute_Scalar("SELECT SINGLE_RECORD FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID)
POS_ENTITY = ClassDatabase.Execute_Scalar("SELECT POS_ENTITY FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID)
FORM_TYPE = ENTITY_ROW.Item("FORM_TYPE_ID")
IS_SINGLE_RECORD = ENTITY_ROW.Item("SINGLE_RECORD")
POS_ENTITY = ENTITY_ROW.Item("POS_ENTITY")
If VIEW_ID_RUNTIME <> -1 Then
GRID_TYPE_ID = VIEW_ID_RUNTIME
Else
@@ -1936,21 +1942,14 @@ Public Class frmConstructor_Main
_ENTITYSQL = _ENTITYSQL.ToString.Replace("@T2.RECORD1_ID", PARENT_RECORDID)
End If
Else
Console.WriteLine("Ebene 1 wurde nicht ausgewählt")
SELECTED_RECORD_ID = 0
PARENT_ID = 0
PARENT_RECORDID = 0
NavPane.Categories.Clear()
tsslblRecord.Text = ""
Update_Status_Label(True, "Entity 1 Jumped over - All Records loaded", EditState.Update)
Update_Status_Label(True, "Entity 1 skipped - All Records loaded", EditState.Update)
PARENT_SKIPPED = True
End If
'tslblEntity3.Visible = False
'Select Case FORM_TYPE
' Case 5
' If GET_GROUP_OR_SINGLE_RECORD(PARENT_RECORDID) = True Then
' EBENE2_RECID = RECORD_ID
' End If
'End Select
Dim result3 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form
@@ -1991,13 +1990,14 @@ Public Class frmConstructor_Main
ClassLogger.Add("Error in Replacing patterns in entity_sql: " & ex.Message)
End Try
Else
Console.WriteLine("Ebene 2 wurde nicht ausgewählt")
SELECTED_RECORD_ID = 0
PARENT_ID = 0
PARENT_RECORDID = 0
NavPane.Categories.Clear()
Update_Status_Label(True, "Entity 2 Jumped over - All Records loaded", EditState.Update)
Update_Status_Label(True, "Entity 2 skipped - All Records loaded", EditState.Update)
tsslblRecord.Text = ""
PARENT_SKIPPED = True
End If
'Select Case FORM_TYPE
' Case 5
@@ -2148,16 +2148,6 @@ Public Class frmConstructor_Main
End If
Load_Templates()
'For Each column As DevExpress.XtraGrid.Columns.GridColumn In grvwGrid.Columns
' column.MinWidth = 100
'Next
' Wenn rows existieren, erste row laden und recordid auslesen
'Dim firstRow As System.Data.DataRowView = GridControlMain.MainView.GetRow(0)
'If Not IsNothing(firstRow) Then
' Dim firstRecordId As Integer = firstRow.Row.Item("Record-ID")
' ClassControlValues.LoadControlValuesList(firstRecordId, PARENT_ID, ENTITY_ID, CtrlBuilder.MasterPanel.Controls)
'End If
' Hinfällig, da hier die Record-ID nicht gebraucht wird
CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesList(ENTITY_ID, CtrlBuilder.MasterPanel.Controls)
@@ -2491,6 +2481,9 @@ Public Class frmConstructor_Main
Private Function GET_LINKED_RECORD(RECORDID As Integer, ENTITY_ID As Integer)
Try
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form
Where form.Item("GUID") = ENTITY_ID).Single()
'Je nach der Ebene muss evtl die übergeordnete Entität ausgelesen werden
Select Case ACT_EBENE
@@ -2511,8 +2504,8 @@ Public Class frmConstructor_Main
Return PARENT_RECORD1
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 sqlp = "SELECT PARENT_ID FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID
Dim Parent_EntityID = ENTITY_ROW.Item("PARENT_ID") '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)
@@ -2617,6 +2610,10 @@ Public Class frmConstructor_Main
' FormID und RecordID immer ausblenden
grvwGrid.Columns.Item("Record-ID").Visible = False
grvwGrid.Columns.Item("Form-ID").Visible = False
grvwGrid.Columns.Item("ROW_COLOR").Visible = False
End If
Catch ex As Exception
MsgBox("Error in HideColumns:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
@@ -2649,6 +2646,10 @@ Public Class frmConstructor_Main
End Sub
Private Sub Show_Selected_Record_Data(Rec_ID As Integer, EntityLoad As Boolean)
Try
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form
Where form.Item("GUID") = ENTITY_ID).Single()
Update_Status_Label(False, "")
If LogErrorsOnly = False Then ClassLogger.Add(" >> GRID_RECORD ID: " & Rec_ID.ToString, False)
'Me.pnlDetails.Visible = True
@@ -2660,9 +2661,7 @@ Public Class frmConstructor_Main
Case 3
linkedRecord = GET_LINKED_RECORD(Rec_ID, ENTITY_ID)
If linkedRecord > 0 Then
Dim sqlp = "SELECT PARENT_ID FROM TBPMO_FORM WHERE GUID = " & ENTITY_ID
Dim Parent_EntityID = ClassDatabase.Execute_Scalar(sqlp, True)
Dim Parent_EntityID = ENTITY_ROW.Item("PARENT_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)
@@ -4794,15 +4793,21 @@ Public Class frmConstructor_Main
Exit Sub
End If
Try
Dim rowCellValue = grvwGrid.GetRowCellValue(e.RowHandle, "COLOR")
Dim rowCellValue = grvwGrid.GetRowCellValue(e.RowHandle, "ROW_COLOR")
If rowCellValue <> "" Then
Dim Color As Color = Color.FromArgb(rowCellValue)
' Dim c As Color = DirectCast(rowCellValue, Color)
e.Appearance.BackColor = Color
Dim ColorRow As Color
Try
ColorRow = Color.FromName(rowCellValue)
Catch ex As Exception
ClassLogger.Add(">> RowBackColor '" & rowCellValue & "'could not be converted from name!", False)
Exit Sub
End Try
'Dim c As Color = DirectCast(rowCellValue, Color)
e.Appearance.BackColor = ColorRow
e.HighPriority = True
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add(">> Unexpected Error in RowStyle: " & ex.Message, False)
End Try
End If
End If
@@ -4868,11 +4873,6 @@ Public Class frmConstructor_Main
End Sub
Sub Load_ParentConnections()
Try
' SELECT COLUMN_NAME1 FROM VWTEMP_cPMO_FORM
'Dim sql = String.Format("SELECT TOP 1 PARENT_ID, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'FORM_TITLE' " & _
' "from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {2} AND SCREEN_ID = {3} AND FORM_ID = {4}", USER_LANGUAGE, CURRENT_SCREEN_ID, CONSTRUCTORID, CURRENT_SCREEN_ID, ENTITY_ID)
'Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, "Parent-Data")
' TODO: LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form