MS19052016_1

This commit is contained in:
SchreiberM
2016-05-19 11:38:40 +02:00
parent 186e674950
commit 2e5e1310fa
11 changed files with 142 additions and 45 deletions

View File

@@ -241,10 +241,6 @@ Public Class ClassControlBuilder
Exit Sub
End If
'If CURRENT_RECORD_ID = 0 Then
' Exit Sub
'End If
If IsNothing(value) Then 'Kein Value also abhängige Controls auf "Leer" setzen
For Each row As DataRow In TableResult.Rows
@@ -256,7 +252,7 @@ Public Class ClassControlBuilder
Return DirectCast(c.Tag, ClassControlMetadata).Id = dependingControlId
End Function).SingleOrDefault()
Dim type = dependingControl.GetType().Name
Select Case Type
Select Case type
Case "CustomComboBox"
DirectCast(dependingControl, CustomComboBox).DataSource = Nothing
Case "CheckedListBoxControl"
@@ -284,12 +280,22 @@ Public Class ClassControlBuilder
If match.Success Then
Dim sqlguid = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", CONTROL_ID, CURRENT_RECORD_ID)
Dim ctrlvalID = ClassDatabase.Execute_Scalar(sqlguid)
Select Case row.Item("FORMAT_TYPE")
Case "Currency"
value = Decimal.Parse(value, Globalization.NumberStyles.Currency).ToString
Case "Decimal"
value = Decimal.Parse(value, Globalization.NumberStyles.Integer)
End Select
Select Case row.Item("CONTROL_TYPE_ID")
Case 4 'DatePicker
value = CDate(value)
End Select
' Diese Abfrage verhindert, dass Werte, die aus z.B. CheckedListBoxen kommen,
' nicht überschrieben werden. Diese Werte werden bereits mit UpdateMultipleValues gespeichert
If (Not value.Contains(";")) Then
If Not IsNothing(ctrlvalID) Then
Dim upd1 = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}' WHERE CONTROL_ID = {1} AND RECORD_ID = {2}", value.ToString, CONTROL_ID, CURRENT_RECORD_ID)
Dim upd1 = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}',CHANGE_STEP = {1},CHANGED_WHO = '{2}' WHERE CONTROL_ID = {3} AND RECORD_ID = {4}", _
value.ToString, CURRENT_CHANGE_STEP, Environment.UserName, CONTROL_ID, CURRENT_RECORD_ID)
ClassDatabase.Execute_non_Query(upd1)
Else
If CURRENT_RECORD_ID <> 0 Then
@@ -321,8 +327,9 @@ Public Class ClassControlBuilder
Case "DateEdit"
If dt.Rows.Count = 1 Then
Try
Dim dateValue As String = dt.Rows(0).Item(0)
If dateValue = "1900-01-01" Then
Dim val = dt.Rows(0).Item(0)
Dim dateValue As String = CDate(dt.Rows(0).Item(0))
If val = "1900-01-01" Then
Continue For
End If
ControlLoader.DateTimePicker.LoadValue(dependingControl, dateValue)
@@ -421,10 +428,10 @@ Public Class ClassControlBuilder
Dim controlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
CONTROL_ID = controlId
'SQL für abhängige Auswahllisten
Dim SQL As String = String.Format("SELECT GUID, SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE SQL_COMMAND_1 LIKE '%@{0}@%'", controlId)
Dim SQL As String = String.Format("SELECT GUID, SQL_COMMAND_1,CONTROL_TYPE_ID,FORMAT_TYPE FROM TBPMO_CONTROL WHERE SQL_COMMAND_1 LIKE '%@{0}@%'", controlId)
Dim value
'SQL für enable control
Dim SQLenable As String = String.Format("SELECT GUID, SQL_COMMAND_2 FROM TBPMO_CONTROL WHERE SQL_COMMAND_2 LIKE '%@{0}@%'", controlId)
Dim SQLenable As String = String.Format("SELECT GUID, SQL_COMMAND_2,CONTROL_TYPE_ID,FORMAT_TYPE FROM TBPMO_CONTROL WHERE SQL_COMMAND_2 LIKE '%@{0}@%'", controlId)
value = DirectCast(control, DevExpress.XtraEditors.DateEdit).DateTime
@@ -461,10 +468,10 @@ Public Class ClassControlBuilder
Console.WriteLine("Obacht")
End If
'SQL für abhängige Auswahllisten
Dim SQL As String = String.Format("SELECT GUID, SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE SQL_COMMAND_1 LIKE '%@{0}@%'", controlId)
Dim SQL As String = String.Format("SELECT GUID, SQL_COMMAND_1, CONTROL_TYPE_ID,FORMAT_TYPE FROM TBPMO_CONTROL WHERE SQL_COMMAND_1 LIKE '%@{0}@%'", controlId)
Dim value
'SQL für enable control
Dim SQLenable As String = String.Format("SELECT GUID, SQL_COMMAND_2 FROM TBPMO_CONTROL WHERE SQL_COMMAND_2 LIKE '%@{0}@%'", controlId)
Dim SQLenable As String = String.Format("SELECT GUID, SQL_COMMAND_2, CONTROL_TYPE_ID,FORMAT_TYPE FROM TBPMO_CONTROL WHERE SQL_COMMAND_2 LIKE '%@{0}@%'", controlId)
' Diese Befehle führen dazu, dass auch der ValueMember als Wert ausgelesen wird
' Das kann zu unerwarteten Ergebnissen führen, da der Benutzer nur den DisplayMember sieht.