Revert "MS19042016"

This reverts commit fa5397cd24.
This commit is contained in:
JenneJ
2016-04-20 15:55:16 +02:00
parent fa5397cd24
commit c9fc63e237
7 changed files with 205 additions and 318 deletions

View File

@@ -562,163 +562,135 @@ 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 "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
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)
'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
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
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
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
For Each item As DevExpress.XtraEditors.Controls.CheckedListBoxItem In chklbx.CheckedItems
result.Add(item.Value.ToString.Trim)
Next
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
End If
result_string = String.Join(";", result)
End If
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
' Überspringt den Rest der funktion
Return result_string
End If
'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
Catch ex As Exception
ClassLogger.Add("Error in CheckedListBoxGetControlValue: " & ex.Message, True)
End Try
End If
End If
End If
Next
Next
Else
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
Dim row As DataRowView = CType(item, DataRowView)
'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
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)
Next
End If
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
' 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
End If
Return checked_result_string
Else
'In jedem Fall Nothing zurückgeben
Return Nothing
Catch ex As Exception
ClassLogger.Add("Error in CheckedListBoxGetControlValue: " & ex.Message, True)
End Try
Next
' 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
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 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)