jj 19_01_16

This commit is contained in:
JenneJ
2016-01-19 15:07:04 +01:00
parent 85fccc233b
commit 5c014d3173
8 changed files with 240 additions and 362 deletions

View File

@@ -15,16 +15,17 @@
Public Class _ListControl : Inherits _BaseControl Public Class _ListControl : Inherits _BaseControl
Public Shared Function _GetDynamicValue(controlId As Integer, formId As Integer, recordId As Integer, parentRecordId As Integer) As DynamicValue Public Shared Function GetDynamicValue(controlId As Integer, formId As Integer, sqlCommand As String) As DynamicValue
Dim returnValue As DynamicValue Dim returnValue As DynamicValue
returnValue.StaticList = CheckForStaticList(controlId, recordId) returnValue.StaticList = CheckForStaticList(controlId)
returnValue.DataTable = CheckForSqlCommand(controlId, formId, recordId, parentRecordId) returnValue.DataTable = GetSqlList(controlId, formId, SQLCommand)
'returnValue.DataTable = CheckForSqlCommand(controlId, formId)
Return returnValue Return returnValue
End Function End Function
Private Shared Function CheckForStaticList(controlId As Integer, recordId As Integer) As List(Of String) Private Shared Function CheckForStaticList(controlId As Integer) As List(Of String)
Try Try
' Der alte SQL Befehl hat nicht wirklich nach der StaticList geschaut o_O ' Der alte SQL Befehl hat nicht wirklich nach der StaticList geschaut o_O
' Dim SQL As String = String.Format("SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", controlId, recordId) ' Dim SQL As String = String.Format("SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", controlId, recordId)
@@ -42,35 +43,96 @@
End Try End Try
End Function End Function
Private Shared Function CheckForSqlCommand(controlId As Integer, formId As Integer, recordId As Integer, parentRecordId As Integer) As DataTable Private Shared Function GetSqlList(controlId As Integer, formId As Integer, sqlCommand As String)
Try Try
Dim SQL As String = String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", controlId) If sqlCommand Is Nothing Or sqlCommand = String.Empty Then
Dim SqlCommand As String = ClassDatabase.Execute_Scalar(SQL)
If SqlCommand Is Nothing Or SqlCommand = String.Empty Then
Return Nothing Return Nothing
End If End If
If SqlCommand.Contains("@") Then 'Dim cached As DataTable = ClassControlValueCache.LoadFromCache(formId, controlId)
SqlCommand = ReplaceSqlCommandPlaceholders(SqlCommand, recordId, parentRecordId) Dim cached As DataTable = ClassControlValueCache.LoadFromCache(sqlCommand)
End If Dim final As DataTable
Dim CachedDataTable As DataTable = ClassControlValueCache.LoadFromCache(formId, controlId) If cached Is Nothing Then
Dim FinalDataTable As DataTable final = ClassDatabase.Return_Datatable(sqlCommand)
If CachedDataTable Is Nothing Then 'ClassControlValueCache.SaveToCache(formId, controlId, final)
FinalDataTable = ClassDatabase.Return_Datatable(SqlCommand) ClassControlValueCache.SaveToCache(sqlCommand, final)
ClassControlValueCache.SaveToCache(formId, controlId, FinalDataTable)
Else Else
FinalDataTable = CachedDataTable final = cached
End If End If
Return FinalDataTable Return final
Catch ex As Exception Catch ex As Exception
MsgBox("Error in CheckForSqlCommand: " & vbNewLine & ex.Message) MsgBox("Error in GetSqlList: " & vbNewLine & ex.Message)
Return Nothing Return Nothing
End Try End Try
End Function End Function
Overloads Shared Sub SetDataSource(control As Windows.Forms.ComboBox, dt As DataTable)
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
End Sub
Overloads Shared Sub SetDataSource(control As DevExpress.XtraEditors.CheckedListBoxControl, dt As DataTable)
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
End Sub
Overloads Shared Sub SetDataSource(control As DevExpress.XtraEditors.ListBoxControl, dt As DataTable)
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
End Sub
End Class End Class
@@ -85,7 +147,7 @@
Dim AutoValue As String = String.Empty Dim AutoValue As String = String.Empty
Dim ControlId As Integer = control.Tag Dim ControlId As Integer = control.Tag
Dim SQL As String = ClassDatabase.Execute_Scalar(String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId)) Dim SQL As String = ClassDatabase.Execute_Scalar(String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId))
SQL = ReplaceSqlCommandPlaceholders(SQL, RecordId, ParentRecordId) SQL = ClassControlValues.ReplaceSqlCommandPlaceholders(SQL, RecordId, ParentRecordId)
If SQL = "" Or IsDBNull(SQL) Then If SQL = "" Or IsDBNull(SQL) Then
Return control.Text Return control.Text
@@ -161,53 +223,17 @@
control.Text = value control.Text = value
End Sub End Sub
Public Shared Sub LoadList(control As Windows.Forms.ComboBox, formId As Integer, recordId As Integer, parentRecordId As Integer) Public Shared Sub LoadList(control As Windows.Forms.ComboBox, formId As Integer, SQLCommand As String)
Try Try
Dim dynamic As DynamicValue = _GetDynamicValue(control.Tag, formId, recordId, parentRecordId) Dim dynamic As DynamicValue = GetDynamicValue(control.Tag, formId, SQLCommand)
If dynamic.StaticList IsNot Nothing Then If dynamic.StaticList IsNot Nothing Then
control.DataSource = dynamic.StaticList control.DataSource = dynamic.StaticList
End If End If
If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then
Dim dt As DataTable = dynamic.DataTable SetDataSource(control, dynamic.DataTable)
Dim columnCount As Integer = dt.Columns.Count CalculateDropdownWidth(control, dynamic.DataTable)
Dim sw2 = Stopwatch.StartNew()
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
' Die alte Methode:
'control.DataSource = dt
'If dt.Columns.Count = 1 Then
' control.DisplayMember = dt.Columns(0).ColumnName
' control.ValueMember = dt.Columns(0).ColumnName
'ElseIf dt.Columns.Count = 2 Then
' control.DisplayMember = dt.Columns(1).ColumnName
' control.ValueMember = dt.Columns(0).ColumnName
'End If
sw2.Stop()
Console.WriteLine("Assingning the DataSource took {0}ms", sw2.ElapsedMilliseconds)
CalculateDropdownWidth(control, dt)
End If End If
Catch ex As Exception Catch ex As Exception
MsgBox("Error in Combobox.LoadList:" & vbNewLine & ex.Message) MsgBox("Error in Combobox.LoadList:" & vbNewLine & ex.Message)
@@ -252,35 +278,16 @@
Next Next
End Sub End Sub
Public Shared Sub LoadList(control As DevExpress.XtraEditors.CheckedListBoxControl, formId As Integer, recordId As Integer, parentRecordId As Integer) Public Shared Sub LoadList(control As DevExpress.XtraEditors.CheckedListBoxControl, formId As Integer, SQLCommand As String)
Try Try
Dim dynamic As DynamicValue = _GetDynamicValue(control.Tag, formId, recordId, parentRecordId) Dim dynamic As DynamicValue = GetDynamicValue(control.Tag, formId, SQLCommand)
If dynamic.StaticList IsNot Nothing Then If dynamic.StaticList IsNot Nothing Then
control.DataSource = dynamic.StaticList control.DataSource = dynamic.StaticList
End If End If
If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then
Dim dt As DataTable = dynamic.DataTable SetDataSource(control, dynamic.DataTable)
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
End If End If
Catch ex As Exception Catch ex As Exception
@@ -300,34 +307,15 @@
control.SelectedIndex = control.FindStringExact(value) control.SelectedIndex = control.FindStringExact(value)
End Sub End Sub
Public Shared Sub LoadList(control As DevExpress.XtraEditors.ListBoxControl, formId As Integer, recordId As Integer, parentRecordId As Integer) Public Shared Sub LoadList(control As DevExpress.XtraEditors.ListBoxControl, formId As Integer, SQLCommand As String)
Dim dynamic As DynamicValue = _GetDynamicValue(control.Tag, formId, recordId, parentRecordId) Dim dynamic As DynamicValue = GetDynamicValue(control.Tag, formId, SQLCommand)
If dynamic.StaticList IsNot Nothing Then If dynamic.StaticList IsNot Nothing Then
control.DataSource = dynamic.StaticList control.DataSource = dynamic.StaticList
End If End If
If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then
Dim dt As DataTable = dynamic.DataTable SetDataSource(control, dynamic.DataTable)
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
End If End If
End Sub End Sub

View File

@@ -1,68 +1,31 @@
Public Class ClassControlValueCache Public Class ClassControlValueCache
Private Shared Property Cache As New Dictionary(Of String, DataTable)
Private Shared Property Cache As New Dictionary(Of String, Dictionary(Of String, DataTable)) ' ClassControlValueCache
' Ordnet SQL Queries den daraus resultierenden DataTables zu.
'
' Somit kann eine Query in der Laufzeit des Programms von mehreren Forms genutzt werden,
' muss aber nur einmal vom Server abgefragt werden.
Public Shared Function LoadFromCache(sqlCommand As String) As DataTable
' Mit ToUpper wird das Command case-insensitive,
' es ist also egal, ob die query GROSS oder klein geschrieben wird
Dim UpperCaseCommand = sqlCommand.ToUpper()
Public Shared Function LoadFromCache(formId As Integer, controlId As Integer) As DataTable If Cache.ContainsKey(UpperCaseCommand) Then
Return Cache.Item(UpperCaseCommand)
Dim dict As Dictionary(Of String, DataTable) = GetCachedFormDict(formId.ToString())
If IsNothing(dict) Then
Return Nothing
Else
Dim dt As DataTable = GetCachedControlDict(dict, controlId.ToString())
If IsNothing(dt) Then
Return Nothing
Else
Return dt
End If
End If
End Function
Public Shared Function SaveToCache(formId As Integer, controlId As Integer, dt As DataTable) As DataTable
Dim dict As Dictionary(Of String, DataTable) = GetCachedFormDict(formId.ToString())
If IsNothing(dict) Then
dict = SetCachedFormDict(formId.ToString(), New Dictionary(Of String, DataTable))
End If
SetCachedControlDict(dict, controlId.ToString(), dt)
Return dt
End Function
Private Shared Function GetCachedFormDict(formId As Integer) As Dictionary(Of String, DataTable)
If Cache.ContainsKey(formId.ToString()) Then
Return Cache.Item(formId.ToString())
Else Else
Return Nothing Return Nothing
End If End If
End Function End Function
Private Shared Function SetCachedFormDict(formId As Integer, dict As Dictionary(Of String, DataTable)) As Dictionary(Of String, DataTable) Public Shared Sub SaveToCache(sqlCommand As String, dt As DataTable)
Cache.Item(formId.ToString()) = dict Dim UpperCaseCommand = sqlCommand.ToUpper()
Return dict Cache.Item(UpperCaseCommand) = dt
End Function End Sub
Private Shared Function GetCachedControlDict(dict As Dictionary(Of String, DataTable), controlId As Integer) As DataTable Public Shared Sub ClearCache()
Cache.Clear()
If dict.ContainsKey(controlId.ToString()) Then End Sub
Return dict.Item(controlId.ToString())
Else
Return Nothing
End If
End Function
Private Shared Function SetCachedControlDict(dict As Dictionary(Of String, DataTable), controlId As Integer, dt As DataTable) As DataTable
dict.Item(controlId.ToString()) = dt
Return dt
End Function
End Class End Class

View File

@@ -1,139 +1,9 @@
Imports DevExpress.XtraEditors.Controls Imports DevExpress.XtraEditors.Controls
Public Class ClassControlValues Public Class ClassControlValues
'Private Shared Function LoadControlAutoValue(ControlID As Integer, RecordID As Integer, control As Control) As String
' If TypeOf control Is Label Then
' Dim SQL = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & ControlID
' Dim autoValue
' Dim result = ClassDatabase.Execute_Scalar(SQL)
' result = result.Replace("@FORM_ID", CURRENT_FORM_ID)
' result = result.Replace("@RECORD_ID", CURRENT_RECORD_ID)
' result = result.Replace("@RECORDID", CURRENT_RECORD_ID)
' result = result.Replace("@PARENTRECORD_ID", CURRENT_PARENTID)
' ' Wenn das SQL Command leer ist, hat dieses Control kein SQL Command
' ' Gib den ursprünlichen Text zurück
' If result = "" Then
' Return control.Text
' Else
' autoValue = ClassDatabase.Execute_Scalar(result)
' ' Wenn das SQL Command DBNull zurück gibt,
' ' Überschreibe den alten Wert mit " " (Leerzeichen)
' If IsDBNull(autoValue) Then
' SQL = "SELECT CONTROL_TEXT FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & ControlID
' Dim value = ClassDatabase.Execute_Scalar(SQL)
' Return value
' Else
' Return autoValue
' End If
' End If
' 'End If
' 'Return Nothing
' Else
' Return Nothing
' End If
'End Function
'Public Shared Sub LoadControlValue(RecordID As Integer, ControlID As Integer, control As Control)
' Try
' ' Dim DT1 As DataTable = ClassDatabase.Return_Datatable()
' Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM VWPMO_VALUES WHERE RECORD_ID = " & RecordID & " and CONTROL_ID = " & ControlID, "LaodControlValue: ReturnValues")
' If DT.Rows.Count = 0 Then
' Dim autoValue = LoadControlAutoValue(ControlID, RecordID, control)
' If Not String.IsNullOrEmpty(autoValue) Then
' control.Text = autoValue
' End If
' Exit Sub
' End If
' Dim result = DT.Rows(0).Item("VALUE")
' '22.06.2015
' If Not IsDBNull(result) Then
' Select Case DT.Rows(0).Item("CONTROL_TYPE_ID")
' Case 1 'Label
' Dim label As Label = DirectCast(control, Label)
' Dim autoValue As String = LoadControlAutoValue(ControlID, RecordID, control)
' If Not IsNothing(autoValue) Then
' label.Text = autoValue
' End If
' Case 2 ' TextBox
' Dim textbox As TextBox = DirectCast(control, TextBox)
' textbox.Text = result
' Case 10 ' CheckBox
' Dim checkbox As CheckBox = DirectCast(control, CheckBox)
' checkbox.Checked = CBool(result)
' Case 11 'RadioButton
' Dim radio As RadioButton = DirectCast(control, RadioButton)
' radio.Checked = CBool(result)
' Case 3 ' ComboBox
' Dim cmbbox As ComboBox = DirectCast(control, System.Windows.Forms.ComboBox)
' cmbbox.Text = result
' 'If LogErrorsOnly = False Then ClassLogger.Add(">> control ComboBox", False)
' 'Dim cmbSql As String = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & ControlID
' 'cmbSql = ClassDatabase.Execute_Scalar(cmbSql)
' 'If Not (cmbSql Is Nothing Or cmbSql = String.Empty) Then
' ' If cmbSql.ToString.Contains("@") Then
' ' cmbSql = cmbSql.ToString.Replace("@RECORDID", CURRENT_RECORD_ID)
' ' cmbSql = cmbSql.ToString.Replace("@RECORD_ID", CURRENT_RECORD_ID)
' ' cmbSql = cmbSql.ToString.Replace("@PARENTRECORD_ID", CURRENT_PARENTID)
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> SQL Combobox: " & cmbSql, False)
' ' End If
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> SQL Combobox: " & cmbSql, False)
' ' 'SQL-Command vorhanden also Ausführen des SQL
' ' Dim DT_ComboBox As DataTable = ClassDatabase.Return_Datatable(cmbSql, "LoadControlValues: Combobox")
' ' If DT_ComboBox Is Nothing = False Then
' ' cmbbox.DataSource = DT_ComboBox
' ' Select Case DT_ComboBox.Columns.Count
' ' Case 2
' ' cmbbox.DisplayMember = DT_ComboBox.Columns(1).ColumnName
' ' cmbbox.ValueMember = DT_ComboBox.Columns(0).ColumnName
' ' Case 1
' ' cmbbox.DisplayMember = DT_ComboBox.Columns(0).ColumnName
' ' cmbbox.ValueMember = DT_ComboBox.Columns(0).ColumnName
' ' End Select
' ' End If
' 'End If
' ''combobox.DataSource = Nothing
' 'If cmbbox.SelectedIndex = -1 Then
' ' cmbbox.DataSource = Nothing
' ' cmbbox.Text = result
' 'Else
' ' cmbbox.SelectedIndex = cmbbox.FindStringExact(result)
' 'End If
' Case 4 'DateTimePicker
' Dim datepicker As DevExpress.XtraEditors.DateEdit = DirectCast(control, DevExpress.XtraEditors.DateEdit)
' If result = "" Or result = "00:00:00" Then
' datepicker.DateTime = DateTime.MinValue
' Else
' datepicker.DateTime = Date.Parse(result)
' End If
' Case 13 ' Listbox
' Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
' listbox.SelectedIndex = listbox.FindStringExact(result)
' Case Else
' If LogErrorsOnly = False Then ClassLogger.Add(">> Sub LoadControlValue - Control-Type nicht berücksichtigt: " & DT.Rows(0).Item("CONTROL_TYPE_ID"), False)
' 'MsgBox(DT.Rows(0).Item("CONTROL_TYPE_ID"))
' End Select
' Else
' ClassLogger.Add(" >> Achtung, der Value für Control-ID: " & ControlID & " ist DBNull", False)
' End If
' Catch ex As Exception Public Shared Sub LoadControlValues(RecordId As Integer, ParentRecordId As Integer, FormId As Integer, controls As Control.ControlCollection)
' MsgBox("Error in LoadControlValue:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' End Try
'End Sub
#Region "#### ClassControlValues REWRITE ####"
Public Shared Sub LoadControlValuesNeu(RecordId As Integer, ParentRecordId As Integer, FormId As Integer, controls As Control.ControlCollection)
Try Try
'Dim SQL As String = String.Format("SELECT * FROM VWPMO_VALUES WHERE VALUE <> '' AND RECORD_ID = {0}", RecordId) 'Dim SQL As String = String.Format("SELECT * FROM VWPMO_VALUES WHERE VALUE <> '' AND RECORD_ID = {0}", RecordId)
Dim SQL As String = String.Format("SELECT * FROM VWPMO_VALUES WHERE RECORD_ID = {0}", RecordId) Dim SQL As String = String.Format("SELECT * FROM VWPMO_VALUES WHERE RECORD_ID = {0}", RecordId)
@@ -156,7 +26,7 @@ Public Class ClassControlValues
If TypeOf control Is GroupBox Then If TypeOf control Is GroupBox Then
Dim groupbox As GroupBox = DirectCast(control, GroupBox) Dim groupbox As GroupBox = DirectCast(control, GroupBox)
LoadControlValuesNeu(RecordId, ParentRecordId, FormId, groupbox.Controls) LoadControlValues(RecordId, ParentRecordId, FormId, groupbox.Controls)
Else Else
LoadControlValueNeu(RecordId, ParentRecordId, ControlId, control, value) LoadControlValueNeu(RecordId, ParentRecordId, ControlId, control, value)
End If End If
@@ -216,29 +86,47 @@ Public Class ClassControlValues
End Sub End Sub
#End Region Public Shared Sub LoadControlValuesList(FormID As Integer, controls As Control.ControlCollection)
Public Shared Sub LoadControlValuesList(RecordID As Integer, ParentRecordId As Integer, FormID As Integer, controls As Control.ControlCollection)
Try Try
If controls.Count = 0 Then If controls.Count = 0 Then
MsgBox("Control.ControlCollection is unexpected empty!", MsgBoxStyle.Exclamation) 'MsgBox("LoadControlValuesList: Control.ControlCollection is unexpected empty!", MsgBoxStyle.Exclamation)
ClassLogger.Add("LoadControlValuesList: Control.ControlCollection is unexpected empty!")
Exit Sub
End If End If
Dim SW As Stopwatch = Stopwatch.StartNew() Dim SW As Stopwatch = Stopwatch.StartNew()
' Zuerst alle SQL Commands für FormID finden
' CONTROL_SQLCOMMAND_1 wird als SQL gealiast
Dim SQL As String = String.Format("SELECT CONTROL_ID, CONTROL_SQLCOMMAND_1 AS SQL FROM VWPMO_CONTROL_SCREEN WHERE FORM_ID = {0} AND CONTROL_SQLCOMMAND_1 <> '' AND CONTROL_SQLCOMMAND_1 NOT LIKE '%@%'", FormID)
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
If dt.Rows.Count = 0 Then
Exit Sub
End If
For Each Ctrl As Control In controls For Each Ctrl As Control In controls
Dim controlTagId = CInt(Ctrl.Tag)
'Datatable nach row mit CONTROL_ID wie Ctrl suchen
Dim row As DataRow = dt.Select(String.Format("CONTROL_ID={0}", controlTagId)).FirstOrDefault()
If IsNothing(row) Then
Continue For
End If
Dim sqlcommand As String = row.Item("SQL")
Select Case Ctrl.GetType() Select Case Ctrl.GetType()
Case GetType(ComboBox) Case GetType(ComboBox)
Dim combobox = DirectCast(Ctrl, ComboBox) Dim combobox = DirectCast(Ctrl, ComboBox)
ControlLoader.Combobox.LoadList(combobox, FormID, RecordID, ParentRecordId) ControlLoader.Combobox.LoadList(combobox, FormID, sqlcommand)
Case GetType(DevExpress.XtraEditors.ListBoxControl) Case GetType(DevExpress.XtraEditors.ListBoxControl)
Dim listbox = DirectCast(Ctrl, DevExpress.XtraEditors.ListBoxControl) Dim listbox = DirectCast(Ctrl, DevExpress.XtraEditors.ListBoxControl)
ControlLoader.ListBox.LoadList(listbox, FormID, RecordID, ParentRecordId) ControlLoader.ListBox.LoadList(listbox, FormID, sqlcommand)
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl) Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl) Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
ControlLoader.CheckedListBox.LoadList(chlistbox, FormID, RecordID, ParentRecordId) ControlLoader.CheckedListBox.LoadList(chlistbox, FormID, sqlcommand)
End Select End Select
Next Next
@@ -253,6 +141,66 @@ Public Class ClassControlValues
End Sub End Sub
Public Shared Sub LoadControlValuesListWithPlaceholders(FormId As Integer, RecordId As Integer, ParentRecordId As Integer, controls As Control.ControlCollection)
Try
If controls.Count = 0 Then
'MsgBox("LoadControlValuesListWithPlaceholders: Control.ControlCollection is unexpected empty!", MsgBoxStyle.Exclamation)
ClassLogger.Add("LoadControlValuesListWithPlaceholders: Control.ControlCollection is unexpected empty!")
Exit Sub
End If
Dim SQL As String = String.Format("SELECT CONTROL_ID, CONTROL_SQLCOMMAND_1 AS SQL FROM VWPMO_CONTROL_SCREEN WHERE FORM_ID = {0} AND CONTROL_SQLCOMMAND_1 <> '' AND CONTROL_SQLCOMMAND_1 LIKE '%@%'", FormId)
Dim SW As Stopwatch = Stopwatch.StartNew()
Dim commands As New List(Of String)
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
If dt.Rows.Count = 0 Then
Exit Sub
End If
For Each Ctrl As Control In controls
Dim controlTagId = CInt(Ctrl.Tag)
Dim row As DataRow = dt.Select(String.Format("CONTROL_ID={0}", controlTagId)).FirstOrDefault()
If IsNothing(row) Then
Continue For
End If
Dim sqlcommand As String = row.Item("SQL")
sqlcommand = ReplaceSqlCommandPlaceholders(sqlcommand, RecordId, ParentRecordId)
Select Case Ctrl.GetType()
Case GetType(ComboBox)
Dim combobox = DirectCast(Ctrl, ComboBox)
ControlLoader.Combobox.LoadList(combobox, FormId, sqlcommand)
Case GetType(DevExpress.XtraEditors.ListBoxControl)
Dim listbox = DirectCast(Ctrl, DevExpress.XtraEditors.ListBoxControl)
ControlLoader.ListBox.LoadList(listbox, FormId, sqlcommand)
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
ControlLoader.CheckedListBox.LoadList(chlistbox, FormId, sqlcommand)
End Select
Next
SW.Stop()
Console.WriteLine("LoadControlValuesListWithPlaceholders took {0} milliseconds to load", SW.ElapsedMilliseconds)
Catch ex As Exception
MsgBox("Unexpected Error in LoadControlValuesListWithPlaceholders:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Function ReplaceSqlCommandPlaceholders(sqlCommand As String, recordId As Integer, parentRecordId As Integer)
sqlCommand = sqlCommand.Replace("@RECORD_ID", recordId)
sqlCommand = sqlCommand.Replace("@RECORDID", recordId)
sqlCommand = sqlCommand.Replace("@PARENTRECORD_ID", parentRecordId)
sqlCommand = sqlCommand.Replace("@PARENTRECORDID", parentRecordId)
Return sqlCommand
End Function
Public Shared Sub UnloadControlValuesList(RecordID As Integer, FormID As Integer, controls As Control.ControlCollection) Public Shared Sub UnloadControlValuesList(RecordID As Integer, FormID As Integer, controls As Control.ControlCollection)
For Each C As Control In controls For Each C As Control In controls
If TypeOf C Is ComboBox Then If TypeOf C Is ComboBox Then

View File

@@ -1119,8 +1119,8 @@ Public Class frmForm_Constructor
Load_Entity_Data_Only() Load_Entity_Data_Only()
Search_RowHandle(CURRENT_RECORD_ID) Search_RowHandle(CURRENT_RECORD_ID)
'Die Daten auf dem Panel laden 'Die Daten auf dem Panel laden
ClassControlValues.LoadControlValuesNeu(CURRENT_RECORD_ID, CURRENT_PARENTID,CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValues(CURRENT_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
ClassControlValues.LoadControlValuesList(CURRENT_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValuesList(CURRENT_FORM_ID, CtrlBuilder.AllControls)
pnlDetails.Enabled = True pnlDetails.Enabled = True
End If End If
Catch ex As Exception Catch ex As Exception
@@ -1645,8 +1645,8 @@ Public Class frmForm_Constructor
If EDIT_STATE = "none" Then If EDIT_STATE = "none" Then
'TabPageDetails.Text = "Detaileingabe zu '" & ACT_EBENE_STRING & "' - Record(" & SelectedRecordID & ")" 'TabPageDetails.Text = "Detaileingabe zu '" & ACT_EBENE_STRING & "' - Record(" & SelectedRecordID & ")"
'Die Daten auf dem Panel laden 'Die Daten auf dem Panel laden
ClassControlValues.LoadControlValuesNeu(SelectedRecordID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValues(SelectedRecordID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
ClassControlValues.LoadControlValuesList(SelectedRecordID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValuesList(CURRENT_FORM_ID, CtrlBuilder.AllControls)
'Load_Control_Values(CtrlBuilder.AllControls) 'Load_Control_Values(CtrlBuilder.AllControls)
'Refresh_Treeview_SelectedData() 'Refresh_Treeview_SelectedData()
RECORD_CHANGED = False RECORD_CHANGED = False
@@ -2007,8 +2007,8 @@ Public Class frmForm_Constructor
Load_Record_Data() Load_Record_Data()
End If End If
End If End If
'Überprüfen ob es für diese Entität Wiedervorlagen gibt? 'Überprüfen ob es für diese Entität Wiedervorlagen gibt?
Check_FOLLOWUP_IsConfigured(CURRENT_FORM_ID) Check_FOLLOWUP_IsConfigured(CURRENT_FORM_ID)
End Select End Select
Load_Templates() Load_Templates()
@@ -2361,8 +2361,8 @@ Public Class frmForm_Constructor
Select Case TCDetails.SelectedTabPageIndex Select Case TCDetails.SelectedTabPageIndex
Case 0 Case 0
If RECORD_NEEDS_REFRESH = True Then If RECORD_NEEDS_REFRESH = True Then
ClassControlValues.LoadControlValuesNeu(SelectedRecordID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValues(SelectedRecordID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
ClassControlValues.LoadControlValuesList(SelectedRecordID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValuesList(CURRENT_FORM_ID, CtrlBuilder.AllControls)
UpdRECORD_NEEDS_REFRESH(False) UpdRECORD_NEEDS_REFRESH(False)
End If End If

View File

@@ -822,7 +822,7 @@ Public Class frmForm_Constructor_Main
Load_Entity_Data_Only() Load_Entity_Data_Only()
Get_Grid_Row_Handle(CURRENT_RECORD_ID) Get_Grid_Row_Handle(CURRENT_RECORD_ID)
'Die Daten auf dem Panel laden 'Die Daten auf dem Panel laden
ClassControlValues.LoadControlValuesNeu(CURRENT_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValues(CURRENT_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
pnlDetails.Enabled = True pnlDetails.Enabled = True
End If End If
@@ -859,7 +859,7 @@ Public Class frmForm_Constructor_Main
Me.tsButtonEditMode.Text = "Bearbeiten beenden" Me.tsButtonEditMode.Text = "Bearbeiten beenden"
'Funktion zum Vollständigen load der Inhalte 'Funktion zum Vollständigen load der Inhalte
ClassControlValues.LoadControlValuesList(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValuesList(CURRENT_FORM_ID, CtrlBuilder.AllControls)
Else Else
RECORD_ENABLED = False RECORD_ENABLED = False
Me.pnlDetails.Enabled = False Me.pnlDetails.Enabled = False
@@ -1521,7 +1521,7 @@ Public Class frmForm_Constructor_Main
If EDIT_STATE = EditState.None Then If EDIT_STATE = EditState.None Then
'TabPageDetails.Text = "Detaileingabe zu '" & ACT_EBENE_STRING & "' - Record(" & SelectedRecordID & ")" 'TabPageDetails.Text = "Detaileingabe zu '" & ACT_EBENE_STRING & "' - Record(" & SelectedRecordID & ")"
'Die Daten auf dem Panel laden 'Die Daten auf dem Panel laden
ClassControlValues.LoadControlValuesNeu(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
'Load_Control_Values(CtrlBuilder.AllControls) 'Load_Control_Values(CtrlBuilder.AllControls)
'Refresh_Treeview_SelectedData() 'Refresh_Treeview_SelectedData()
RECORD_CHANGED = False RECORD_CHANGED = False

View File

@@ -212,7 +212,7 @@ Partial Class frmForm_Constructor_Main_2
Me.GridControlMain.Location = New System.Drawing.Point(0, 0) Me.GridControlMain.Location = New System.Drawing.Point(0, 0)
Me.GridControlMain.MainView = Me.grvwTiles Me.GridControlMain.MainView = Me.grvwTiles
Me.GridControlMain.Name = "GridControlMain" Me.GridControlMain.Name = "GridControlMain"
Me.GridControlMain.Size = New System.Drawing.Size(788, 270) Me.GridControlMain.Size = New System.Drawing.Size(795, 270)
Me.GridControlMain.TabIndex = 0 Me.GridControlMain.TabIndex = 0
Me.GridControlMain.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.grvwCarousel, Me.grvwTiles, Me.grvwGrid}) Me.GridControlMain.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.grvwCarousel, Me.grvwTiles, Me.grvwGrid})
' '
@@ -467,7 +467,7 @@ Partial Class frmForm_Constructor_Main_2
Me.SplitContainerBottom.Panel1.Text = "Panel1" Me.SplitContainerBottom.Panel1.Text = "Panel1"
Me.SplitContainerBottom.Panel2.Controls.Add(Me.Panel2) Me.SplitContainerBottom.Panel2.Controls.Add(Me.Panel2)
Me.SplitContainerBottom.Panel2.Text = "Panel2" Me.SplitContainerBottom.Panel2.Text = "Panel2"
Me.SplitContainerBottom.Size = New System.Drawing.Size(1083, 365) Me.SplitContainerBottom.Size = New System.Drawing.Size(1083, 372)
Me.SplitContainerBottom.SplitterPosition = 576 Me.SplitContainerBottom.SplitterPosition = 576
Me.SplitContainerBottom.TabIndex = 0 Me.SplitContainerBottom.TabIndex = 0
Me.SplitContainerBottom.Text = "SplitContainerControl1" Me.SplitContainerBottom.Text = "SplitContainerControl1"
@@ -483,7 +483,7 @@ Partial Class frmForm_Constructor_Main_2
Me.TCDetails.Location = New System.Drawing.Point(0, 25) Me.TCDetails.Location = New System.Drawing.Point(0, 25)
Me.TCDetails.Name = "TCDetails" Me.TCDetails.Name = "TCDetails"
Me.TCDetails.SelectedTabPage = Me.TabDetails Me.TCDetails.SelectedTabPage = Me.TabDetails
Me.TCDetails.Size = New System.Drawing.Size(1071, 340) Me.TCDetails.Size = New System.Drawing.Size(1078, 347)
Me.TCDetails.TabIndex = 1 Me.TCDetails.TabIndex = 1
Me.TCDetails.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.TabDetails, Me.TabWindream, Me.TabFollowUp, Me.TabPos}) Me.TCDetails.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.TabDetails, Me.TabWindream, Me.TabFollowUp, Me.TabPos})
' '
@@ -492,7 +492,7 @@ Partial Class frmForm_Constructor_Main_2
Me.TabDetails.Controls.Add(Me.pnlDetails) Me.TabDetails.Controls.Add(Me.pnlDetails)
Me.TabDetails.Image = Global.DD_Record_Organiser.My.Resources.Resources.grid_Data_16xMD Me.TabDetails.Image = Global.DD_Record_Organiser.My.Resources.Resources.grid_Data_16xMD
Me.TabDetails.Name = "TabDetails" Me.TabDetails.Name = "TabDetails"
Me.TabDetails.Size = New System.Drawing.Size(1069, 312) Me.TabDetails.Size = New System.Drawing.Size(1072, 316)
Me.TabDetails.Text = "Detailansicht" Me.TabDetails.Text = "Detailansicht"
' '
'pnlDetails 'pnlDetails
@@ -501,7 +501,7 @@ Partial Class frmForm_Constructor_Main_2
Me.pnlDetails.Dock = System.Windows.Forms.DockStyle.Fill Me.pnlDetails.Dock = System.Windows.Forms.DockStyle.Fill
Me.pnlDetails.Location = New System.Drawing.Point(0, 0) Me.pnlDetails.Location = New System.Drawing.Point(0, 0)
Me.pnlDetails.Name = "pnlDetails" Me.pnlDetails.Name = "pnlDetails"
Me.pnlDetails.Size = New System.Drawing.Size(1069, 312) Me.pnlDetails.Size = New System.Drawing.Size(1072, 316)
Me.pnlDetails.TabIndex = 0 Me.pnlDetails.TabIndex = 0
' '
'TabWindream 'TabWindream
@@ -884,7 +884,7 @@ Partial Class frmForm_Constructor_Main_2
Me.ToolStripEdit.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsButtonAdd, Me.tsButtonSave, Me.tsButtonDelete, Me.tsButtonEditMode, Me.ToolStripDropDownButton1, Me.tsButtonShowTaskOverview, Me.tsButtonShowWorkflowTasks}) Me.ToolStripEdit.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsButtonAdd, Me.tsButtonSave, Me.tsButtonDelete, Me.tsButtonEditMode, Me.ToolStripDropDownButton1, Me.tsButtonShowTaskOverview, Me.tsButtonShowWorkflowTasks})
Me.ToolStripEdit.Location = New System.Drawing.Point(0, 0) Me.ToolStripEdit.Location = New System.Drawing.Point(0, 0)
Me.ToolStripEdit.Name = "ToolStripEdit" Me.ToolStripEdit.Name = "ToolStripEdit"
Me.ToolStripEdit.Size = New System.Drawing.Size(1071, 25) Me.ToolStripEdit.Size = New System.Drawing.Size(1078, 25)
Me.ToolStripEdit.TabIndex = 0 Me.ToolStripEdit.TabIndex = 0
Me.ToolStripEdit.Text = "ToolStrip1" Me.ToolStripEdit.Text = "ToolStrip1"
' '

View File

@@ -1005,8 +1005,6 @@ Public Class frmForm_Constructor_Main_2
Lock_RecordControls(False) Lock_RecordControls(False)
tsButtonShowWorkflowTasks.Enabled = True tsButtonShowWorkflowTasks.Enabled = True
ClassControlValues.LoadDefaultValues(CURRENT_FORM_ID, SELECTED_RECORD_ID, pnlDetails.Controls) ClassControlValues.LoadDefaultValues(CURRENT_FORM_ID, SELECTED_RECORD_ID, pnlDetails.Controls)
'ClassControlValues.LoadControlValuesList(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden ' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden
tsButtonSave.Enabled = True tsButtonSave.Enabled = True
EDIT_STATE = EditState.Insert EDIT_STATE = EditState.Insert
@@ -1162,29 +1160,6 @@ Public Class frmForm_Constructor_Main_2
Private Sub tsButtonEditMode_Click(sender As Object, e As EventArgs) Handles tsButtonEditMode.Click Private Sub tsButtonEditMode_Click(sender As Object, e As EventArgs) Handles tsButtonEditMode.Click
ToggleEditMode() ToggleEditMode()
'If RECORD_ENABLED = False Then
' RECORD_ENABLED = True
' Me.pnlDetails.Enabled = True
' Me.tsButtonDelete.Enabled = True
' Me.tsButtonAdd.Enabled = True
' Me.tsButtonSave.Enabled = True
' Me.tsButtonEditMode.Text = "Bearbeiten beenden"
' 'Funktion zum Vollständigen load der Inhalte
' ClassControlValues.LoadControlValuesList(SELECTED_RECORD_ID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
'Else
' RECORD_ENABLED = False
' Me.pnlDetails.Enabled = False
' Me.tsButtonDelete.Enabled = False
' Me.tsButtonAdd.Enabled = False
' Me.tsButtonSave.Enabled = False
' Me.tsButtonEditMode.Text = "Bearbeiten"
' 'Funktion nur zum load der Inhalte
' ClassControlValues.UnloadControlValuesList(SELECTED_RECORD_ID, CURRENT_RECORD_ID, CtrlBuilder.AllControls)
'End If
End Sub End Sub
Sub ToggleEditMode() Sub ToggleEditMode()
@@ -1202,8 +1177,10 @@ Public Class frmForm_Constructor_Main_2
Me.tsButtonAdd.Enabled = True Me.tsButtonAdd.Enabled = True
Me.tsButtonSave.Enabled = True Me.tsButtonSave.Enabled = True
Me.tsButtonEditMode.Text = "Bearbeiten beenden" Me.tsButtonEditMode.Text = "Bearbeiten beenden"
'Funktion zum Vollständigen load der Inhalte
'ClassControlValues.LoadControlValuesList(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ' Abhängige Listen laden
ClassControlValues.LoadControlValuesListWithPlaceholders(CURRENT_FORM_ID, SELECTED_RECORD_ID, CURRENT_PARENTID, CtrlBuilder.AllControls)
RECORD_ENABLED = True RECORD_ENABLED = True
pnlDetails.Focus() pnlDetails.Focus()
'If RECORD_ENABLED = False Then 'If RECORD_ENABLED = False Then
@@ -1531,11 +1508,13 @@ Public Class frmForm_Constructor_Main_2
'Next 'Next
' Wenn rows existieren, erste row laden und recordid auslesen ' Wenn rows existieren, erste row laden und recordid auslesen
Dim firstRow As System.Data.DataRowView = GridControlMain.MainView.GetRow(0) 'Dim firstRow As System.Data.DataRowView = GridControlMain.MainView.GetRow(0)
If Not IsNothing(firstRow) Then 'If Not IsNothing(firstRow) Then
Dim firstRecordId As Integer = firstRow.Row.Item("Record-ID") ' Dim firstRecordId As Integer = firstRow.Row.Item("Record-ID")
ClassControlValues.LoadControlValuesList(firstRecordId, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.MasterPanel.Controls) ' ClassControlValues.LoadControlValuesList(firstRecordId, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.MasterPanel.Controls)
End If 'End If
' Hinfällig, da hier die Record-ID nicht gebraucht wird
ClassControlValues.LoadControlValuesList(CURRENT_FORM_ID, CtrlBuilder.MasterPanel.Controls)
'Zurücksetzen 'Zurücksetzen
ENTITY_LOADED = True ENTITY_LOADED = True
@@ -1565,7 +1544,7 @@ Public Class frmForm_Constructor_Main_2
CURRENT_RECORD_ID = Grid_RecordID CURRENT_RECORD_ID = Grid_RecordID
'Daten zu Record in jedem Fall laden 'Daten zu Record in jedem Fall laden
'ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, CURRENT_FORM_ID, CtrlBuilder.AllControls) 'ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
ClassControlValues.LoadControlValuesNeu(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
' Laden der Daten bedeutet nicht dass Daten vom Benutzer geändert wurden! ' Laden der Daten bedeutet nicht dass Daten vom Benutzer geändert wurden!
RECORD_CHANGED = False RECORD_CHANGED = False
Update_Record_Label(Grid_RecordID) Update_Record_Label(Grid_RecordID)
@@ -2075,7 +2054,7 @@ Public Class frmForm_Constructor_Main_2
If TCDetails.SelectedTabPage.Text.StartsWith("Detail") Or TCDetails.SelectedTabPage.Text.StartsWith("Kopf") Then If TCDetails.SelectedTabPage.Text.StartsWith("Detail") Or TCDetails.SelectedTabPage.Text.StartsWith("Kopf") Then
'Daten zu Record in jedem Fall laden 'Daten zu Record in jedem Fall laden
'ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, CURRENT_FORM_ID, CtrlBuilder.AllControls) 'ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
ClassControlValues.LoadControlValuesNeu(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls) ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, CURRENT_PARENTID, CURRENT_FORM_ID, CtrlBuilder.AllControls)
End If End If
If TCDetails.SelectedTabPage.Text.ToLower.StartsWith("wieder") Then If TCDetails.SelectedTabPage.Text.ToLower.StartsWith("wieder") Then
tsButtonEditMode.Enabled = False tsButtonEditMode.Enabled = False

View File

@@ -409,7 +409,7 @@ Public Class frmFormInput
' SelectedFormID = RowView.Item(1) ' SelectedFormID = RowView.Item(1)
RefreshRecordByID(SelectedRecordID) RefreshRecordByID(SelectedRecordID)
ClassControlValues.LoadControlValuesNeu(SelectedRecordID, CURRENT_PARENTID, thisformid, pnlView.Controls) ClassControlValues.LoadControlValues(SelectedRecordID, CURRENT_PARENTID, thisformid, pnlView.Controls)
End If End If
load_Documents() load_Documents()
End If End If