MS_22042016
This commit is contained in:
@@ -489,10 +489,11 @@ Public Class ClassControlCommandsUI
|
||||
Private Sub UpdateAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
|
||||
Try
|
||||
For Each ctrl As Control In controls
|
||||
|
||||
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_RecordID(ctrl.Name, RecordID)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> CONTROL_ID: " & CONTROL_ID, False)
|
||||
Dim CONTROL_VALUE As String = GetControlValue(ctrl)
|
||||
|
||||
Dim controltype = ctrl.GetType.ToString
|
||||
If TypeOf ctrl Is PictureBox Then
|
||||
Dim id As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_Name(ctrl.Name, FormID)
|
||||
UpsertImage(id, RecordID, ctrl.BackgroundImage)
|
||||
@@ -520,8 +521,14 @@ Public Class ClassControlCommandsUI
|
||||
Dim ValueExists = ClassDatabase.Execute_Scalar(String.Format("SELECT RECORD_ID FROM VWPMO_VALUES WHERE RECORD_ID = {0} AND CONTROL_ID = {1}", RecordID, CONTROL_ID))
|
||||
|
||||
If IsNothing(ValueExists) Then ' Neues Control
|
||||
If CONTROL_ID = 995 Or CONTROL_ID = 996 Or CONTROL_ID = 997 Or CONTROL_ID = 810 Then
|
||||
Console.WriteLine("sdasd")
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> InsertControlValue: " & CONTROL_ID & "|" & RecordID & "|" & CONTROL_VALUE, False)
|
||||
If Not IsNothing(CONTROL_VALUE) Then
|
||||
If TypeOf ctrl Is CustomComboBox And CONTROL_VALUE = "" Then
|
||||
Exit Sub
|
||||
End If
|
||||
InsertControlValue(CONTROL_ID, RecordID, CONTROL_VALUE)
|
||||
End If
|
||||
Else ' Update Control
|
||||
@@ -538,8 +545,14 @@ Public Class ClassControlCommandsUI
|
||||
|
||||
Public Sub UpdateMultipleValues(ControlId As Integer, RecordId As Integer, value As String)
|
||||
Try
|
||||
If IsNothing(value) Then
|
||||
Exit Sub
|
||||
End If
|
||||
Dim values As New List(Of String)(value.Split(";"))
|
||||
Dim dt As DataTable = ClassDatabase.Return_Datatable(String.Format("SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlId, RecordId))
|
||||
If IsNothing(dt) Then
|
||||
Exit Sub
|
||||
End If
|
||||
' Konvertiere datatable zu liste
|
||||
Dim oldValues = dt.AsEnumerable().Select(Of String)(Function(r)
|
||||
Return r.Item("VALUE")
|
||||
@@ -562,163 +575,159 @@ Public Class ClassControlCommandsUI
|
||||
End Sub
|
||||
|
||||
Function GetControlValue(ctrl As Control) As String
|
||||
Dim CONTROL_ID As Integer
|
||||
Try
|
||||
Dim type = ctrl.GetType().Name
|
||||
CONTROL_ID = DirectCast(ctrl.Tag, ClassControlMetadata).Id ' GetControlID_for_RecordID(ctrl.Name, CURRENT_RECORD_ID)
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetControlValue CONTROL_ID: " & CONTROL_ID, False)
|
||||
Dim CONTROL_VALUE As String = Nothing
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> type = " & type.ToString, False)
|
||||
Select Case type
|
||||
Case "TextBox"
|
||||
Return DirectCast(ctrl, TextBox).Text
|
||||
Case "ComboBox"
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Return Value: " & DirectCast(ctrl, CustomComboBox).Text, False)
|
||||
Return DirectCast(ctrl, CustomComboBox).Text
|
||||
Case "CheckBox"
|
||||
Return DirectCast(ctrl, CheckBox).Checked.ToString()
|
||||
Case "RadioButton"
|
||||
Return DirectCast(ctrl, RadioButton).Checked.ToString()
|
||||
Case "DateEdit"
|
||||
Dim Value = DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).EditValue
|
||||
Dim type = ctrl.GetType().Name
|
||||
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id ' GetControlID_for_RecordID(ctrl.Name, CURRENT_RECORD_ID)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetControlValue CONTROL_ID: " & CONTROL_ID, False)
|
||||
Dim CONTROL_VALUE As String = Nothing
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> type = " & type.ToString, False)
|
||||
Select Case type
|
||||
Case "TextBox"
|
||||
Return DirectCast(ctrl, TextBox).Text
|
||||
Case "CustomComboBox"
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Return Value: " & DirectCast(ctrl, CustomComboBox).Text, False)
|
||||
Return DirectCast(ctrl, CustomComboBox).Text
|
||||
Case "CheckBox"
|
||||
Return DirectCast(ctrl, CheckBox).Checked.ToString()
|
||||
Case "RadioButton"
|
||||
Return DirectCast(ctrl, RadioButton).Checked.ToString()
|
||||
Case "DateEdit"
|
||||
Dim Value = DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).EditValue
|
||||
|
||||
If IsDBNull(Value) Then
|
||||
Return ""
|
||||
Else
|
||||
Return DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).DateTime.ToString("yyyy-MM-dd")
|
||||
End If
|
||||
Case "PictureBox"
|
||||
'Return "PictureBox" 'Es ist egal was für ein String hier zurückgegeben wird, hauptsache nicht Nothing
|
||||
Case "CheckedListBoxControl"
|
||||
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
|
||||
chklbx = DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
|
||||
If IsDBNull(Value) Then
|
||||
Return ""
|
||||
Else
|
||||
Return DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).DateTime.ToString("yyyy-MM-dd")
|
||||
End If
|
||||
Case "PictureBox"
|
||||
'Return "PictureBox" 'Es ist egal was für ein String hier zurückgegeben wird, hauptsache nicht Nothing
|
||||
Case "CheckedListBoxControl"
|
||||
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
|
||||
chklbx = DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
|
||||
Dim SQL_COMAMND = ClassDatabase.Execute_Scalar("SELECT UPPER(SQL_COMMAND_1) FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID)
|
||||
|
||||
'TODO: Wenn keine Datasource vorhanden, angecheckte einträge als string speichern
|
||||
If IsNothing(chklbx.DataSource) Then
|
||||
Dim result As New List(Of String)
|
||||
Dim result_string As String
|
||||
'TODO: Wenn keine Datasource vorhanden, angecheckte einträge als string speichern
|
||||
If IsNothing(chklbx.DataSource) Then
|
||||
Dim result As New List(Of String)
|
||||
Dim result_string As String
|
||||
|
||||
For Each item As DevExpress.XtraEditors.Controls.CheckedListBoxItem In chklbx.CheckedItems
|
||||
result.Add(item.Value.ToString.Trim)
|
||||
Next
|
||||
For Each item As DevExpress.XtraEditors.Controls.CheckedListBoxItem In chklbx.CheckedItems
|
||||
result.Add(item.Value.ToString.Trim)
|
||||
Next
|
||||
|
||||
result_string = String.Join(";", result)
|
||||
result_string = String.Join(";", result)
|
||||
|
||||
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
|
||||
' Überspringt den Rest der funktion
|
||||
Return result_string
|
||||
End If
|
||||
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
|
||||
' Überspringt den Rest der funktion
|
||||
Return result_string
|
||||
End If
|
||||
|
||||
Dim SQL_Datasource = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID
|
||||
SQL_Datasource = ClassDatabase.Execute_Scalar(SQL_Datasource)
|
||||
|
||||
If SQL_Datasource.ToUpper.Contains("SELECT [RECORD-ID],") Then
|
||||
'Alle Recorddatensätze durchlaufen und überprüfen ob nicht angehakt
|
||||
'Wenn nicht angehakt dann Record löschen
|
||||
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 chklbx.GetItemCheckState(i) = 0 Then
|
||||
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
|
||||
SQL = "DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
|
||||
If ClassDatabase.Execute_non_Query(SQL) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> TBPMO_RECORD_CONNECT-Entry after 'deselect CheckedListBox' deleted", False)
|
||||
End If
|
||||
If SQL_COMAMND.ToString.StartsWith("SELECT [RECORD_ID]") Or SQL_COMAMND.ToString.StartsWith("SELECT [RECORD-ID]") Then
|
||||
'Alle Recorddatensätze durchlaufen und überprüfen ob nicht angehakt
|
||||
'Wenn nicht angehakt dann Record löschen
|
||||
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 chklbx.GetItemCheckState(i) = 0 Then
|
||||
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
|
||||
SQL = "DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
|
||||
If ClassDatabase.Execute_non_Query(SQL) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> TBPMO_RECORD_CONNECT-Entry after 'deselect CheckedListBox' deleted", False)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
'Für jeden gecheckten Eintrag den Record der Stammentität mit dem selektierten linken
|
||||
Dim checked_result As New List(Of String)
|
||||
Dim checked_result_string As String
|
||||
Dim checked_Count As Integer = 0
|
||||
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
|
||||
checked_Count += 1
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
If SQL_Datasource.ToUpper.Contains("SELECT [RECORD-ID],") Then
|
||||
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
|
||||
Dim row As DataRowView = CType(item, DataRowView)
|
||||
Try
|
||||
If CInt(row(0)) > 0 Then
|
||||
Dim rid = CInt(row(0))
|
||||
Dim checked_value = row(1)
|
||||
checked_result.Add(checked_value)
|
||||
checked_result_string = String.Join(";", checked_result)
|
||||
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) = 0 Then
|
||||
If CURRENT_RECORD_ID = 0 Then
|
||||
MsgBox("Attention: no current record Selected!", MsgBoxStyle.Exclamation)
|
||||
Else
|
||||
If ConnectRecord(CURRENT_RECORD_ID, CInt(row(0)), "CheckedListBox;" & ctrl.Name) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Checked ListBox record '" & rid.ToString & "' was linked successfully.", False)
|
||||
End If
|
||||
|
||||
'Für jeden gecheckten Eintrag den Record der Stammentität mit dem selektierten linken
|
||||
Dim checked_result As New List(Of String)
|
||||
Dim checked_result_string As String
|
||||
If SQL_COMAMND.ToString.StartsWith("SELECT [RECORD_ID]") Or SQL_COMAMND.ToString.StartsWith("SELECT [RECORD-ID]") Then
|
||||
|
||||
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
|
||||
Dim row As DataRowView = CType(item, DataRowView)
|
||||
Try
|
||||
If CInt(row(0)) > 0 Then
|
||||
Dim rid = CInt(row(0))
|
||||
Dim checked_value = row(1)
|
||||
checked_result.Add(checked_value)
|
||||
checked_result_string = String.Join(";", checked_result)
|
||||
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) = 0 Then
|
||||
If CURRENT_RECORD_ID = 0 Then
|
||||
MsgBox("Attention: no current record Selected!", MsgBoxStyle.Exclamation)
|
||||
Else
|
||||
If ConnectRecord(CURRENT_RECORD_ID, CInt(row(0)), "CheckedListBox;" & ctrl.Name) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Checked ListBox record '" & rid.ToString & "' was linked successfully.", False)
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Error in CheckedListBoxGetControlValue: " & ex.Message, True)
|
||||
End Try
|
||||
|
||||
Next
|
||||
Else
|
||||
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
|
||||
Dim row As DataRowView = CType(item, DataRowView)
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Error in CheckedListBoxGetControlValue: " & ex.Message, True)
|
||||
End Try
|
||||
|
||||
Next
|
||||
Else
|
||||
|
||||
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
|
||||
Dim row As DataRowView = CType(item, DataRowView)
|
||||
If row.DataView.Table.Columns.Count = 1 Then
|
||||
Dim checked_value = row(0)
|
||||
checked_result.Add(checked_value)
|
||||
ElseIf row.DataView.Table.Columns.Count = 2 Then
|
||||
Dim checked_value = row(1)
|
||||
checked_result.Add(checked_value)
|
||||
checked_result_string = String.Join(";", checked_result)
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
|
||||
' Überspringt den Rest der funktion
|
||||
If Not IsNothing(checked_result_string) Then
|
||||
Dim sql = String.Format("select count(*) from TBPMO_CONTROL_VALUE where CONTROL_ID = {0} and RECORD_ID = {1}", CONTROL_ID, CURRENT_RECORD_ID)
|
||||
If ClassDatabase.Execute_Scalar(sql) = 0 And checked_Count > 0 Then
|
||||
InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, "")
|
||||
End If
|
||||
Return checked_result_string
|
||||
Else
|
||||
'In jedem Fall Nothing zurückgeben
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
|
||||
Case "ListBoxControl"
|
||||
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(ctrl, DevExpress.XtraEditors.ListBoxControl)
|
||||
Return listbox.SelectedValue
|
||||
|
||||
Case "DataGridView"
|
||||
Dim list As New List(Of String)
|
||||
Dim dgv As DataGridView = DirectCast(ctrl, DataGridView)
|
||||
|
||||
For Each row As DataGridViewRow In dgv.Rows
|
||||
Dim cell As DataGridViewCell = row.Cells(0)
|
||||
If Not IsNothing(cell.Value) Then
|
||||
list.Add(cell.Value)
|
||||
End If
|
||||
checked_result_string = String.Join(";", checked_result)
|
||||
Next
|
||||
|
||||
|
||||
Return String.Join(";", list)
|
||||
|
||||
Case Else
|
||||
|
||||
End If
|
||||
|
||||
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
|
||||
' Überspringt den Rest der funktion
|
||||
If Not IsNothing(checked_result_string) Then
|
||||
'Dim sql = String.Format("select count(*) from TBPMO_CONTROL_VALUE where CONTROL_ID = {0} and RECORD_ID = {1}", CONTROL_ID, CURRENT_RECORD_ID)
|
||||
'If ClassDatabase.Execute_Scalar(sql) = 0 Then
|
||||
' InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, "")
|
||||
'End If
|
||||
Return checked_result_string
|
||||
Else
|
||||
'In jedem Fall Nothing zurückgeben
|
||||
Return Nothing
|
||||
End Select
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected error in GetControlValue for Control-ID: " & CONTROL_ID & " - error: " & ex.Message)
|
||||
Return Nothing
|
||||
End Try
|
||||
End If
|
||||
|
||||
|
||||
Case "ListBoxControl"
|
||||
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(ctrl, DevExpress.XtraEditors.ListBoxControl)
|
||||
Return listbox.SelectedValue
|
||||
|
||||
Case "DataGridView"
|
||||
Dim list As New List(Of String)
|
||||
Dim dgv As DataGridView = DirectCast(ctrl, DataGridView)
|
||||
|
||||
For Each row As DataGridViewRow In dgv.Rows
|
||||
Dim cell As DataGridViewCell = row.Cells(0)
|
||||
If Not IsNothing(cell.Value) Then
|
||||
list.Add(cell.Value)
|
||||
End If
|
||||
Next
|
||||
|
||||
Return String.Join(";", list)
|
||||
|
||||
Case Else
|
||||
Return Nothing
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Public Shared Function InsertControlValue(ControlID As Integer, RecordID As Integer, Value As String)
|
||||
|
||||
Reference in New Issue
Block a user