899 lines
49 KiB
VB.net
899 lines
49 KiB
VB.net
Imports DevExpress.XtraEditors.Controls
|
|
|
|
Public Class ClassControlValues
|
|
Private Shared Function LoadControlAutoValue(ControlID As Integer, RecordID As Integer, control As Control) As String
|
|
|
|
If TypeOf control Is Label Then
|
|
'If ControlID = 320 Then
|
|
' MsgBox("")
|
|
'End If
|
|
' Dim SQL As String = "SELECT CONTROL_TYPE_ID FROM TBPMO_CONTROL WHERE GUID = " & ControlID
|
|
' Dim type As Integer = ClassDatabase.Execute_Scalar(SQL)
|
|
Dim SQL
|
|
' Wenn kein/leerer Wert gefunden, suche nach einem SQL Command für Automatischen Wert
|
|
'If type = 1 Then
|
|
Dim autoValue
|
|
SQL = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & ControlID
|
|
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
|
|
MsgBox("Error in LoadControlValue:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
#Region "#### ClassControlValues REWRITE ####"
|
|
Public Shared Sub LoadControlValuesNeu(RecordId As Integer, FormId As Integer, controls As Control.ControlCollection)
|
|
Try
|
|
Dim SQL As String = String.Format("SELECT * FROM VWPMO_VALUES WHERE VALUE <> '' AND RECORD_ID = {0}", RecordId)
|
|
Dim DT_ControlValues As DataTable = ClassDatabase.Return_Datatable(SQL, "LoadControlValues")
|
|
If controls.Count = 0 Then
|
|
ClassLogger.Add("the control-Collection in LoadControlValuesNeu is empty!", True)
|
|
End If
|
|
For Each control As Control In controls
|
|
Dim ControlId As Integer = CInt(control.Tag)
|
|
'Dim SQL1 As String = String.Format("SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = {0} AND VALUE <> '' AND RECORD_ID = {1}", ControlId, RecordId)
|
|
'Dim value = ClassDatabase.Execute_Scalar(SQL1)
|
|
|
|
' Wert per LINQ aus DT_ControlValues suchen der zur aktuellen controlId passt
|
|
Dim value = (From row In DT_ControlValues.AsEnumerable()
|
|
Where row.Item("CONTROL_ID") = ControlId
|
|
Select row.Item("VALUE")).SingleOrDefault()
|
|
|
|
If TypeOf control Is GroupBox Then
|
|
Dim groupbox As GroupBox = DirectCast(control, GroupBox)
|
|
LoadControlValuesNeu(RecordId, FormId, groupbox.Controls)
|
|
Else
|
|
LoadControlValueNeu(RecordId, ControlId, control, value)
|
|
End If
|
|
|
|
'If Not IsNothing(value) Then
|
|
' ' Continue For
|
|
' If TypeOf control Is GroupBox Then
|
|
' Dim groupbox As GroupBox = DirectCast(control, GroupBox)
|
|
' LoadControlValuesNeu(RecordId, FormId, groupbox.Controls)
|
|
' Else
|
|
' LoadControlValueNeu(RecordId, ControlId, control, value)
|
|
' End If
|
|
'Else
|
|
' If TypeOf control Is DevExpress.XtraEditors.CheckedListBoxControl Then
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> control DevExpress.XtraEditors.CheckedListBoxControl", False)
|
|
' Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
|
|
' chklbx = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
|
|
' Dim chklbSql As String = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & ControlId
|
|
' ' chklbSql = ClassDatabase.Execute_Scalar(chklbSql)
|
|
' ' If Not (chklbSql Is Nothing Or chklbSql = String.Empty) Then
|
|
' ' If chklbSql.ToString.Contains("@") Then
|
|
' ' chklbSql = chklbSql.ToString.Replace("@RECORDID", CURRENT_RECORD_ID)
|
|
' ' chklbSql = chklbSql.ToString.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
|
' ' chklbSql = chklbSql.ToString.Replace("@PARENTRECORD_ID", CURRENT_PARENTID)
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> SQL CheckedListBox: " & chklbSql, False)
|
|
' ' 'SQL-Command vorhanden also Ausführen des SQL
|
|
' ' Dim DT_ListBox As DataTable = ClassDatabase.Return_Datatable(chklbSql, "LoadControlValues: CheckedListBox")
|
|
' ' If DT_ListBox Is Nothing = False Then
|
|
' ' chklbx.DataSource = DT_ListBox
|
|
' ' Select Case DT_ListBox.Columns.Count
|
|
' ' Case 2
|
|
' ' chklbx.DisplayMember = DT_ListBox.Columns(1).ColumnName
|
|
' ' chklbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' Case 1
|
|
' ' chklbx.DisplayMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' chklbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' End Select
|
|
' ' End If
|
|
' ' End If
|
|
' ' ElseIf (chklbSql = String.Empty) Then
|
|
' ' ' Wenn keine SQL Command ein leerer String ist,
|
|
' ' ' lade das Control ohne Datenbank, da es wahrscheinlich eine Static List ist
|
|
' ' chklbSql = "SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = " & CONTROL_ID & " AND RECORD_ID = " & RecordID
|
|
' ' Dim result As String = ClassDatabase.Execute_Scalar(chklbSql)
|
|
' ' If Not IsNothing(result) Then
|
|
' ' If result.ToString <> String.Empty Then
|
|
' ' Dim entries() As String = result.Split(";")
|
|
' ' For Each entry As String In entries
|
|
' ' Dim position = chklbx.FindStringExact(entry)
|
|
' ' chklbx.SetItemCheckState(position, CheckState.Checked)
|
|
' ' Next
|
|
' ' End If
|
|
' ' End If
|
|
' ' Continue For
|
|
' ' Else
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> chklbSql is nothing", False)
|
|
' ' End If
|
|
' ' chklbx.UnCheckAll()
|
|
' ' 'Recorddatensätze durchlaufen und überprüfen ob angehakt??
|
|
' ' Dim index As Integer = 0
|
|
' ' For i As Integer = 0 To chklbx.ItemCount - 1
|
|
' ' Dim item = chklbx.GetItem(i)
|
|
' ' Dim row As DataRowView = CType(item, DataRowView)
|
|
' ' If CInt(row(0)) > 0 Then
|
|
' ' 'Überprüfen ob es den Record gibt
|
|
' ' Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
|
|
' ' If ClassDatabase.Execute_Scalar(SQL) = 1 Then
|
|
' ' chklbx.SetItemChecked(i, True)
|
|
' ' End If
|
|
' ' End If
|
|
' ' Next
|
|
' ElseIf TypeOf control Is Label Then
|
|
' LoadControlValueNeu(RecordId, ControlId, control, value)
|
|
' End If
|
|
'End If
|
|
|
|
|
|
Next
|
|
Catch ex As Exception
|
|
MsgBox("Error in LoadControlValuesNeu:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Shared Sub LoadControlValueNeu(recordId As Integer, controlId As Integer, control As Control, value As Object)
|
|
Try
|
|
Select Case control.GetType()
|
|
Case GetType(TextBox)
|
|
Dim textbox As TextBox = DirectCast(control, TextBox)
|
|
ControlLoader.TextBox.LoadValue(textbox, value)
|
|
|
|
Case GetType(Label)
|
|
Dim label As Label = DirectCast(control, Label)
|
|
ControlLoader.Label.LoadValue(label, value)
|
|
|
|
Case GetType(ComboBox)
|
|
Dim combobox As ComboBox = DirectCast(control, ComboBox)
|
|
ControlLoader.Combobox.LoadValue(combobox, value)
|
|
|
|
Case GetType(CheckBox)
|
|
Dim checkbox As CheckBox = DirectCast(control, CheckBox)
|
|
ControlLoader.Checkbox.LoadValue(checkbox, value)
|
|
|
|
Case GetType(RadioButton)
|
|
Dim radiobutton As RadioButton = DirectCast(control, RadioButton)
|
|
ControlLoader.RadioButton.LoadValue(radiobutton, value)
|
|
|
|
Case GetType(DevExpress.XtraEditors.DateEdit)
|
|
Dim datepicker As DevExpress.XtraEditors.DateEdit = DirectCast(control, DevExpress.XtraEditors.DateEdit)
|
|
ControlLoader.DateTimePicker.LoadValue(datepicker, value)
|
|
|
|
Case GetType(DevExpress.XtraEditors.ListBoxControl)
|
|
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
|
|
ControlLoader.ListBox.LoadValue(listbox, value)
|
|
|
|
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
|
|
Dim checkedlistbox As DevExpress.XtraEditors.CheckedListBoxControl = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
|
|
ControlLoader.CheckedListBox.LoadValue(checkedlistbox, value)
|
|
|
|
Case GetType(PictureBox)
|
|
Dim picturebox = DirectCast(control, PictureBox)
|
|
LoadImage(recordId, controlId, picturebox)
|
|
|
|
Case Else
|
|
If LogErrorsOnly = False Then ClassLogger.Add(">> Sub LoadControlValue - Control-Type nicht berücksichtigt: " & GetType(Control).ToString(), False)
|
|
End Select
|
|
Catch ex As Exception
|
|
MsgBox("Error in LoadControlValue:" & vbNewLine & ex.Message)
|
|
End Try
|
|
|
|
'Try
|
|
' Select Case control.GetType()
|
|
' Case GetType(TextBox)
|
|
' Dim textbox As TextBox = DirectCast(control, TextBox)
|
|
' textbox.Text = value
|
|
' Case GetType(Label)
|
|
' Dim label As Label = DirectCast(control, Label)
|
|
' Dim autoValue As String = LoadControlAutoValue(controlId, recordId, control)
|
|
|
|
' If IsNothing(autoValue) Then
|
|
' label.Text = value
|
|
' Else
|
|
' label.Text = autoValue
|
|
' End If
|
|
' Case GetType(ComboBox)
|
|
' Dim combobox As ComboBox = DirectCast(control, ComboBox)
|
|
' combobox.Text = value
|
|
' Case GetType(CheckBox)
|
|
' Dim checkbox As CheckBox = DirectCast(control, CheckBox)
|
|
' checkbox.Checked = Boolean.Parse(value)
|
|
' Case GetType(RadioButton)
|
|
' Dim radiobutton As RadioButton = DirectCast(control, RadioButton)
|
|
' radiobutton.Checked = Boolean.Parse(value)
|
|
' Case GetType(DevExpress.XtraEditors.DateEdit)
|
|
' Dim datepicker As DevExpress.XtraEditors.DateEdit = DirectCast(control, DevExpress.XtraEditors.DateEdit)
|
|
' If value = String.Empty Or value = "00:00:00" Then
|
|
' datepicker.DateTime = DateTime.MinValue
|
|
' Else
|
|
' datepicker.DateTime = DateTime.Parse(value)
|
|
' End If
|
|
' Case GetType(DevExpress.XtraEditors.ListBoxControl)
|
|
' Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
|
|
' listbox.SelectedIndex = listbox.FindStringExact(value)
|
|
' Case GetType(PictureBox)
|
|
' LoadImage(recordId, controlId, control)
|
|
' Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
|
|
' Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
|
|
' chklbx = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
|
|
' If Not IsNothing(value) Then
|
|
' If value.ToString <> String.Empty Then
|
|
' Dim entries() As String = value.Split(";")
|
|
' For Each entry As String In entries
|
|
' Dim position = chklbx.FindStringExact(entry)
|
|
' chklbx.SetItemCheckState(position, CheckState.Checked)
|
|
' Next
|
|
' End If
|
|
' End If
|
|
' Case Else
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> Sub LoadControlValueNeu - Control-Type is not being worked: " & GetType(Control).ToString(), False)
|
|
' End Select
|
|
'Catch ex As Exception
|
|
' MsgBox("Error in LoadControlValueNeu:" & vbNewLine & ex.Message)
|
|
'End Try
|
|
End Sub
|
|
|
|
'Private Shared Function CheckForStaticList(controlId As Integer, recordId As Integer)
|
|
' Try
|
|
' Dim SQL As String = String.Format("SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", controlId, recordId)
|
|
' Dim staticList As String = ClassDatabase.Execute_Scalar(SQL)
|
|
|
|
' If IsNothing(staticList) Then
|
|
' Return Nothing
|
|
' Else
|
|
' Return staticList
|
|
' End If
|
|
' Catch ex As Exception
|
|
' MsgBox("Error in CheckForStaticList: " & vbNewLine & ex.Message)
|
|
' End Try
|
|
'End Function
|
|
|
|
'Private Shared Function CheckForSqlCommand(controlId As Integer) As DataTable
|
|
' Try
|
|
' Dim SQL As String = String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", controlId)
|
|
' Dim SqlCommand As String = ClassDatabase.Execute_Scalar(SQL)
|
|
|
|
' If SqlCommand Is Nothing Or SqlCommand = String.Empty Then
|
|
' Return Nothing
|
|
' End If
|
|
|
|
' If SqlCommand.Contains("@") Then
|
|
' SqlCommand = ReplaceSqlCommandPlaceholders(SqlCommand)
|
|
' End If
|
|
|
|
' Return ClassDatabase.Return_Datatable(SqlCommand)
|
|
' Catch ex As Exception
|
|
' MsgBox("Error in CheckForSqlCommand: " & vbNewLine & ex.Message)
|
|
' End Try
|
|
'End Function
|
|
|
|
'Private Shared Function ReplaceSqlCommandPlaceholders(sqlCommand As String)
|
|
' sqlCommand = sqlCommand.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
|
' sqlCommand = sqlCommand.Replace("@RECORDID", CURRENT_RECORD_ID)
|
|
' sqlCommand = sqlCommand.Replace("PARENTRECORD_ID", CURRENT_PARENTID)
|
|
' sqlCommand = sqlCommand.Replace("PARENTRECORDID", CURRENT_PARENTID)
|
|
|
|
' Return sqlCommand
|
|
'End Function
|
|
#End Region
|
|
|
|
|
|
|
|
'Public Shared Sub LoadControlValues(RecordID As Integer, FormID As Integer, controls As Control.ControlCollection)
|
|
' Try
|
|
' Dim CONTROL_ID As Integer
|
|
|
|
' ClearControlValues(controls)
|
|
|
|
' For Each control As Control In controls
|
|
' 'Überhaupt Columns in Grid?
|
|
' CONTROL_ID = GetControlID_for_RecordID(control.Name, RecordID)
|
|
' If CONTROL_ID = -1 Then
|
|
' CONTROL_ID = GetControlID_for_Name(control.Name, FormID)
|
|
' End If
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> CONTROL_ID:" & CONTROL_ID, False)
|
|
' ClearControlValue(control)
|
|
' If TypeOf control Is ComboBox Then
|
|
' LoadControlValue_forControl(RecordID, FormID, DirectCast(control, ComboBox), CONTROL_ID)
|
|
' 'LoadControlValues(RecordID, FormID, DirectCast(control, ComboBox).Controls)
|
|
' ElseIf TypeOf control Is GroupBox Then
|
|
' 'LoadControlValue_forControl(RecordID, FormID, DirectCast(control, GroupBox), CONTROL_ID)
|
|
' LoadControlValues(RecordID, FormID, DirectCast(control, GroupBox).Controls)
|
|
' ElseIf TypeOf control Is PictureBox Then
|
|
' LoadImage(RecordID, CONTROL_ID, control)
|
|
' Else
|
|
' LoadControlValue(RecordID, CONTROL_ID, control)
|
|
' End If
|
|
' ''EINE CheckedListBoxControl
|
|
' 'If TypeOf control Is DevExpress.XtraEditors.CheckedListBoxControl Then
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> control DevExpress.XtraEditors.CheckedListBoxControl", False)
|
|
' ' Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
|
|
' ' chklbx = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
|
|
|
|
' ' Dim chklbSql As String = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID
|
|
' ' chklbSql = ClassDatabase.Execute_Scalar(chklbSql)
|
|
' ' If Not (chklbSql Is Nothing Or chklbSql = String.Empty) Then
|
|
' ' If chklbSql.ToString.Contains("@") Then
|
|
' ' chklbSql = chklbSql.ToString.Replace("@RECORDID", CURRENT_RECORD_ID)
|
|
' ' chklbSql = chklbSql.ToString.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
|
' ' chklbSql = chklbSql.ToString.Replace("@PARENTRECORD_ID", CURRENT_PARENTID)
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> SQL CheckedListBox: " & chklbSql, False)
|
|
' ' 'SQL-Command vorhanden also Ausführen des SQL
|
|
' ' Dim DT_ListBox As DataTable = ClassDatabase.Return_Datatable(chklbSql, "LoadControlValues: CheckedListBox")
|
|
' ' If DT_ListBox Is Nothing = False Then
|
|
' ' chklbx.DataSource = DT_ListBox
|
|
' ' Select Case DT_ListBox.Columns.Count
|
|
' ' Case 2
|
|
' ' chklbx.DisplayMember = DT_ListBox.Columns(1).ColumnName
|
|
' ' chklbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' Case 1
|
|
' ' chklbx.DisplayMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' chklbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' End Select
|
|
|
|
' ' End If
|
|
' ' End If
|
|
|
|
' ' ElseIf (chklbSql = String.Empty) Then
|
|
' ' ' Wenn keine SQL Command ein leerer String ist,
|
|
' ' ' lade das Control ohne Datenbank, da es wahrscheinlich eine Static List ist
|
|
' ' chklbSql = "SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = " & CONTROL_ID & " AND RECORD_ID = " & RecordID
|
|
' ' Dim result As String = ClassDatabase.Execute_Scalar(chklbSql)
|
|
|
|
' ' If Not IsNothing(result) Then
|
|
' ' If result.ToString <> String.Empty Then
|
|
' ' Dim entries() As String = result.Split(";")
|
|
' ' For Each entry As String In entries
|
|
' ' Dim position = chklbx.FindStringExact(entry)
|
|
' ' chklbx.SetItemCheckState(position, CheckState.Checked)
|
|
' ' Next
|
|
' ' End If
|
|
' ' End If
|
|
|
|
' ' Continue For
|
|
' ' Else
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> chklbSql is nothing", False)
|
|
' ' End If
|
|
|
|
' ' chklbx.UnCheckAll()
|
|
' ' 'Recorddatensätze durchlaufen und überprüfen ob angehakt??
|
|
' ' Dim index As Integer = 0
|
|
' ' For i As Integer = 0 To chklbx.ItemCount - 1
|
|
' ' Dim item = chklbx.GetItem(i)
|
|
' ' Dim row As DataRowView = CType(item, DataRowView)
|
|
' ' If CInt(row(0)) > 0 Then
|
|
' ' 'Überprüfen ob es den Record gibt
|
|
' ' Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
|
|
' ' If ClassDatabase.Execute_Scalar(SQL) = 1 Then
|
|
' ' chklbx.SetItemChecked(i, True)
|
|
' ' End If
|
|
' ' End If
|
|
|
|
' ' Next
|
|
' 'ElseIf TypeOf control Is DevExpress.XtraEditors.ListBoxControl Then
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> control DevExpress.XtraEditors.ListBoxControl", False)
|
|
' ' Dim lbx As DevExpress.XtraEditors.ListBoxControl
|
|
' ' lbx = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
|
|
' ' Dim lbSql As String = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID
|
|
' ' lbSql = ClassDatabase.Execute_Scalar(lbSql)
|
|
' ' If Not (lbSql Is Nothing Or lbSql = String.Empty) Then
|
|
' ' If lbSql.ToString.Contains("@") Then
|
|
' ' lbSql = lbSql.ToString.Replace("@RECORDID".ToUpper, CURRENT_RECORD_ID)
|
|
' ' lbSql = lbSql.ToString.Replace("@RECORD_ID".ToUpper, CURRENT_RECORD_ID)
|
|
' ' lbSql = lbSql.ToString.Replace("@PARENTRECORD_ID".ToUpper, CURRENT_PARENTID)
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> SQL ListBox: " & lbSql, False)
|
|
' ' 'SQL-Command vorhanden also Ausführen des SQL
|
|
' ' Dim DT_ListBox As DataTable = ClassDatabase.Return_Datatable(lbSql, "LoadControlValues: ListBoxControl")
|
|
' ' If DT_ListBox Is Nothing = False Then
|
|
' ' lbx.DataSource = DT_ListBox
|
|
' ' Select Case DT_ListBox.Columns.Count
|
|
' ' Case 2
|
|
' ' lbx.DisplayMember = DT_ListBox.Columns(1).ColumnName
|
|
' ' lbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' Case 1
|
|
' ' lbx.DisplayMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' lbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' ' End Select
|
|
' ' If DT_ListBox.Columns.Count > 1 Then
|
|
|
|
' ' End If
|
|
|
|
' ' Else
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> DT_ListBox is nothing", False)
|
|
' ' End If
|
|
' ' Else
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> lbSql.ToString NOT Contains(@)", False)
|
|
' ' End If
|
|
' ' ElseIf (lbSql = String.Empty) Then
|
|
' ' ' Wenn keine SQL Command ein leerer String ist,
|
|
' ' ' lade das Control ohne Datenbank, da es wahrscheinlich eine Static List ist
|
|
' ' LoadControlValue(RecordID, CONTROL_ID, control)
|
|
' ' Continue For
|
|
' ' Else
|
|
' ' If LogErrorsOnly = False Then ClassLogger.Add(">> lbSql is nothing", False)
|
|
' ' End If
|
|
' 'ElseIf CONTROL_ID <> -1 Then
|
|
' ' 'If LogErrorsOnly = False Then ClassLogger.Add(">> LoadControlValues CONTROL_ID: " & CONTROL_ID, False)
|
|
' ' LoadControlValue(RecordID, CONTROL_ID, control)
|
|
' 'End If
|
|
' Next
|
|
' Catch ex As Exception
|
|
' MsgBox("Unexpected Error in LoadControlValues:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
' End Try
|
|
|
|
'End Sub
|
|
'Public Shared Sub LoadControlValue_forControl(RecordID As Integer, FormID As Integer, control As System.Windows.Forms.Control, CONTROL_ID As Integer)
|
|
' Try
|
|
' 'EINE CheckedListBoxControl
|
|
' If TypeOf control Is DevExpress.XtraEditors.CheckedListBoxControl Then
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> control DevExpress.XtraEditors.CheckedListBoxControl", False)
|
|
' Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
|
|
' chklbx = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
|
|
|
|
' Dim chklbSql As String = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID
|
|
' chklbSql = ClassDatabase.Execute_Scalar(chklbSql)
|
|
' If Not (chklbSql Is Nothing Or chklbSql = String.Empty) Then
|
|
' If chklbSql.ToString.Contains("@") Then
|
|
' chklbSql = chklbSql.ToString.Replace("@RECORDID", CURRENT_RECORD_ID)
|
|
' chklbSql = chklbSql.ToString.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
|
' chklbSql = chklbSql.ToString.Replace("@PARENTRECORD_ID", CURRENT_PARENTID)
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> SQL CheckedListBox: " & chklbSql, False)
|
|
' 'SQL-Command vorhanden also Ausführen des SQL
|
|
' Dim DT_ListBox As DataTable = ClassDatabase.Return_Datatable(chklbSql, "LoadControlValue_forControl: CheckedListBox")
|
|
' If DT_ListBox Is Nothing = False Then
|
|
' chklbx.DataSource = DT_ListBox
|
|
' Select Case DT_ListBox.Columns.Count
|
|
' Case 2
|
|
' chklbx.DisplayMember = DT_ListBox.Columns(1).ColumnName
|
|
' chklbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' Case 1
|
|
' chklbx.DisplayMember = DT_ListBox.Columns(0).ColumnName
|
|
' chklbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' End Select
|
|
|
|
' End If
|
|
' End If
|
|
' ElseIf (chklbSql = String.Empty) Then
|
|
' ' Wenn keine SQL Command ein leerer String ist,
|
|
' ' lade das Control ohne Datenbank, da es wahrscheinlich eine Static List ist
|
|
' chklbSql = "SELECT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = " & CONTROL_ID & " AND RECORD_ID = " & RecordID
|
|
' Dim result As String = ClassDatabase.Execute_Scalar(chklbSql)
|
|
|
|
' If Not IsNothing(result) Then
|
|
' If result.ToString <> String.Empty Then
|
|
' Dim entries() As String = result.Split(";")
|
|
' For Each entry As String In entries
|
|
' Dim position = chklbx.FindStringExact(entry)
|
|
' chklbx.SetItemCheckState(position, CheckState.Checked)
|
|
' Next
|
|
' End If
|
|
' End If
|
|
' Else
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> chklbSql is nothing", False)
|
|
' End If
|
|
|
|
' chklbx.UnCheckAll()
|
|
' 'Recorddatensätze durchlaufen und überprüfen ob angehakt??
|
|
' Dim index As Integer = 0
|
|
' For i As Integer = 0 To chklbx.ItemCount - 1
|
|
' Dim item = chklbx.GetItem(i)
|
|
' Dim row As DataRowView = CType(item, DataRowView)
|
|
' If CInt(row(0)) > 0 Then
|
|
' 'Überprüfen ob es den Record gibt
|
|
' Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
|
|
' If ClassDatabase.Execute_Scalar(SQL) = 1 Then
|
|
' chklbx.SetItemChecked(i, True)
|
|
' End If
|
|
' End If
|
|
|
|
' Next
|
|
' ElseIf TypeOf control Is DevExpress.XtraEditors.ListBoxControl Then
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> control DevExpress.XtraEditors.ListBoxControl", False)
|
|
' Dim lbx As DevExpress.XtraEditors.ListBoxControl
|
|
' lbx = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
|
|
' Dim lbSql As String = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID
|
|
' lbSql = ClassDatabase.Execute_Scalar(lbSql)
|
|
' If Not (lbSql Is Nothing Or lbSql = String.Empty) Then
|
|
' If lbSql.ToString.Contains("@") Then
|
|
' lbSql = lbSql.ToString.Replace("@RECORDID".ToUpper, CURRENT_RECORD_ID)
|
|
' lbSql = lbSql.ToString.Replace("@RECORD_ID".ToUpper, CURRENT_RECORD_ID)
|
|
' lbSql = lbSql.ToString.Replace("@PARENTRECORD_ID".ToUpper, CURRENT_PARENTID)
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> SQL ListBox: " & lbSql, False)
|
|
' 'SQL-Command vorhanden also Ausführen des SQL
|
|
' Dim DT_ListBox As DataTable = ClassDatabase.Return_Datatable(lbSql, "LoadControlValue_forControl: ListBoxControl")
|
|
' If DT_ListBox Is Nothing = False Then
|
|
' lbx.DataSource = DT_ListBox
|
|
' Select Case DT_ListBox.Columns.Count
|
|
' Case 2
|
|
' lbx.DisplayMember = DT_ListBox.Columns(1).ColumnName
|
|
' lbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' Case 1
|
|
' lbx.DisplayMember = DT_ListBox.Columns(0).ColumnName
|
|
' lbx.ValueMember = DT_ListBox.Columns(0).ColumnName
|
|
' End Select
|
|
' If DT_ListBox.Columns.Count > 1 Then
|
|
|
|
' End If
|
|
|
|
' Else
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> DT_ListBox is nothing", False)
|
|
' End If
|
|
' Else
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> lbSql.ToString NOT Contains(@)", False)
|
|
' End If
|
|
' ElseIf (lbSql = String.Empty) Then
|
|
' ' Wenn keine SQL Command ein leerer String ist,
|
|
' ' lade das Control ohne Datenbank, da es wahrscheinlich eine Static List ist
|
|
' LoadControlValue(RecordID, CONTROL_ID, control)
|
|
' Else
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> lbSql is nothing", False)
|
|
' End If
|
|
' ElseIf CONTROL_ID <> -1 Then
|
|
' 'If LogErrorsOnly = False Then ClassLogger.Add(">> LoadControlValue_forControl CONTROL_ID: " & CONTROL_ID, False)
|
|
' LoadControlValue(RecordID, CONTROL_ID, control)
|
|
' End If
|
|
|
|
' Catch ex As Exception
|
|
' MsgBox("Unexpected Error in LoadControlValue_forControl:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
' End Try
|
|
|
|
'End Sub
|
|
|
|
Public Shared Sub LoadControlValuesList(RecordID As Integer, FormID As Integer, controls As Control.ControlCollection)
|
|
Try
|
|
If controls.Count = 0 Then
|
|
MsgBox("Control.ControlCollection is unexpected empty!", MsgBoxStyle.Exclamation)
|
|
End If
|
|
Dim SW As Stopwatch = Stopwatch.StartNew()
|
|
|
|
For Each Ctrl As Control In controls
|
|
If TypeOf Ctrl Is ComboBox Then
|
|
Dim ControlId = Ctrl.Tag
|
|
Dim swInner As Stopwatch = Stopwatch.StartNew()
|
|
|
|
Dim Combobox = DirectCast(Ctrl, ComboBox)
|
|
|
|
Dim SQL As String = String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId) 'CURRENT_FORM_ID, Ctrl.Name)
|
|
Dim SQL2 As String = ClassDatabase.Execute_Scalar(SQL)
|
|
|
|
If SQL2 = "" Then
|
|
Continue For
|
|
End If
|
|
If SQL2.ToString.ToUpper.Contains("@") Then
|
|
SQL2 = SQL2.ToString.Replace("@RECORDID", CURRENT_RECORD_ID)
|
|
SQL2 = SQL2.ToString.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
|
SQL2 = SQL2.ToString.Replace("@PARENTRECORD_ID", CURRENT_PARENTID)
|
|
' If LogErrorsOnly = False Then ClassLogger.Add(">> SQL Combobox: " & cmbSql, False)
|
|
End If
|
|
|
|
'Dim controlId As Integer = GetControlID_for_Name(Combobox.Name, FormID)
|
|
'Dim DT_Combobox As DataTable = ClassDatabase.Return_Datatable(SQL2)
|
|
|
|
' Zuerst versuchen, DataTable aus dem Cache zu laden
|
|
Dim DT_Combobox As DataTable = ClassControlValueCache.LoadFromCache(FormID, controlId)
|
|
' Wenn DataTable nicht im Cache vorhanden, aus der Datenbank laden
|
|
If IsNothing(DT_Combobox) Then
|
|
DT_Combobox = ClassDatabase.Return_Datatable(SQL2)
|
|
End If
|
|
|
|
If DT_Combobox Is Nothing = False Then
|
|
If DT_Combobox.Rows.Count > 0 Then
|
|
Combobox.DataSource = DT_Combobox
|
|
Combobox.DisplayMember = DT_Combobox.Columns(1).ColumnName
|
|
Combobox.ValueMember = DT_Combobox.Columns(0).ColumnName
|
|
|
|
ClassControlValueCache.SaveToCache(FormID, controlId, DT_Combobox)
|
|
End If
|
|
|
|
Dim iWidestWidth As Integer = 300
|
|
For Each row As DataRow In DT_Combobox.Rows
|
|
'Die BReite der DropDown-Lsit anpassen
|
|
Using g As Graphics = Combobox.CreateGraphics
|
|
If g.MeasureString(row.Item(1).ToString, Combobox.Font).Width + 30 > iWidestWidth Then
|
|
iWidestWidth = g.MeasureString(row.Item(1).ToString, Combobox.Font).Width + 30
|
|
End If
|
|
g.Dispose()
|
|
End Using
|
|
' control.Items.Add(row.Item(0).ToString)
|
|
Next
|
|
|
|
If iWidestWidth > 300 Then
|
|
Combobox.DropDownWidth = Math.Max(iWidestWidth, Combobox.Width)
|
|
End If
|
|
|
|
LoadControlValue(RecordID, ControlId, Ctrl)
|
|
'LoadControlValueNeu(RecordID, ControlId, Ctrl, "")
|
|
End If
|
|
|
|
swInner.Stop()
|
|
Console.WriteLine("Loading List for Control {0} took {1} milliseconds", Ctrl.Name, swInner.ElapsedMilliseconds)
|
|
End If
|
|
|
|
|
|
Next
|
|
|
|
SW.Stop()
|
|
Console.WriteLine("LoadControlValuesList took {0} milliseconds to load", SW.ElapsedMilliseconds)
|
|
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in LoadControlValuesList:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
|
|
Public Shared Sub UnloadControlValuesList(RecordID As Integer, FormID As Integer, controls As Control.ControlCollection)
|
|
For Each C As Control In controls
|
|
If TypeOf C Is ComboBox Then
|
|
Dim Combobox = DirectCast(C, ComboBox)
|
|
Dim currentValue As String = Combobox.Text
|
|
Combobox.DataSource = Nothing
|
|
Combobox.Text = currentValue
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Public Shared Sub LoadImage(RecordID As Integer, ControlID As Integer, control As Control)
|
|
Dim picbox As PictureBox = DirectCast(control, PictureBox)
|
|
Dim SQL As String = String.Format("SELECT IMG FROM TBPMO_CONTROL_IMAGE WHERE RECORD_ID = {0} AND CONTROL_ID = {1}", RecordID, ControlID)
|
|
Dim bimage As Byte() = ClassDatabase.Execute_Scalar(SQL)
|
|
|
|
If Not IsNothing(bimage) Then
|
|
picbox.BackgroundImage = ByteArrayToBitmap(bimage)
|
|
picbox.BackgroundImageLayout = ImageLayout.Zoom
|
|
Else
|
|
picbox.BackgroundImage = Nothing
|
|
End If
|
|
End Sub
|
|
|
|
Public Shared Sub ClearControlValues(controls As Control.ControlCollection)
|
|
For Each control In controls
|
|
If control.GetType().Name = "GroupBox" Then
|
|
Dim groupbox As GroupBox = control
|
|
ClearControlValues(groupbox.Controls)
|
|
Else
|
|
ClearControlValue(control)
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Public Shared Sub ClearControlValue(control As Control)
|
|
Dim type = control.GetType().Name
|
|
|
|
Select Case type
|
|
Case "TextBox"
|
|
DirectCast(control, TextBox).Text = String.Empty
|
|
Case "ComboBox"
|
|
Dim combo As ComboBox = DirectCast(control, ComboBox)
|
|
combo.SelectedIndex = -1
|
|
combo.Text = String.Empty
|
|
Case "CheckBox"
|
|
DirectCast(control, CheckBox).Checked = False
|
|
Case "RadioButton"
|
|
DirectCast(control, RadioButton).Checked = False
|
|
Case "DateEdit"
|
|
DirectCast(control, DevExpress.XtraEditors.DateEdit).DateTime = Now
|
|
Case "PictureBox"
|
|
DirectCast(control, PictureBox).BackgroundImage = Nothing
|
|
Case "CheckedListBoxControl"
|
|
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
|
|
'If IsNothing(chklbx.DataSource) Then
|
|
chklbx.UnCheckAll()
|
|
'End If
|
|
'Case "ListBoxControl"
|
|
' Dim lbx As DevExpress.XtraEditors.ListBoxControl
|
|
' lbx = DirectCast(control, DevExpress.XtraEditors.ListBoxControl)
|
|
' lbx.DataSource = Nothing
|
|
Case Else
|
|
|
|
End Select
|
|
End Sub
|
|
|
|
Public Shared Sub LoadDefaultValues(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
|
|
Dim CONTROL_ID As Integer
|
|
|
|
' Zuerst alle Controls leeren
|
|
ClearControlValues(controls)
|
|
Dim i = 0
|
|
For Each control As Control In controls
|
|
|
|
CONTROL_ID = control.Tag ' GetControlID_for_Name(control.Name, FormID)
|
|
If Not (TypeOf control Is Label) Then
|
|
i += 1
|
|
End If
|
|
If TypeOf control Is GroupBox Then
|
|
LoadDefaultValues(FormID, RecordID, DirectCast(control, GroupBox).Controls)
|
|
ElseIf TypeOf control Is DevExpress.XtraEditors.CheckedListBoxControl Then
|
|
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
|
|
chklbx = DirectCast(control, DevExpress.XtraEditors.CheckedListBoxControl)
|
|
chklbx.UnCheckAll()
|
|
End If
|
|
|
|
If CONTROL_ID <> -1 Then
|
|
LoadDefaultValue(CONTROL_ID, RecordID, control)
|
|
End If
|
|
'Den Focus auf das erste Steuerelement setzen
|
|
If i = 1 Then
|
|
control.Focus()
|
|
End If
|
|
|
|
Next
|
|
End Sub
|
|
|
|
Public Shared Sub LoadDefaultValue(ControlID As Integer, RecordID As Integer, control As Control)
|
|
Try
|
|
Dim SQL = "SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & ControlID
|
|
Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL)
|
|
Dim result = DT.Rows(0).Item("CONTROL_DEF_VALUE")
|
|
|
|
Select Case DT.Rows(0).Item("CTRLTYPE_ID")
|
|
Case 2 ' TextBox
|
|
Dim textbox As TextBox = DirectCast(control, TextBox)
|
|
If IsDBNull(result) Then
|
|
textbox.Text = ""
|
|
Else
|
|
Dim vorgabe = result
|
|
'Wenn der Default Wert über einen Select kommt
|
|
If vorgabe.ToString.ToLower.StartsWith("select") Then
|
|
vorgabe = result.Replace("@FORM_ID", CURRENT_FORM_ID)
|
|
vorgabe = vorgabe.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
|
vorgabe = vorgabe.Replace("@RECORDID", CURRENT_RECORD_ID)
|
|
vorgabe = vorgabe.Replace("@PARENTRECORD_ID", CURRENT_PARENTID)
|
|
result = ClassDatabase.Execute_Scalar(vorgabe.ToString, True)
|
|
If IsNothing(vorgabe) Then
|
|
textbox.Text = ""
|
|
End If
|
|
End If
|
|
textbox.Text = result
|
|
|
|
End If
|
|
Case 10 ' CheckBox
|
|
Dim checkbox As CheckBox = DirectCast(control, CheckBox)
|
|
checkbox.Checked = StrToBool(result)
|
|
Case 11 'RadioButton
|
|
Dim radio As RadioButton = DirectCast(control, RadioButton)
|
|
radio.Checked = StrToBool(result)
|
|
Case 3 ' ComboBox
|
|
Dim combobox As ComboBox = DirectCast(control, ComboBox)
|
|
If IsDBNull(result) Then
|
|
combobox.SelectedIndex = -1
|
|
Else
|
|
combobox.SelectedIndex = combobox.FindStringExact(result)
|
|
End If
|
|
Case 4 'DateTimePicker
|
|
Dim datepicker As DevExpress.XtraEditors.DateEdit = DirectCast(control, DevExpress.XtraEditors.DateEdit)
|
|
If IsDBNull(result) OrElse result = "" OrElse result = "False" Then
|
|
result = Now
|
|
End If
|
|
|
|
datepicker.DateTime = result
|
|
End Select
|
|
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in LoadDefaultValue:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
Public Shared Function Get_Control_Value_for_ID(Control_ID As Integer, Record_ID As Integer)
|
|
Try
|
|
Return ClassDatabase.Execute_Scalar("SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = " & Control_ID & " AND RECORD_ID = " & Record_ID, True)
|
|
Catch ex As Exception
|
|
MsgBox("Error in GetControlValueForControlID:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
|
|
End Class
|