2015-11-04 15:22:24 +01:00

782 lines
32 KiB
VB.net

Imports DevExpress.Utils
Imports DevExpress.XtraBars.Navigation
Imports DevExpress.XtraEditors
Imports DevExpress.XtraEditors.Repository
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 ACT_EBENE_STRING
Public SelectedRecordID As Integer
Public PARENT_RECORDID As Integer
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()
Load_Tree_View(CONSTRUCTORID)
End Sub
#Region "NavPane"
Private Function FindNode(tncoll As TreeNodeCollection, strText As [String]) As TreeNode
Dim tnFound As TreeNode
For Each tnCurr As TreeNode In tncoll
If tnCurr.Text.StartsWith(strText) Then
Return tnCurr
End If
tnFound = FindNode(tnCurr.Nodes, strText)
If tnFound IsNot Nothing Then
Return tnFound
End If
Next
Return Nothing
End Function
Private Sub navPane_MouseUp(sender As Object, e As MouseEventArgs) Handles navPane.MouseUp
Dim pane As TileNavPane = TryCast(sender, TileNavPane)
Dim hitInfo As TileNavPaneHitInfo = pane.ViewInfo.CalcHitInfo(e.Location)
If hitInfo.InButton Then
Dim element = hitInfo.ButtonInfo.Element
navPane.HideDropDownWindow()
If TypeOf element Is NavButton Then
Dim btn As NavButton = TryCast(element, NavButton)
If btn.IsMain Then ResetNav()
Else
Dim Entity As String = element.Tag
Dim Node = FindNode(TreeViewLevelSelect.Nodes, Entity)
TreeViewLevelSelect.SelectedNode = Node
Load_Tree_View_Data()
End If
End If
End Sub
Private Sub ResetNav()
navPane.Categories.Clear()
TreeViewLevelSelect.SelectedNode = TreeViewLevelSelect.Nodes(0)
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
cat.Tag = EBENE1_ENTITY
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
item.Tag = EBENE2_ENTITY
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
subitem.Tag = EBENE3_ENTITY
navPane.SelectedElement = subitem
Return subitem
End Function
#End Region
#Region "TreeView"
Sub Load_Tree_View(ConstructorId As Integer)
Dim LEVEL1_NODE As TreeNode
Dim LEVEL2_NODE As TreeNode
Dim LEVEL3_NODE As TreeNode
Dim SQL As String
Dim DT, DT2, DT3 As DataTable
' Daten für Root Node Laden
SQL = "SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE PARENT_ID = 0 AND CONSTRUCT_ID = " & ConstructorId & " ORDER BY SEQUENCE"
DT = ClassDatabase.Return_Datatable(SQL)
If DT Is Nothing Then
Exit Sub
End If
If DT.Rows.Count = 1 Then
Dim LEVEL1_TITLE = DT.Rows(0).Item("FORM_TITLE").ToString
Dim LEVEL1_ID = DT.Rows(0).Item("FORM_ID").ToString
' Rootnode erstellen und taggen
LEVEL1_NODE = New TreeNode(LEVEL1_TITLE)
LEVEL1_NODE.Tag = LEVEL1_ID
' TreeView leeren und Rootnode einfügen
TreeViewLevelSelect.Nodes.Clear()
TreeViewLevelSelect.Nodes.Add(LEVEL1_NODE)
' Daten für Level1 Nodes Laden
SQL = String.Format("SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0} AND PARENT_ID = {1} ORDER BY SEQUENCE", ConstructorId, LEVEL1_ID)
DT2 = ClassDatabase.Return_Datatable(SQL)
If DT2 Is Nothing Or DT2.Rows.Count = 0 Then
Exit Sub
End If
For Each row As DataRow In DT2.Rows
Dim LEVEL2_TITLE As String = row.Item("FORM_TITLE").ToString
Dim LEVEL2_ID As Integer = row.Item("FORM_ID")
Dim LEVEL2_PARENT_ID As Integer = row.Item("PARENT_ID")
' Node erstellen..
LEVEL2_NODE = New TreeNode(LEVEL2_TITLE)
LEVEL2_NODE.Tag = LEVEL2_ID
' ..und einfügen
LEVEL1_NODE.Nodes.Add(LEVEL2_NODE)
' Daten für Level2 Nodes laden
SQL = String.Format("SELECT * from VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0} AND PARENT_ID = {1} ORDER BY SEQUENCE", ConstructorId, LEVEL2_ID)
DT3 = ClassDatabase.Return_Datatable(SQL)
If DT3 Is Nothing Or DT3.Rows.Count = 0 Then
Exit Sub
End If
For Each subrow As DataRow In DT3.Rows
Dim LEVEL3_TITLE As String = subrow.Item("FORM_TITLE")
Dim LEVEL3_ID As Integer = subrow.Item("FORM_ID")
' Node erstellen..
LEVEL3_NODE = New TreeNode(LEVEL3_TITLE)
LEVEL3_NODE.Tag = LEVEL3_ID
' ..und einfügen
LEVEL2_NODE.Nodes.Add(LEVEL3_NODE)
Next
Next
TreeViewLevelSelect.ExpandAll()
TreeViewLevelSelect.Nodes(0).EnsureVisible()
End If
End Sub
Sub Load_Tree_View_Data()
Dim SelectedNode As TreeNode = TryCast(TreeViewLevelSelect.SelectedNode, TreeNode)
Dim FormId As Integer = SelectedNode.Tag
If SelectedNode IsNot Nothing Then
Dim parentNode As TreeNode = TryCast(SelectedNode.Parent, TreeNode)
ACT_EBENE = 2
If parentNode IsNot Nothing Then
Dim grandParentNode As TreeNode = TryCast(parentNode.Parent, TreeNode)
If grandParentNode IsNot Nothing Then
ACT_EBENE = 3
End If
Else
ACT_EBENE = 1
End If
Load_Entity_Data(FormId, ACT_EBENE)
End If
End Sub
#End Region
#Region "Status Bar"
Public Sub Update_Status_Label(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
Public Sub Update_Record_Label(RecordId As Integer)
Dim SQL As String = "SELECT 'Added by ' + ADDED_WHO + ' when ' + CONVERT(VARCHAR(16),ADDED_WHEN,20) + ', Changed by ' + COALESCE(CHANGED_WHO,'') + ' when ' + COALESCE(CONVERT(VARCHAR(16),CHANGED_WHEN,20),'') FROM TBPMO_RECORD WHERE GUID = " & RecordId
Dim result = ClassDatabase.Execute_Scalar(SQL)
If IsDBNull(result) Or IsNothing(result) Then
tssRecord.Visible = False
Else
If CURRENT_FORM_TYPE = 5 Then
tssRecord.Text = String.Format("Group-Record ({0}) - {1}", RecordId, result.ToString)
Else
tssRecord.Text = String.Format("Record ({0}) - {1}", RecordId, result.ToString)
End If
tssRecord.Visible = True
End If
End Sub
#End Region
Sub Load_Entity_Data(FormId As Integer, CurrentLevel 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 CurrentLevel
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
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
Dim 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 Show_Selected_Record_Data(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
Show_Selected_Record_Data("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 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 Sub btn_home_ElementClick(sender As Object, e As NavElementEventArgs) Handles btn_home.ElementClick
Load_Tree_View(CURRENT_CONSTRUCTOR_ID)
End Sub
End Class