JJ Arbeit am neuen Constructor Form
This commit is contained in:
@@ -1,6 +1,793 @@
|
||||
Public Class XtraForm2
|
||||
Imports DevExpress.Utils
|
||||
Imports DevExpress.XtraBars.Navigation
|
||||
Imports DevExpress.XtraEditors
|
||||
|
||||
Private Sub NavButton2_ElementClick(sender As Object, e As DevExpress.XtraBars.Navigation.NavElementEventArgs) Handles NavButton2.ElementClick
|
||||
Public Class XtraForm2
|
||||
|
||||
Public CONSTRUCTORID As Integer
|
||||
Public DT_CONSTRUCT_VIEW As DataTable
|
||||
Public EBENE2_PARENT_ID As Integer
|
||||
Public EBENE3_PARENT_ID As Integer
|
||||
Public ACT_EBENE As Integer
|
||||
Public SelectedRecordID As Integer
|
||||
Public PARENT_RECORDID As Integer
|
||||
Public ACT_EBENE_STRING
|
||||
Public EBENE1_ENTITY
|
||||
Public EBENE2_ENTITY
|
||||
Public EBENE3_ENTITY
|
||||
Public EBENE1_COLUMNNAME
|
||||
Public EBENE2_COLUMNNAME
|
||||
Public EBENE3_COLUMNNAME
|
||||
Public EBENE1_RECID
|
||||
Public EBENE2_RECID
|
||||
Public EBENE3_RECID
|
||||
Public EBENE1_GRID_RESULT
|
||||
Public EBENE2_GRID_RESULT
|
||||
Public EBENE3_GRID_RESULT
|
||||
Public act_FormViewID
|
||||
Public DT_SELECTION
|
||||
Public EBENE_SQLRESULT
|
||||
Public EDIT_STATE As EditState = EditState.None
|
||||
|
||||
Public Enum EditState
|
||||
None
|
||||
Insert
|
||||
Update
|
||||
End Enum
|
||||
|
||||
|
||||
Private Sub XtraForm2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
|
||||
CONSTRUCTORID = CURRENT_CONSTRUCTOR_ID
|
||||
DT_CONSTRUCT_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID)
|
||||
|
||||
Load_Tree_View()
|
||||
End Sub
|
||||
|
||||
Public Sub Update_Status(visible As Boolean, Optional text As String = "", Optional state As EditState = EditState.None)
|
||||
tssStatus.Text = text
|
||||
tssStatus.Visible = visible
|
||||
|
||||
Select Case state
|
||||
Case EditState.Insert
|
||||
tssStatus.BackColor = Color.Yellow
|
||||
Case EditState.Update
|
||||
tssStatus.BackColor = Color.LightBlue
|
||||
Case Else
|
||||
tssStatus.BackColor = Color.LightGray
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
|
||||
Sub Load_Tree_View()
|
||||
Try
|
||||
Dim sql As String = "SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE PARENT_ID = 0 AND CONSTRUCT_ID = " & CONSTRUCTORID & " ORDER BY SEQUENCE"
|
||||
Dim dt As DataTable = ClassDatabase.Return_Datatable(sql)
|
||||
Dim GRANDFATHERNODE1 As TreeNode
|
||||
Dim GRANDFATHERNODE2 As TreeNode
|
||||
Dim FATHERNODE As TreeNode
|
||||
If dt Is Nothing Then
|
||||
MsgBox("No Result for Level 1-Entities - Check logfile", MsgBoxStyle.Exclamation)
|
||||
Else
|
||||
If dt.Rows.Count = 1 Then
|
||||
TreeViewLevelSelect.Nodes.Clear()
|
||||
GRANDFATHERNODE1 = TreeViewLevelSelect.Nodes.Add(dt.Rows(0).Item("FORM_TITLE").ToString)
|
||||
GRANDFATHERNODE1.Tag = dt.Rows(0).Item("FORM_ID")
|
||||
'Ebene 2 Entities herausfinden
|
||||
sql = "SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND PARENT_ID = " & GRANDFATHERNODE1.Tag & " ORDER BY SEQUENCE"
|
||||
dt = ClassDatabase.Return_Datatable(sql)
|
||||
If dt Is Nothing Then
|
||||
MsgBox("No Result for Level 2-Entities - Check logfile", MsgBoxStyle.Exclamation)
|
||||
Else
|
||||
If dt.Rows.Count = 0 Then
|
||||
'tslblStatusMain_show(True, "No Result for Level 2-Entities")
|
||||
' MsgBox("Not allowed: No Result for Level 2-Entities! Check Config FormConstructor.", MsgBoxStyle.Exclamation)
|
||||
Else
|
||||
For Each rowentity2 As DataRow In dt.Rows
|
||||
FATHERNODE = GRANDFATHERNODE1.Nodes.Add(rowentity2.Item("FORM_TITLE").ToString)
|
||||
FATHERNODE.Tag = rowentity2.Item("FORM_ID")
|
||||
EBENE2_PARENT_ID = dt.Rows(0).Item("PARENT_ID")
|
||||
'Ebene 3 Entities herausfinden
|
||||
Dim DT3 As DataTable
|
||||
sql = "SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND PARENT_ID = " & FATHERNODE.Tag & " ORDER BY SEQUENCE"
|
||||
DT3 = ClassDatabase.Return_Datatable(sql)
|
||||
If DT3 Is Nothing Then
|
||||
MsgBox("No Result for Level 3-Entities - Check logfile", MsgBoxStyle.Exclamation)
|
||||
Else
|
||||
For Each rowEntity3 As DataRow In DT3.Rows
|
||||
Dim CHILDNODE As TreeNode = FATHERNODE.Nodes.Add(rowEntity3.Item("FORM_TITLE").ToString)
|
||||
CHILDNODE.Tag = rowEntity3.Item("FORM_ID")
|
||||
EBENE3_PARENT_ID = rowEntity3.Item("PARENT_ID")
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
ElseIf dt.Rows.Count = 2 Then
|
||||
TreeViewLevelSelect.Nodes.Clear()
|
||||
GRANDFATHERNODE1 = TreeViewLevelSelect.Nodes.Add(dt.Rows(0).Item("FORM_TITLE").ToString)
|
||||
GRANDFATHERNODE1.Tag = dt.Rows(0).Item("FORM_ID")
|
||||
GRANDFATHERNODE2 = TreeViewLevelSelect.Nodes.Add(dt.Rows(1).Item("FORM_TITLE").ToString)
|
||||
GRANDFATHERNODE2.Tag = dt.Rows(1).Item("FORM_ID")
|
||||
Else
|
||||
MsgBox("More than 2 results #(" & dt.Rows.Count & ") for Level 1-Entities!", MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
TreeViewLevelSelect.ExpandAll()
|
||||
TreeViewLevelSelect.Nodes(0).EnsureVisible()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in Load TreeView Ebene:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Sub Load_Tree_View_Data()
|
||||
ACT_EBENE = 0
|
||||
If Not TreeViewLevelSelect.SelectedNode Is Nothing Then
|
||||
Try
|
||||
Dim selnode As TreeNode = TreeViewLevelSelect.SelectedNode
|
||||
If (selnode.Parent IsNot Nothing) Then
|
||||
If (selnode.Parent.GetType() Is GetType(TreeNode)) Then
|
||||
ACT_EBENE = 2
|
||||
|
||||
Dim pnode As TreeNode = selnode.Parent
|
||||
If (pnode.Parent IsNot Nothing) Then
|
||||
If (selnode.Parent.GetType() Is GetType(TreeNode)) Then
|
||||
ACT_EBENE = 3
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
Else
|
||||
ACT_EBENE = 1
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in Get ACT_EBENE:" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation)
|
||||
End Try
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> Tag (FormID) After Select: " & TreeViewLevelSelect.SelectedNode.Tag.ToString, False)
|
||||
Load_Entity_Data(TreeViewLevelSelect.SelectedNode.Tag)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub Load_Entity_Data(FormId As Integer)
|
||||
Try
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
|
||||
Dim IS_SINGLE_RECORD As Boolean
|
||||
Dim LOAD_DIRECT As Boolean
|
||||
'VerknüpfungenToolStripMenuItem.Enabled = False
|
||||
CURRENT_FORM_TYPE = ClassDatabase.Execute_Scalar("SELECT FORM_TYPE_ID FROM TBPMO_FORM WHERE GUID = " & FormId)
|
||||
IS_SINGLE_RECORD = ClassDatabase.Execute_Scalar("SELECT SINGLE_RECORD FROM TBPMO_FORM WHERE GUID = " & FormId)
|
||||
LOAD_DIRECT = ClassDatabase.Execute_Scalar("SELECT LOAD_DIRECT FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId)
|
||||
SelectedRecordID = 0
|
||||
Dim DT As DataTable
|
||||
Dim sql As String = "SELECT PARENT_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId
|
||||
Dim PARENT_ID = ClassDatabase.Execute_Scalar(sql)
|
||||
If PARENT_ID Is Nothing Then
|
||||
MsgBox("Error in GetParentID for selectedNode - Check Logfile", MsgBoxStyle.Exclamation)
|
||||
Exit Sub
|
||||
End If
|
||||
'dataloaded = False
|
||||
'Abhängig von der Entität die Selektierungs-Daten laden
|
||||
Dim _sql As String
|
||||
Select Case ACT_EBENE
|
||||
Case 1
|
||||
PARENT_RECORDID = 0
|
||||
CURRENT_PARENTID = 0
|
||||
EBENE1_ENTITY = TreeViewLevelSelect.SelectedNode.Text
|
||||
ACT_EBENE_STRING = EBENE1_ENTITY
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> Ebene 1 in TreeView selektiert", False)
|
||||
EBENE2_ENTITY = ""
|
||||
EBENE3_ENTITY = ""
|
||||
'tslblEntity2.Visible = False
|
||||
'tslblEntity3.Visible = False
|
||||
|
||||
EBENE1_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId)
|
||||
EBENE2_COLUMNNAME = ""
|
||||
EBENE3_COLUMNNAME = ""
|
||||
EBENE2_GRID_RESULT = Nothing
|
||||
EBENE3_GRID_RESULT = Nothing
|
||||
_sql = ClassDatabase.Execute_Scalar("SELECT SQL_SELECT_EBENE1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId)
|
||||
|
||||
|
||||
Case 2
|
||||
Dim Level1Select = ClassDatabase.Execute_Scalar("SELECT LEVEL1_SELECT FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId)
|
||||
If CBool(Level1Select) = False And CURRENT_FORM_TYPE <> 5 And EBENE1_RECID = 0 Then
|
||||
MsgBox("Entität '" & TreeViewLevelSelect.SelectedNode.Text & "' kann nicht ohne Auswahl eines Ebene 1 Datensatzes gewählt werden!", MsgBoxStyle.Exclamation)
|
||||
TreeViewLevelSelect.SelectedNode = TreeViewLevelSelect.SelectedNode.Parent
|
||||
Exit Sub
|
||||
End If
|
||||
EBENE2_ENTITY = TreeViewLevelSelect.SelectedNode.Text
|
||||
ACT_EBENE_STRING = EBENE2_ENTITY
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> Ebene 2 in TreeView selektiert", False)
|
||||
EBENE3_ENTITY = ""
|
||||
'Parent-ID setzen
|
||||
If EBENE1_RECID > 0 Then
|
||||
PARENT_RECORDID = EBENE1_RECID
|
||||
CURRENT_PARENTID = EBENE1_RECID
|
||||
End If
|
||||
'tslblEntity3.Visible = False
|
||||
Select Case CURRENT_FORM_TYPE
|
||||
Case 5
|
||||
If GET_GROUP_RECORD(FormId) = True Then
|
||||
EBENE2_RECID = CURRENT_RECORD_ID
|
||||
End If
|
||||
End Select
|
||||
|
||||
EBENE2_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId)
|
||||
|
||||
EBENE3_COLUMNNAME = ""
|
||||
'Wenn bereits ein Record für Ebene 1 gewählt wurde dann einschränken
|
||||
If EBENE1_RECID > 0 Then
|
||||
_sql = ClassDatabase.Execute_Scalar("SELECT SQL_SELECT_EBENE2 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId)
|
||||
_sql = _sql.Replace("@RecordID", EBENE1_RECID)
|
||||
Else
|
||||
_sql = ClassDatabase.Execute_Scalar("SELECT SQL_SELECT_EBENE1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId)
|
||||
End If
|
||||
EBENE2_GRID_RESULT = Nothing
|
||||
EBENE3_GRID_RESULT = Nothing
|
||||
|
||||
Case 3
|
||||
Select Case CURRENT_FORM_TYPE
|
||||
Case 5
|
||||
If GET_GROUP_RECORD(FormId) = True Then
|
||||
EBENE3_RECID = CURRENT_RECORD_ID
|
||||
End If
|
||||
End Select
|
||||
|
||||
If EBENE2_RECID = 0 Then
|
||||
MsgBox("Entität '" & TreeViewLevelSelect.SelectedNode.Text & "' kann nicht ohne Auswahl eines Ebene 1 Datensatzes gewählt werden!", MsgBoxStyle.Exclamation)
|
||||
TreeViewLevelSelect.SelectedNode = TreeViewLevelSelect.SelectedNode.Parent
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
EBENE3_ENTITY = TreeViewLevelSelect.SelectedNode.Text
|
||||
ACT_EBENE_STRING = EBENE3_ENTITY
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> Ebene 3 in TreeView selektiert", False)
|
||||
'Parent-ID setzen
|
||||
If EBENE2_RECID > 0 Then
|
||||
PARENT_RECORDID = EBENE2_RECID
|
||||
CURRENT_PARENTID = EBENE2_RECID
|
||||
End If
|
||||
|
||||
EBENE3_COLUMNNAME = ClassDatabase.Execute_Scalar("SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId)
|
||||
'Wenn bereits ein Record für Ebene 1 gewählt wurde dann eisnchränken
|
||||
If EBENE2_RECID > 0 Then
|
||||
Try
|
||||
_sql = ClassDatabase.Execute_Scalar("SELECT SQL_SELECT_EBENE2 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId, True)
|
||||
_sql = _sql.Replace("@RecordID", EBENE2_RECID)
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
Else
|
||||
MsgBox("Entität kann nicht ohne Auswahl eines Ebene 2 Datensatzes gewählt werden!", MsgBoxStyle.Exclamation)
|
||||
'Grid leeren
|
||||
GridControlSelection.DataSource = Nothing
|
||||
grvwSelection.Columns.Clear()
|
||||
Me.Cursor = Cursors.Default
|
||||
Exit Sub
|
||||
End If
|
||||
EBENE3_GRID_RESULT = Nothing
|
||||
Case 4
|
||||
|
||||
End Select
|
||||
|
||||
CURRENT_FORM_ID = FormId
|
||||
CURRENT_ENTITYSTRING = ACT_EBENE_STRING
|
||||
CURRENT_PARENTID = PARENT_RECORDID
|
||||
act_FormViewID = ClassDatabase.Execute_Scalar("SELECT GUID FROM TBPMO_FORM_VIEW where FORM_ID = " & FormId)
|
||||
'If EDIT_STATE = "none" Then
|
||||
' 'Die Controls der Entität laden
|
||||
' Load_Controls(act_FormViewID)
|
||||
' set_pnlsize()
|
||||
'End If
|
||||
CURRENT_FORMVIEW_ID = act_FormViewID
|
||||
|
||||
'Überprüfen ob windream Dos angezeigt werden sollen?
|
||||
'Check_windream_Show(act_FormViewID)
|
||||
|
||||
|
||||
|
||||
'If windream_Docshow = True Then
|
||||
' Clear_Windream_ResultList()
|
||||
' If WD_ShowEnitityDocs = True Then
|
||||
' RUN_WD_SEARCH("", "ENTITY")
|
||||
' End If
|
||||
'End If
|
||||
|
||||
' Me.pnlDetails.Enabled = False
|
||||
'Me.tsbtnshowWorkflowtasks.Enabled = False
|
||||
'tsbtnRecordAdd.Enabled = True
|
||||
|
||||
|
||||
Select Case CURRENT_FORM_TYPE
|
||||
Case 5
|
||||
'Nur eine Gruppen-Entität: d.h. es wird nur die Dateientab angezeigt
|
||||
Console.WriteLine("OnlyGroupType")
|
||||
|
||||
'TabPageDetails.PageVisible = False
|
||||
'Anzeige_Selected_Entity()
|
||||
'tsbtnRecordAdd.Visible = False
|
||||
'tsbtnRecorddelete.Visible = False
|
||||
'tsbtnRecordSave.Visible = False
|
||||
Case Else
|
||||
'tsbtnRecordAdd.Visible = True
|
||||
'tsbtnRecorddelete.Visible = True
|
||||
'tsbtnRecordSave.Visible = True
|
||||
'TabPageDetails.PageVisible = True
|
||||
Dim Beschreibung = ClassDatabase.Execute_Scalar("SELECT FORM_TITLE FROM TBPMO_FORM_VIEW WHERE GUID = " & act_FormViewID)
|
||||
'TabPageDetails.Text = "Detaileingabe zu " & Beschreibung
|
||||
'Den Spaltennamen für die Selektion laden
|
||||
sql = "SELECT COLUMN_NAME1 FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = " & CONSTRUCTORID & " AND FORM_ID = " & FormId
|
||||
'Jetzt die Datensätze zur Entität laden
|
||||
CURRENT_ENTITYSQL = _sql
|
||||
Dim DTEntity As DataTable = ClassDatabase.Return_Datatable(CURRENT_ENTITYSQL, "LoadEntityData - Get DTEntity")
|
||||
Dim primaryKey(1) As DataColumn
|
||||
primaryKey(0) = DTEntity.Columns("Record-ID")
|
||||
DTEntity.PrimaryKey = primaryKey
|
||||
LoadGrid_Selection(_sql, DTEntity)
|
||||
|
||||
'If LOAD_DIRECT = True Then
|
||||
' Dim sql1 = CURRENT_ENTITYSQL
|
||||
' sql1.Replace("T.*", "TOP 1 [Record-ID]")
|
||||
' Dim id = ClassDatabase.Execute_Scalar(sql1, True)
|
||||
' If Not id Is Nothing Then
|
||||
' If LogErrorsOnly = False Then ClassLogger.Add(">> Load Record directly - RecordID: " & CURRENT_RECORD_ID, False)
|
||||
' Load_Record_Data()
|
||||
' End If
|
||||
'Else
|
||||
|
||||
|
||||
'End If
|
||||
'Überprüfen ob es für diese Entität Wiedervorlagen gibt?
|
||||
'Check_FOLLOWUP_IsConfigured(CURRENT_FORM_ID)
|
||||
End Select
|
||||
|
||||
'Load_Templates()
|
||||
|
||||
Me.Cursor = Cursors.Default
|
||||
'dataloaded = True
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in Load_Entity_Data:" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Function GET_GROUP_RECORD(FORM_ID As Integer)
|
||||
Dim sqlRecord As String = "select guid from TBPMO_RECORD where Form_ID = " & FORM_ID
|
||||
Dim recid = ClassDatabase.Execute_Scalar(sqlRecord, True)
|
||||
If IsNothing(recid) Then
|
||||
If ClassControlCommandsUI.CreateRecord(FORM_ID) = True Then
|
||||
recid = ClassControlCommandsUI.GetLastRecord
|
||||
If IsNothing(recid) Then
|
||||
CURRENT_RECORD_ID = recid
|
||||
ClassControlCommandsUI.ConnectRecord(CURRENT_PARENTID, CURRENT_RECORD_ID, "Group-Entity Link")
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Try
|
||||
CURRENT_RECORD_ID = CInt(recid)
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("Error while getting CURRENT_RECORDID: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End If
|
||||
'Refresh_CreatedChangedRecordByID(CURRENT_RECORD_ID)
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function LoadGrid_Selection(Grid_SQL As String, Datatable_Grid As DataTable)
|
||||
Try
|
||||
DT_SELECTION = Datatable_Grid
|
||||
EBENE_SQLRESULT = Grid_SQL
|
||||
Dim i = EBENE_SQLRESULT.ToLower.IndexOf("from")
|
||||
EBENE_SQLRESULT = EBENE_SQLRESULT.ToLower.Substring(i)
|
||||
' Alle Checkboxen für aktuelle Ansicht heraussuchen
|
||||
Dim sqlcheck As String = "SELECT CONTROL_COLUMN FROM VWPMO_VALUES WHERE CONTROL_TYPE_ID in (10,11) AND FORM_ID = " & CURRENT_FORM_ID
|
||||
Dim dtcheck As DataTable = ClassDatabase.Return_Datatable(sqlcheck)
|
||||
Dim listcheck As New List(Of String)
|
||||
|
||||
'Liste von allen Spaltentiteln mit Checkbox erstellen
|
||||
If dtcheck.Rows.Count > 0 Then
|
||||
For Each row As DataRow In dtcheck.Rows
|
||||
listcheck.Add(row.Item(0))
|
||||
Next
|
||||
End If
|
||||
|
||||
'Duplikate entfernen
|
||||
listcheck = listcheck.Distinct().ToList()
|
||||
|
||||
'Grid leeren
|
||||
GridControlSelection.DataSource = Nothing
|
||||
grvwSelection.Columns.Clear()
|
||||
'Databinding Neu
|
||||
Me.BindingSource_Entity.DataSource = Datatable_Grid
|
||||
GridControlSelection.DataSource = BindingSource_Entity
|
||||
|
||||
' Den Editor Initialisieren und Optionen setzen
|
||||
'CheckBoxEditorForDisplay = New RepositoryItemCheckEdit()
|
||||
'CheckBoxEditorForDisplay.ValueChecked = 1
|
||||
'CheckBoxEditorForDisplay.ValueUnchecked = 0
|
||||
|
||||
' Alle Checkbox Spalten durchgehen und CheckBoxEditor zuweisen
|
||||
'For Each col As String In listcheck
|
||||
' grvwSelection.GridControl.RepositoryItems.Add(CheckBoxEditorForDisplay)
|
||||
|
||||
' If Not IsNothing(grvwSelection.Columns(col)) Then
|
||||
' grvwSelection.Columns(col).ColumnEdit = CheckBoxEditorForDisplay
|
||||
' End If
|
||||
'Next
|
||||
grvwSelection.Columns("Record-ID").OptionsColumn.AllowShowHide = False
|
||||
'Load_GridSelection_Layout()
|
||||
'HideColumns()
|
||||
Dim selnode As TreeNode = TreeViewLevelSelect.SelectedNode
|
||||
Dim origtext As String = selnode.Text
|
||||
If origtext.Contains(" (") Then
|
||||
Dim existingstring = origtext.Substring(0, origtext.IndexOf("(") - 1)
|
||||
selnode.Text = existingstring & " (" & grvwSelection.RowCount & ")"
|
||||
Else
|
||||
selnode.Text = selnode.Text & " (" & grvwSelection.RowCount & ")"
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in LoadGrid_Selection:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
Return True
|
||||
|
||||
End Function
|
||||
|
||||
Sub SelectedRecord_ShowData(GridColumn_String As String, Optional DirectRecID As Integer = 0)
|
||||
Try
|
||||
'Me.pnlDetails.Visible = True
|
||||
'ZeigeRecordLogsToolStripMenuItem.Enabled = False
|
||||
If DirectRecID = 0 Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> Record wird über Datagrid focusedRow geladen", False)
|
||||
'Überhaupt Columns in Grid?
|
||||
If grvwSelection.Columns.Count = 0 Then
|
||||
'Me.pnlDetails.Enabled = False
|
||||
'Me.tsbtnshowWorkflowtasks.Enabled = False
|
||||
|
||||
'tsstatus_Detail_show(True, "Keine Columns in Grid")
|
||||
Exit Sub
|
||||
End If
|
||||
'Überhaupt Rows in Grid?
|
||||
If grvwSelection.RowCount > 0 Then
|
||||
Dim Grid_RecordID = grvwSelection.GetFocusedRowCellValue(grvwSelection.Columns(GridColumn_String))
|
||||
If Grid_RecordID Is Nothing = False Then
|
||||
SelectedRecordID = Grid_RecordID
|
||||
CURRENT_RECORD_ID = Grid_RecordID
|
||||
Else
|
||||
'tsstatus_Detail_show(True, "Grid_RecordID konnte nicht gewählt werden!")
|
||||
ClassLogger.Add(">> Grid_RecordID konnte nicht gewählt werden - SelectedRecord_ShowData", True)
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
Else 'Record wird direkt geladen
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> Record wird DIREKT geladen", False)
|
||||
SelectedRecordID = DirectRecID
|
||||
CURRENT_RECORD_ID = DirectRecID
|
||||
End If
|
||||
|
||||
Dim Record_Changes As String = "SELECT count(GUID) FROM VWPMO_RECORD_CHANGES WHERE RECORD_ID = " & CURRENT_RECORD_ID
|
||||
Dim RC = ClassDatabase.Execute_Scalar(Record_Changes)
|
||||
If Not RC Is Nothing Then
|
||||
If RC > 0 Then
|
||||
'ZeigeRecordLogsToolStripMenuItem.Enabled = True
|
||||
End If
|
||||
End If
|
||||
'Die aktuelle Ebene überprüfen und den Datensatz übergeben, ebenso den PARENT-Record setzen
|
||||
Select Case ACT_EBENE
|
||||
Case 1
|
||||
PARENT_RECORDID = 0
|
||||
EBENE1_RECID = SelectedRecordID
|
||||
CURRENT_PARENTID = EBENE1_RECID
|
||||
If Not EBENE1_COLUMNNAME Is Nothing Then
|
||||
EBENE1_GRID_RESULT = Get_GridResult(EBENE1_COLUMNNAME)
|
||||
|
||||
|
||||
'---
|
||||
Dim cat As TileNavCategory = LoadLevel1Nav()
|
||||
navPane.Categories.Clear()
|
||||
navPane.Categories.Add(cat)
|
||||
|
||||
|
||||
|
||||
End If
|
||||
Case 2
|
||||
EBENE2_RECID = SelectedRecordID
|
||||
If Not EBENE2_COLUMNNAME Is Nothing Then
|
||||
EBENE2_GRID_RESULT = Get_GridResult(EBENE2_COLUMNNAME)
|
||||
'Dim sql As String = "select @p " & EBENE_SQLRESULT & " where [Record-ID] = " & SelectedRecordID
|
||||
'sql = sql.Replace("@p", EBENE2_COLUMNNAME)
|
||||
'Dim result = ClassDatabase.Execute_Scalar(sql)
|
||||
'EBENE2_GRID_RESULT = result 'grvwSelection.GetFocusedRowCellValue(grvwSelection.Columns(EBENE2_COLUMNNAME))
|
||||
|
||||
Dim cat As TileNavCategory = LoadLevel1Nav()
|
||||
navPane.Categories.Clear()
|
||||
navPane.Categories.Add(cat)
|
||||
|
||||
Dim item As TileNavItem = LoadLevel2Nav()
|
||||
cat.Items.Add(item)
|
||||
|
||||
|
||||
End If
|
||||
If EBENE1_RECID > 0 Then
|
||||
PARENT_RECORDID = EBENE1_RECID
|
||||
CURRENT_PARENTID = EBENE1_RECID
|
||||
Else
|
||||
CURRENT_PARENTID = EBENE2_RECID
|
||||
End If
|
||||
Case 3
|
||||
EBENE3_RECID = SelectedRecordID
|
||||
If Not EBENE3_COLUMNNAME Is Nothing Then
|
||||
EBENE3_GRID_RESULT = Get_GridResult(EBENE3_COLUMNNAME)
|
||||
'EBENE3_GRID_RESULT = grvwSelection.GetFocusedRowCellValue(grvwSelection.Columns(EBENE3_COLUMNNAME))
|
||||
|
||||
Dim cat As TileNavCategory = LoadLevel1Nav()
|
||||
navPane.Categories.Clear()
|
||||
navPane.Categories.Add(cat)
|
||||
|
||||
Dim item As TileNavItem = LoadLevel2Nav()
|
||||
cat.Items.Add(item)
|
||||
|
||||
Dim subitem As TileNavSubItem = LoadLevel3Nav()
|
||||
item.SubItems.Add(subitem)
|
||||
|
||||
End If
|
||||
If EBENE2_RECID > 0 Then
|
||||
PARENT_RECORDID = EBENE2_RECID
|
||||
CURRENT_PARENTID = EBENE2_RECID
|
||||
End If
|
||||
End Select
|
||||
|
||||
|
||||
|
||||
'Me.pnlDetails.Enabled = True
|
||||
'Me.tsbtnshowWorkflowtasks.Enabled = True
|
||||
'Me.tsbtnshowTaskoverview.Enabled = True
|
||||
'tsstatus_Detail_show(False, "")
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in SelectedRecord_ShowData:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Function Get_GridResult(Columnname As String)
|
||||
Dim result As String = grvwSelection.GetFocusedRowCellValue(grvwSelection.Columns(Columnname))
|
||||
If result = String.Empty Then
|
||||
Return "No Column configured"
|
||||
Else
|
||||
Return result
|
||||
End If
|
||||
End Function
|
||||
|
||||
Function GetSelected_RecordID()
|
||||
Try
|
||||
If grvwSelection.Columns.Count = 0 Then
|
||||
'Me.pnlDetails.Enabled = False
|
||||
'Me.tsbtnshowWorkflowtasks.Enabled = False
|
||||
'tsstatus_Detail_show(True, "Keine Columns in Grid")
|
||||
Return Nothing
|
||||
End If
|
||||
'Überhaupt Rows in Grid?
|
||||
If grvwSelection.RowCount > 0 Then
|
||||
Dim Grid_RecordID = grvwSelection.GetFocusedRowCellValue(grvwSelection.Columns("Record-ID"))
|
||||
If Grid_RecordID Is Nothing = False Then
|
||||
Return Grid_RecordID
|
||||
Else
|
||||
'tsstatus_Detail_show(True, "Grid_RecordID konnte nicht gewählt werden!")
|
||||
'ClassLogger.Add(">> Grid_RecordID konnte nicht gewählt werden - SelectedRecord_ShowData", True)
|
||||
Return Nothing
|
||||
End If
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Sub grvwSelection_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles grvwSelection.FocusedRowChanged
|
||||
'If vFormClosing = True Or SaveRoutine_Active = True Then
|
||||
' Exit Sub
|
||||
'End If
|
||||
|
||||
'Check_Record_Changed()
|
||||
Load_Record_Data()
|
||||
|
||||
'If dataloaded = True Then
|
||||
' If LogErrorsOnly = False Then ClassLogger.Add(">> grvwSelection_FocusedRowChanged - EditState: " & EDIT_STATE, False)
|
||||
' Dim selRecID = GetSelected_RecordID()
|
||||
' If Not selRecID Is Nothing And selRecID <> SelectedRecordID Or EDIT_STATE = "insert" Then
|
||||
' Focused_Row_Column_Changed()
|
||||
' Else
|
||||
' 'Console.WriteLine("SelRecordID identisch")
|
||||
' End If
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Sub Load_Record_Data()
|
||||
Select Case EDIT_STATE
|
||||
Case EditState.None
|
||||
'Ganz normalerDatensatzwechsel Wechsel
|
||||
SelectedRecord_ShowData("Record-ID")
|
||||
'Refresh_Treeview_SelectedData()
|
||||
'tslblStatusMain_show(False, "")
|
||||
Case EditState.Insert
|
||||
'Refresh_Treeview_SelectedData()
|
||||
Case EditState.Update
|
||||
' Refresh_Treeview_SelectedData()
|
||||
End Select
|
||||
'Select Case TCDetails.SelectedTabPageIndex
|
||||
' Case 0
|
||||
' 'Die Values in die Controls laden
|
||||
' If EDIT_STATE = "none" Then
|
||||
' 'TabPageDetails.Text = "Detaileingabe zu '" & ACT_EBENE_STRING & "' - Record(" & SelectedRecordID & ")"
|
||||
' 'Die Daten auf dem Panel laden
|
||||
' ClassControlValues.LoadControlValues(SelectedRecordID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
|
||||
' 'Load_Control_Values(CtrlBuilder.AllControls)
|
||||
' 'Refresh_Treeview_SelectedData()
|
||||
' RECORD_CHANGED = False
|
||||
' End If
|
||||
' Case 1
|
||||
' RUN_WD_SEARCH(WD_Suche, "RECORD")
|
||||
' Case 2
|
||||
' If FOLLOW_UPisActive = True Then Refresh_FollowUps()
|
||||
'End Select
|
||||
'DT_FU_Record = Nothing
|
||||
'VerknüpfungenToolStripMenuItem.Enabled = True
|
||||
|
||||
'If FOLLOW_UPisActive = True Then Refresh_FollowUp_TabHeader()
|
||||
'Refresh_CreatedChangedRecordByID(SelectedRecordID)
|
||||
Anzeige_Selected_Entity()
|
||||
'Show_act_WFTask()
|
||||
'Get_RecordCounts_Nodes()
|
||||
|
||||
'Refresh_TaskOverview()
|
||||
End Sub
|
||||
|
||||
Private Sub Anzeige_Selected_Entity()
|
||||
'Try
|
||||
' 'Me.tslblEntity1.Visible = False
|
||||
' 'Me.tslblEntity2.Visible = False
|
||||
' 'Me.tslblEntity3.Visible = False
|
||||
' tslblEntity.Text = ""
|
||||
' 'TileControl1.Groups(0).Items.Clear()
|
||||
' Select Case ACT_EBENE
|
||||
' Case 1
|
||||
' tslblEntity.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT
|
||||
' 'tslblEntity1.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT
|
||||
' 'Me.tslblEntity1.Visible = True
|
||||
' pnlNavButtons.Controls.Clear()
|
||||
' Create_NavButton(1, EBENE1_GRID_RESULT)
|
||||
' Case 2
|
||||
' If CURRENT_FORM_TYPE = 5 Then
|
||||
' tslblEntity.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT & " #### Gruppen-Entität: " & EBENE2_ENTITY
|
||||
' 'tslblEntity1.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT
|
||||
' 'tslblEntity2.Text = "Gruppen-Entität: " & EBENE2_ENTITY
|
||||
' 'Me.tslblEntity1.Visible = True
|
||||
' 'Me.tslblEntity2.Visible = True
|
||||
' pnlNavButtons.Controls.Clear()
|
||||
' Create_NavButton(1, EBENE1_GRID_RESULT)
|
||||
' Create_NavButton(2, EBENE2_ENTITY)
|
||||
|
||||
' Exit Sub
|
||||
' End If
|
||||
' If EBENE1_GRID_RESULT Is Nothing = False Then
|
||||
' tslblEntity.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT & " #### " & EBENE2_ENTITY & " - " & EBENE2_GRID_RESULT
|
||||
' 'tslblEntity1.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT
|
||||
' pnlNavButtons.Controls.Clear()
|
||||
' Create_NavButton(1, EBENE1_GRID_RESULT)
|
||||
' Create_NavButton(2, EBENE2_GRID_RESULT)
|
||||
|
||||
|
||||
' 'Me.tslblEntity1.Visible = True
|
||||
' 'Me.tslblEntity2.Visible = True
|
||||
' Else
|
||||
' ' tslblEntity1.Text = EBENE2_ENTITY & " - " & EBENE2_GRID_RESULT
|
||||
' tslblEntity.Text = EBENE2_ENTITY & " - " & EBENE2_GRID_RESULT
|
||||
' 'Me.tslblEntity1.Visible = True
|
||||
' Create_NavButton(1, EBENE2_GRID_RESULT)
|
||||
' End If
|
||||
' Case 3
|
||||
' If CURRENT_FORM_TYPE = 5 Then
|
||||
' 'tslblEntity1.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT
|
||||
' 'tslblEntity2.Text = EBENE2_ENTITY & " - " & EBENE2_GRID_RESULT
|
||||
' 'tslblEntity3.Text = "Gruppen-Entität: " & EBENE3_GRID_RESULT
|
||||
' pnlNavButtons.Controls.Clear()
|
||||
' Create_NavButton(1, EBENE1_GRID_RESULT)
|
||||
' Create_NavButton(2, EBENE2_ENTITY)
|
||||
' Create_NavButton(3, EBENE3_ENTITY)
|
||||
|
||||
' 'Me.tslblEntity1.Visible = True
|
||||
' 'Me.tslblEntity2.Visible = True
|
||||
' 'Me.tslblEntity3.Visible = True
|
||||
' Exit Sub
|
||||
' End If
|
||||
' If EBENE1_GRID_RESULT Is Nothing = False Then
|
||||
' 'tslblEntity1.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT
|
||||
' 'tslblEntity2.Text = EBENE2_ENTITY & " - " & EBENE2_GRID_RESULT
|
||||
' 'tslblEntity3.Text = EBENE3_ENTITY & " - " & EBENE3_GRID_RESULT
|
||||
' tslblEntity.Text = EBENE1_ENTITY & " - " & EBENE1_GRID_RESULT & " #### " & EBENE2_ENTITY & " - " & EBENE2_GRID_RESULT & _
|
||||
' " #### " & EBENE3_ENTITY & " - " & EBENE3_GRID_RESULT
|
||||
' 'Me.tslblEntity1.Visible = True
|
||||
' 'Me.tslblEntity2.Visible = True
|
||||
' 'Me.tslblEntity3.Visible = True
|
||||
' pnlNavButtons.Controls.Clear()
|
||||
' Create_NavButton(1, EBENE1_GRID_RESULT)
|
||||
' Create_NavButton(2, EBENE2_GRID_RESULT)
|
||||
' Create_NavButton(3, EBENE3_GRID_RESULT)
|
||||
|
||||
|
||||
' Else
|
||||
' 'tslblEntity1.Text = EBENE2_ENTITY & " - " & EBENE2_GRID_RESULT
|
||||
' 'tslblEntity2.Text = EBENE3_ENTITY & " - " & EBENE3_GRID_RESULT
|
||||
' tslblEntity.Text = EBENE2_ENTITY & " - " & EBENE2_GRID_RESULT & " #### " & EBENE3_ENTITY & " - " & EBENE3_GRID_RESULT
|
||||
' ' Me.tslblEntity1.Visible = True
|
||||
' 'Me.tslblEntity2.Visible = True
|
||||
' pnlNavButtons.Controls.Clear()
|
||||
' Create_NavButton(1, EBENE2_GRID_RESULT)
|
||||
' Create_NavButton(2, EBENE3_GRID_RESULT)
|
||||
|
||||
' End If
|
||||
' End Select
|
||||
|
||||
'Catch ex As Exception
|
||||
' MsgBox("Error in Anzeige_Selected_Entity:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
'End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub TreeViewEbeneSelect_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeViewLevelSelect.AfterSelect
|
||||
Load_Tree_View_Data()
|
||||
End Sub
|
||||
|
||||
Private Sub btn_Refresh_ElementClick(sender As Object, e As NavElementEventArgs) Handles btn_Refresh.ElementClick
|
||||
Load_Tree_View_Data()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Private Function LoadLevel1Nav()
|
||||
Dim cat As New TileNavCategory()
|
||||
cat.Caption = EBENE1_GRID_RESULT
|
||||
cat.Name = EBENE1_GRID_RESULT
|
||||
cat.TileText = EBENE1_GRID_RESULT
|
||||
|
||||
navPane.SelectedElement = cat
|
||||
|
||||
Return cat
|
||||
End Function
|
||||
|
||||
Private Function LoadLevel2Nav()
|
||||
Dim item As New TileNavItem()
|
||||
item.Caption = EBENE2_GRID_RESULT
|
||||
item.Name = EBENE2_GRID_RESULT
|
||||
item.TileText = EBENE2_GRID_RESULT
|
||||
|
||||
navPane.SelectedElement = item
|
||||
|
||||
Return item
|
||||
End Function
|
||||
|
||||
Private Function LoadLevel3Nav()
|
||||
Dim subitem As New TileNavSubItem()
|
||||
subitem.Caption = EBENE3_GRID_RESULT
|
||||
subitem.Name = EBENE3_GRID_RESULT
|
||||
subitem.TileText = EBENE3_GRID_RESULT
|
||||
|
||||
navPane.SelectedElement = subitem
|
||||
|
||||
Return subitem
|
||||
End Function
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user