This commit is contained in:
SchreiberM
2016-10-05 13:58:39 +02:00
parent c831a56a88
commit 4c42747a29
7 changed files with 172 additions and 642 deletions

View File

@@ -568,10 +568,7 @@ Public Class ClassControlCommandsUI
Public Shared 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
@@ -580,24 +577,33 @@ Public Class ClassControlCommandsUI
Dim oldValues = dt.AsEnumerable().Select(Of String)(Function(r)
Return r.Item("VALUE")
End Function).ToList()
If IsNothing(value) And dt.Rows.Count = 0 Then
Exit Sub
End If
Dim values As New List(Of String)
If Not IsNothing(value) Then
values = New List(Of String)(value.Split(";"))
Else
values.Add("")
End If
'Dim values As New List(Of String)(value.Split(";"))
Dim AddValues = values.Except(oldValues)
Dim RemoveValues = oldValues.Except(values)
Dim FORMAT_TYPE As String = ClassDatabase.Execute_Scalar("SELECT FORMAT_TYPE FROM TBPMO_CONTROL WHERE GUID = " & ControlId)
For Each v As String In AddValues
If Not v = String.Empty Then
For Each _addValue As String In AddValues
If Not _addValue = "" Then
Select Case FORMAT_TYPE
Case "Currency"
v = Decimal.Parse(v, Globalization.NumberStyles.Currency).ToString
_addValue = Decimal.Parse(_addValue, Globalization.NumberStyles.Currency).ToString
Case "Decimal"
v = Decimal.Parse(v, Globalization.NumberStyles.Integer)
_addValue = Decimal.Parse(_addValue, Globalization.NumberStyles.Integer)
End Select
Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE,ADDED_WHO) VALUES({0}, {1}, '{2}','{3}')", ControlId, RecordId, _addValue, Environment.UserName)
ClassDatabase.Execute_non_Query(ins)
End If
Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE,ADDED_WHO) VALUES({0}, {1}, '{2}','{3}')", ControlId, RecordId, v, Environment.UserName)
ClassDatabase.Execute_non_Query(ins)
Next
For Each v As String In RemoveValues
ClassDatabase.Execute_non_Query(String.Format("DELETE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1} AND VALUE = '{2}'", ControlId, RecordId, v))
Next