MS_22042016
This commit is contained in:
commit
944dcd330a
@ -76,6 +76,7 @@ Public Class ClassControlBuilder
|
||||
|
||||
Public Sub MouseHover(sender As Object, e As EventArgs)
|
||||
Dim onMouseHoverHandler As EventHandler = CType(Me.Events(_onMouseHoverName), EventHandler)
|
||||
|
||||
If onMouseHoverHandler IsNot Nothing Then
|
||||
onMouseHoverHandler.Invoke(sender, e)
|
||||
End If
|
||||
@ -147,16 +148,20 @@ Public Class ClassControlBuilder
|
||||
Dim SQL As String = String.Format("SELECT GUID, SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE SQL_COMMAND_1 LIKE '%@{0}@%'", controlId)
|
||||
Dim value
|
||||
|
||||
Select Case control.GetType()
|
||||
Case GetType(CustomComboBox)
|
||||
If IsNothing(DirectCast(control, CustomComboBox).ValueMember) Then
|
||||
value = DirectCast(control, CustomComboBox).Text
|
||||
Else
|
||||
value = DirectCast(control, CustomComboBox).SelectedValue
|
||||
End If
|
||||
Case Else
|
||||
Exit Sub
|
||||
End Select
|
||||
' 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.
|
||||
'Select Case control.GetType()
|
||||
' Case GetType(CustomComboBox)
|
||||
' If IsNothing(DirectCast(control, CustomComboBox).ValueMember) Then
|
||||
' value = DirectCast(control, CustomComboBox).Text
|
||||
' Else
|
||||
' value = DirectCast(control, CustomComboBox).SelectedValue
|
||||
' End If
|
||||
' Case Else
|
||||
' Exit Sub
|
||||
'End Select
|
||||
' Die bessere Lösung ist für jetzt, einfach den angezeigten Wert auszulesen:
|
||||
value = DirectCast(control, CustomComboBox).Text
|
||||
|
||||
If String.IsNullOrEmpty(value) Then
|
||||
Exit Sub
|
||||
@ -175,10 +180,24 @@ Public Class ClassControlBuilder
|
||||
Continue For
|
||||
End If
|
||||
|
||||
sqlcommand = sqlcommand.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
||||
Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)")
|
||||
Dim match As System.Text.RegularExpressions.Match = regex.Match(sqlcommand)
|
||||
|
||||
If match.Success Then
|
||||
Dim sqlguid = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", controlId, CURRENT_RECORD_ID)
|
||||
Dim ctrlvalID = ClassDatabase.Execute_Scalar(sqlguid)
|
||||
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, controlId, CURRENT_RECORD_ID)
|
||||
ClassDatabase.Execute_non_Query(upd1)
|
||||
Else
|
||||
Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", controlId, CURRENT_RECORD_ID, value, Environment.UserName)
|
||||
If ClassDatabase.Execute_non_Query(ins) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue '" & ins & "'")
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
' DependingControlId bezeichnet das Control, das die Abhängigkeit enthält
|
||||
Dim dependingControlId As Integer = row.Item("GUID")
|
||||
Dim panel As Panel = DirectCast(control.Parent, Panel)
|
||||
@ -189,19 +208,52 @@ Public Class ClassControlBuilder
|
||||
|
||||
sqlcommand = sqlcommand.Replace(match.Groups(1).Value, value)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> " & String.Format("Executing SQL_COMMAND: '{0}' for controlID '{1}'", sqlcommand, dependingControlId))
|
||||
Dim dt As DataTable = ClassDatabase.Return_Datatable(sqlcommand)
|
||||
Dim obj
|
||||
obj = dependingControl.GetType.ToString
|
||||
Select Case dependingControl.GetType().Name
|
||||
|
||||
Case "ComboBox"
|
||||
Dim dt As DataTable = ClassDatabase.Return_Datatable(sqlcommand)
|
||||
Dim type = dependingControl.GetType().Name
|
||||
Select Case type
|
||||
Case "DateEdit"
|
||||
If dt.Rows.Count = 1 Then
|
||||
Try
|
||||
Dim dateValue As String = dt.Rows(0).Item(0)
|
||||
If dateValue = "1900-01-01" Then
|
||||
Continue For
|
||||
End If
|
||||
ControlLoader.DateTimePicker.LoadValue(dependingControl, dateValue)
|
||||
Dim sql1 = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", dependingControlId, CURRENT_RECORD_ID)
|
||||
Dim id = ClassDatabase.Execute_Scalar(sql1)
|
||||
|
||||
If Not IsNothing(id) Then
|
||||
Dim upd = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}' WHERE GUID = {1}", dateValue, id)
|
||||
If ClassDatabase.Execute_non_Query(upd) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was not nothing - Updated the ControlValue '" & upd)
|
||||
Else
|
||||
ClassLogger.Add(" >> Check Update depending control value as it was nothing and Update was not successful - Update-Command '" & upd & "'")
|
||||
End If
|
||||
|
||||
Else
|
||||
Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", dependingControlId, CURRENT_RECORD_ID, dateValue, Environment.UserName)
|
||||
If ClassDatabase.Execute_non_Query(ins) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue '" & ins & "'")
|
||||
Else
|
||||
ClassLogger.Add(" >> Check Insert depending control value as it was nothing and Insert was not successful- Insert-Command '" & ins & "'")
|
||||
End If
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpectet Error in OnComboBoxValueChanged - TextBox: " & ex.Message, True)
|
||||
End Try
|
||||
Else
|
||||
ClassLogger.Add(" >> Attention: RowCount for depending control was '" & dt.Rows.Count.ToString & "' and not 1 as expected - Check SQL: '" & sqlcommand & "'")
|
||||
End If
|
||||
Case "CustomComboBox"
|
||||
ControlLoader.Combobox.SetDataSource(DirectCast(dependingControl, CustomComboBox), dt)
|
||||
Case "Label"
|
||||
If dt.Rows.Count = 1 Then
|
||||
Try
|
||||
ControlLoader.Label.LoadValue(DirectCast(dependingControl, Label), 9999, 9999, dt.Rows(0).Item(0).ToString, True)
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(ex.Message)
|
||||
ClassLogger.Add("Unexpectet Error in OnComboBoxValueChanged - Label: " & ex.Message, True)
|
||||
End Try
|
||||
End If
|
||||
Case "TextBox"
|
||||
@ -214,7 +266,7 @@ Public Class ClassControlBuilder
|
||||
|
||||
If Not IsNothing(id) Then
|
||||
Dim upd = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}' WHERE GUID = {1}", value1, id)
|
||||
If ClassDatabase.Execute_non_Query(sql1) = True Then
|
||||
If ClassDatabase.Execute_non_Query(upd) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was not nothing - Updated the ControlValue '" & upd)
|
||||
Else
|
||||
ClassLogger.Add(" >> Check Update depending control value as it was nothing and Update was not successful - Update-Command '" & upd & "'")
|
||||
@ -230,7 +282,7 @@ Public Class ClassControlBuilder
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(ex.Message)
|
||||
ClassLogger.Add("Unexpectet Error in OnComboBoxValueChanged - TextBox: " & ex.Message, True)
|
||||
End Try
|
||||
Else
|
||||
ClassLogger.Add(" >> Attention: RowCount for depending control was '" & dt.Rows.Count.ToString & "' and not 1 as expected - Check SQL: '" & sqlcommand & "'")
|
||||
@ -312,7 +364,7 @@ Public Class ClassControlBuilder
|
||||
AddHandler textbox.TextChanged, AddressOf OnTextBoxTextChanged
|
||||
AddHandler textbox.ReadOnlyChanged, AddressOf OnReadOnlyChanged
|
||||
|
||||
Case "ComboBox"
|
||||
Case "CustomComboBox"
|
||||
Dim combo As CustomComboBox = CType(control, CustomComboBox)
|
||||
AddHandler combo.SelectedValueChanged, AddressOf RecordChanged
|
||||
AddHandler combo.SelectedValueChanged, AddressOf OnComboBoxValueChanged
|
||||
@ -603,7 +655,7 @@ Public Class ClassControlBuilder
|
||||
Select Case CurrentType
|
||||
Case "TextBox"
|
||||
ActiveControl.BackColor = ActiveColor
|
||||
Case "ComboBox"
|
||||
Case "CustomComboBox"
|
||||
'Case "System.Windows.Forms.ComboBox"
|
||||
ActiveControl.BackColor = ActiveColor
|
||||
Case "Label"
|
||||
@ -635,7 +687,7 @@ Public Class ClassControlBuilder
|
||||
Select Case Type
|
||||
Case "TextBox"
|
||||
inctrl.BackColor = Color.White
|
||||
Case "ComboBox"
|
||||
Case "CustomComboBox"
|
||||
'Case "System.Windows.Forms.ComboBox"
|
||||
inctrl.BackColor = Color.White
|
||||
Case "Label"
|
||||
@ -664,7 +716,7 @@ Public Class ClassControlBuilder
|
||||
Select Case gbType
|
||||
Case "TextBox"
|
||||
gbctrl.BackColor = Color.White
|
||||
Case "ComboBox"
|
||||
Case "CustomComboBox"
|
||||
'Case "System.Windows.Forms.ComboBox"
|
||||
gbctrl.BackColor = Color.White
|
||||
Case "Label"
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -15,16 +15,15 @@
|
||||
'End Function
|
||||
|
||||
Public Shared Function LoadAutoValue(control As Windows.Forms.Control, RecordId As Integer, ParentRecordId As Integer, entity_ID As Integer)
|
||||
Dim ControlId As Integer
|
||||
Try
|
||||
If ControlId = 810 Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
Dim AutoValue As String = String.Empty
|
||||
ControlId = DirectCast(control.Tag, ClassControlMetadata).Id
|
||||
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
|
||||
Dim CONNID = ClassDatabase.Execute_Scalar(String.Format("SELECT CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId))
|
||||
Dim SQL As String = ClassDatabase.Execute_Scalar(String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId))
|
||||
SQL = ClassControlValues.ReplaceSqlCommandPlaceholders(SQL, RecordId, ParentRecordId, entity_ID)
|
||||
If ControlId = 984 Then
|
||||
Console.WriteLine("VertragsNr")
|
||||
End If
|
||||
|
||||
If SQL = "" Or IsDBNull(SQL) Then
|
||||
Return Nothing
|
||||
@ -43,7 +42,7 @@
|
||||
|
||||
Return AutoValue
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in LoadAutoValue - Control-ID: " & ControlId.ToString & " - ERROR: " & ex.Message, True)
|
||||
ClassLogger.Add("Unexpected Error in LoadAutoValue: " & ex.Message, True)
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
@ -56,9 +55,7 @@
|
||||
|
||||
Public Shared Function GetDynamicValue(controlId As Integer, formId As Integer, connID As Object, sqlCommand As String) As DynamicValue
|
||||
Dim returnValue As DynamicValue
|
||||
If controlId = 810 Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
|
||||
returnValue.StaticList = CheckForStaticList(controlId)
|
||||
returnValue.DataTable = GetSqlList(controlId, formId, connID, sqlCommand)
|
||||
|
||||
@ -85,9 +82,6 @@
|
||||
|
||||
Public Shared Function GetSqlList(controlId As Integer, formId As Integer, connection_Id As Object, sqlCommand As String) As DataTable
|
||||
Try
|
||||
If controlId = 810 Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
If sqlCommand Is Nothing Or sqlCommand = String.Empty Then
|
||||
Return Nothing
|
||||
End If
|
||||
@ -117,132 +111,81 @@
|
||||
End Function
|
||||
|
||||
Overloads Shared Sub SetDataSource(control As CustomComboBox, dt As DataTable)
|
||||
Try
|
||||
If control.Name = "cmbverantwortlich" Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
Dim Name1 = dt.Columns(0).ColumnName.ToString
|
||||
Dim Name2
|
||||
Try
|
||||
Name2 = dt.Columns(1).ColumnName.ToString
|
||||
Catch ex As Exception
|
||||
Name2 = dt.Columns(0).ColumnName.ToString
|
||||
End Try
|
||||
Dim columnCount As Integer = dt.Columns.Count
|
||||
control.BeginUpdate()
|
||||
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
|
||||
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
|
||||
control.DataSource = Nothing
|
||||
control.SelectedIndex = -1
|
||||
ClassControlValues.ClearControlValue(control)
|
||||
Dim sw As Stopwatch = Stopwatch.StartNew()
|
||||
Dim columnCount As Integer = dt.Columns.Count
|
||||
|
||||
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
|
||||
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
|
||||
If columnCount = 1 Then
|
||||
For Each row As DataRow In dt.Rows
|
||||
control.Items.Add(row.Item(0).ToString)
|
||||
Next
|
||||
'control.ValueMember = Name1
|
||||
'control.DisplayMember = Name1
|
||||
ElseIf columnCount = 2 Then
|
||||
'If control.Name = "cmbverantwortlich" Then
|
||||
' control.ValueMember = Name1
|
||||
' control.DisplayMember = Name2
|
||||
'Else
|
||||
For Each row As DataRow In dt.Rows
|
||||
control.Items.Add(row.Item(1).ToString)
|
||||
Next
|
||||
'End If
|
||||
control.BeginUpdate()
|
||||
|
||||
'If control.Name = "cmbverantwortlich" Then
|
||||
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
|
||||
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
|
||||
control.DataSource = Nothing
|
||||
control.SelectedIndex = -1
|
||||
|
||||
'Else
|
||||
' control.ValueMember = Name1
|
||||
' control.DisplayMember = Name2
|
||||
'End If
|
||||
End If
|
||||
' Als Erstes setzen wir die DataSource
|
||||
'If control.Name = "cmbverantwortlich" Then
|
||||
' control.DataSource = dt
|
||||
'End If
|
||||
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
|
||||
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
|
||||
If columnCount = 1 Then
|
||||
control.DisplayMember = dt.Columns(0).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
ElseIf columnCount = 2 Then
|
||||
control.DisplayMember = dt.Columns(1).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
End If
|
||||
|
||||
'control.DataSource = dt
|
||||
control.EndUpdate()
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("unexpected Error in SetDataSource for ControlName: " & control.Name & " - Error: " & ex.Message)
|
||||
End Try
|
||||
' Als letztes setzen wir die DataSource
|
||||
control.DataSource = dt
|
||||
|
||||
control.EndUpdate()
|
||||
|
||||
sw.Stop()
|
||||
Console.WriteLine("SetDataSource for {0} took {1}ms", control.Name, sw.ElapsedMilliseconds)
|
||||
End Sub
|
||||
|
||||
Overloads Shared Sub SetDataSource(control As DevExpress.XtraEditors.CheckedListBoxControl, dt As DataTable)
|
||||
Try
|
||||
If control.Name = "cmbverantwortlich" Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
Dim columnCount As Integer = dt.Columns.Count
|
||||
Dim columnCount As Integer = dt.Columns.Count
|
||||
|
||||
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
|
||||
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
|
||||
control.DataSource = Nothing
|
||||
control.SelectedIndex = -1
|
||||
|
||||
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
|
||||
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
|
||||
control.DataSource = Nothing
|
||||
control.SelectedIndex = -1
|
||||
|
||||
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
|
||||
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
|
||||
If columnCount = 1 Then
|
||||
control.DisplayMember = dt.Columns(0).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
ElseIf columnCount = 2 Then
|
||||
control.DisplayMember = dt.Columns(1).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
End If
|
||||
' Als letztes setzen wir die DataSource
|
||||
control.DataSource = dt
|
||||
control.EndUpdate()
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("unexpected Error in SetDataSource2 for ControlName: " & control.Name & " - Error: " & ex.Message)
|
||||
End Try
|
||||
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
|
||||
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
|
||||
If columnCount = 1 Then
|
||||
control.DisplayMember = dt.Columns(0).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
ElseIf columnCount = 2 Then
|
||||
control.DisplayMember = dt.Columns(1).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
End If
|
||||
|
||||
' Als letztes setzen wir die DataSource
|
||||
control.DataSource = dt
|
||||
End Sub
|
||||
|
||||
Overloads Shared Sub SetDataSource(control As DevExpress.XtraEditors.ListBoxControl, dt As DataTable)
|
||||
Try
|
||||
If control.Name = "cmbverantwortlich" Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
Dim columnCount As Integer = dt.Columns.Count
|
||||
Dim columnCount As Integer = dt.Columns.Count
|
||||
|
||||
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
|
||||
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
|
||||
control.DataSource = Nothing
|
||||
control.SelectedIndex = -1
|
||||
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
|
||||
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
|
||||
control.DataSource = Nothing
|
||||
control.SelectedIndex = -1
|
||||
|
||||
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
|
||||
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
|
||||
If columnCount = 1 Then
|
||||
control.DisplayMember = dt.Columns(0).ColumnName
|
||||
'control.ValueMember = dt.Columns(0).ColumnName
|
||||
ElseIf columnCount = 2 Then
|
||||
control.DisplayMember = dt.Columns(1).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
End If
|
||||
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
|
||||
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
|
||||
If columnCount = 1 Then
|
||||
control.DisplayMember = dt.Columns(0).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
ElseIf columnCount = 2 Then
|
||||
control.DisplayMember = dt.Columns(1).ColumnName
|
||||
control.ValueMember = dt.Columns(0).ColumnName
|
||||
End If
|
||||
|
||||
' Als letztes setzen wir die DataSource
|
||||
control.DataSource = dt
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("unexpected Error in SetDataSource3 for ControlName: " & control.Name & " - Error: " & ex.Message)
|
||||
End Try
|
||||
' Als letztes setzen wir die DataSource
|
||||
control.DataSource = dt
|
||||
End Sub
|
||||
|
||||
Overloads Shared Sub SetDataSource(control As Windows.Forms.DataGridView, dt As DataTable)
|
||||
Try
|
||||
If control.Name = "cmbverantwortlich" Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
control.DataSource = dt
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("unexpected Error in SetDataSource4 for ControlName: " & control.Name & " - Error: " & ex.Message)
|
||||
End Try
|
||||
control.DataSource = dt
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@ -263,6 +206,10 @@
|
||||
control.Text = value
|
||||
Else
|
||||
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
|
||||
|
||||
If ControlId = 984 Then
|
||||
Console.WriteLine("VertragsNr")
|
||||
End If
|
||||
Dim SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0} AND SCREEN_ID = {1}", ControlId, CURRENT_SCREEN_ID)
|
||||
Dim ctrl_screen_id = ClassDatabase.Execute_Scalar(SQL, True)
|
||||
If ctrl_screen_id > 0 Then
|
||||
@ -357,17 +304,11 @@
|
||||
Public Class Combobox : Inherits _ListControl
|
||||
|
||||
Public Shared Sub LoadValue(control As CustomComboBox, recordId As Integer, parentRecordId As Integer, value As String)
|
||||
If control.Name = "cmbverantwortlich" Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
control.Text = value
|
||||
End Sub
|
||||
|
||||
Public Shared Sub LoadList(control As CustomComboBox, formId As Integer, connID As Object, SQLCommand As String)
|
||||
Try
|
||||
If control.Name = "cmbverantwortlich" Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
Dim dynamic As DynamicValue = GetDynamicValue(DirectCast(control.Tag, ClassControlMetadata).Id, formId, connID, SQLCommand)
|
||||
|
||||
If dynamic.StaticList IsNot Nothing Then
|
||||
@ -385,9 +326,6 @@
|
||||
|
||||
Private Shared Sub CalculateDropdownWidth(control As CustomComboBox, dt As DataTable)
|
||||
Try
|
||||
If control.Name = "cmbverantwortlich" Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
Const WIDEST_WIDTH As Integer = 300
|
||||
Dim FinalWidth As Integer = WIDEST_WIDTH
|
||||
Dim index As Integer = 1
|
||||
@ -428,8 +366,6 @@
|
||||
control.SetItemCheckState(pos, CheckState.Checked)
|
||||
End If
|
||||
Next
|
||||
control.Refresh()
|
||||
' control.Invoke(control)
|
||||
End Sub
|
||||
|
||||
Public Shared Sub LoadList(control As DevExpress.XtraEditors.CheckedListBoxControl, formId As Integer, conn_Id As Object, SQLCommand As String)
|
||||
@ -461,9 +397,7 @@
|
||||
If IsNothing(value) Then
|
||||
Exit Sub
|
||||
End If
|
||||
If control.Name = "cmbverantwortlich" Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
|
||||
control.SelectedIndex = control.FindStringExact(value)
|
||||
End Sub
|
||||
|
||||
|
||||
@ -163,9 +163,7 @@ Public Class ClassControlValues
|
||||
|
||||
For Each control As Control In controls
|
||||
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
|
||||
If ControlId = 810 Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
|
||||
' Wert per LINQ aus DT_ControlValues suchen der zur aktuellen controlId passt
|
||||
Dim values As List(Of Object) = (From row In DT_ControlValues.AsEnumerable()
|
||||
Where row.Item("CONTROL_ID") = ControlId
|
||||
@ -225,9 +223,7 @@ Public Class ClassControlValues
|
||||
Try
|
||||
' Für die meisten Controls wird nur das erste Element der Liste benötigt
|
||||
Dim value As String = Nothing
|
||||
If controlId = 810 Then
|
||||
Console.WriteLine("Obacht")
|
||||
End If
|
||||
|
||||
If values.Count > 0 Then
|
||||
value = values.Item(0)
|
||||
End If
|
||||
@ -277,7 +273,7 @@ Public Class ClassControlValues
|
||||
ClassLogger.Add(" >> Sub LoadControlValue - Control-Type nicht berücksichtigt: " & GetType(Control).ToString(), False)
|
||||
End Select
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in LoadControlValue - ControlID: " & controlId.ToString & " - Error: " & ex.Message, True)
|
||||
ClassLogger.Add("Unexpected Error in LoadControlValue: " & ex.Message, True)
|
||||
MsgBox("Error in LoadControlValue:" & vbNewLine & ex.Message)
|
||||
End Try
|
||||
|
||||
@ -483,16 +479,25 @@ Public Class ClassControlValues
|
||||
|
||||
Case GetType(DataGridView)
|
||||
Dim dgv As DataGridView = DirectCast(control, DataGridView)
|
||||
dgv.Rows.Clear()
|
||||
Dim ds = dgv.DataSource
|
||||
|
||||
If (IsNothing(ds)) Then
|
||||
dgv.Rows.Clear()
|
||||
dgv.Refresh()
|
||||
Else
|
||||
dgv.DataSource = Nothing
|
||||
dgv.Refresh()
|
||||
End If
|
||||
Console.WriteLine("Clearing DataGridView")
|
||||
|
||||
End Select
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
#Region "LoadDefaultValue"
|
||||
Public Shared Sub LoadDefaultValues(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
|
||||
Public Shared Sub LoadDefaultValues(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection, ParentRecordId As Integer, entity_ID As Integer)
|
||||
'' Zuerst alle Controls leeren
|
||||
'ClearControlValues(controls)
|
||||
ClearControlValues(controls)
|
||||
|
||||
Dim i = 0
|
||||
For Each control As Control In controls
|
||||
@ -503,10 +508,10 @@ Public Class ClassControlValues
|
||||
End If
|
||||
|
||||
If TypeOf control Is GroupBox Then
|
||||
LoadDefaultValues(FormID, RecordID, DirectCast(control, GroupBox).Controls)
|
||||
LoadDefaultValues(FormID, RecordID, DirectCast(control, GroupBox).Controls, ParentRecordId, entity_ID)
|
||||
End If
|
||||
|
||||
LoadDefaultValue(CONTROL_ID, RecordID, control)
|
||||
LoadDefaultValue(CONTROL_ID, RecordID, control, ParentRecordId, entity_ID)
|
||||
|
||||
'Den Focus auf das erste Steuerelement setzen
|
||||
If i = 1 Then
|
||||
@ -516,7 +521,7 @@ Public Class ClassControlValues
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Shared Sub LoadDefaultValue(ControlID As Integer, RecordID As Integer, control As Control)
|
||||
Public Shared Sub LoadDefaultValue(ControlID As Integer, RecordID As Integer, control As Control, ParentRecordId As Integer, entity_ID As Integer)
|
||||
Try
|
||||
Dim SQL = String.Format("SELECT CONTROL_DEF_VALUE FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0}", ControlID)
|
||||
Dim autoValue = ClassDatabase.Execute_Scalar(SQL)
|
||||
@ -586,6 +591,33 @@ Public Class ClassControlValues
|
||||
' Mit EditValue kann man auch den angezeigten Wert leeren
|
||||
'datepicker.DateTime = autoValue
|
||||
datepicker.EditValue = autoValue
|
||||
Case GetType(Label)
|
||||
Dim lbl As Label = DirectCast(control, Label)
|
||||
Dim CONNID = ClassDatabase.Execute_Scalar(String.Format("SELECT CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlID))
|
||||
Dim SQL_AUTOVALUE As String = ClassDatabase.Execute_Scalar(String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlID))
|
||||
SQL_AUTOVALUE = ClassControlValues.ReplaceSqlCommandPlaceholders(SQL_AUTOVALUE, RecordID, ParentRecordId, entity_ID)
|
||||
If ControlID = 984 Then
|
||||
Console.WriteLine("VertragsNr")
|
||||
End If
|
||||
|
||||
If SQL_AUTOVALUE = "" Or IsDBNull(SQL_AUTOVALUE) Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If SQL_AUTOVALUE.ToUpper.StartsWith("select RECORD_ENTITY_ID FROM TBPMO_RECORD WHERE".ToUpper) Then
|
||||
SQL_AUTOVALUE = "SELECT MAX(RECORD_ENTITY_ID) + 1 FROM TBPMO_RECORD WHERE FORM_ID = " & entity_ID
|
||||
End If
|
||||
If Not IsNothing(CONNID) Then
|
||||
autoValue = ClassDatabase.Execute_ScalarWithConnection(CONNID, SQL_AUTOVALUE)
|
||||
Else
|
||||
autoValue = ClassDatabase.Execute_Scalar(SQL_AUTOVALUE, True)
|
||||
End If
|
||||
' AutoValue = ClassDatabase.Execute_Scalar(SQL)
|
||||
|
||||
If Not String.IsNullOrEmpty(autoValue) And Not IsDBNull(autoValue) Then
|
||||
lbl.Text = autoValue
|
||||
End If
|
||||
|
||||
End Select
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in LoadDefaultValue:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
|
||||
@ -7,23 +7,37 @@
|
||||
DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub OnEnabledChanged(e As EventArgs)
|
||||
'MyBase.OnEnabledChanged(e)
|
||||
'Protected Overrides Sub OnEnabledChanged(e As EventArgs)
|
||||
' 'MyBase.OnEnabledChanged(e)
|
||||
|
||||
If Me.Enabled Then
|
||||
Me.DropDownStyle = ComboBoxStyle.DropDown
|
||||
Else
|
||||
Me.DropDownStyle = ComboBoxStyle.DropDownList
|
||||
End If
|
||||
End Sub
|
||||
' If Me.Enabled Then
|
||||
' Me.DropDownStyle = ComboBoxStyle.DropDown
|
||||
' Else
|
||||
' Me.DropDownStyle = ComboBoxStyle.DropDownList
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
Protected Overrides Sub OnDrawItem(e As DrawItemEventArgs)
|
||||
Dim g As System.Drawing.Graphics = e.Graphics
|
||||
Dim rect As Rectangle = e.Bounds
|
||||
|
||||
If e.Index >= 0 Then
|
||||
Dim label As String = Me.Items(e.Index).ToString()
|
||||
Dim label As String
|
||||
|
||||
' Wenn die Items eine Static List ist, wird der String ausgelesen
|
||||
If (Me.Items(e.Index).GetType() = GetType(String)) Then
|
||||
label = Me.Items(e.Index).ToString()
|
||||
Else
|
||||
'Wenn die Items aus einer Datatable kommen, wird der DisplayMember ausgelesen
|
||||
Dim rowView As DataRowView = Me.Items(e.Index)
|
||||
Dim rowCount As Integer = rowView.Row.ItemArray.Count
|
||||
|
||||
If rowCount = 1 Then
|
||||
label = rowView.Item(0)
|
||||
ElseIf rowCount = 2 Then
|
||||
label = rowView.Item(1)
|
||||
End If
|
||||
End If
|
||||
|
||||
If e.State = (DrawItemState.Disabled Or DrawItemState.NoAccelerator Or DrawItemState.NoFocusRect Or DrawItemState.ComboBoxEdit) Then
|
||||
' DISABLED STATE
|
||||
|
||||
@ -140,7 +140,7 @@ Public Class ClassDatabase
|
||||
Try
|
||||
Dim SQLconnect As New SqlClient.SqlConnection
|
||||
Dim SQLcommand As SqlClient.SqlCommand
|
||||
SQLconnect.ConnectionString = connectionString
|
||||
SQLconnect.ConnectionString = MyConnectionString
|
||||
SQLconnect.Open()
|
||||
SQLcommand = SQLconnect.CreateCommand
|
||||
'Update Last Created Record in Foo
|
||||
|
||||
@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.4.9")>
|
||||
<Assembly: AssemblyVersion("2.4.5.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
|
||||
<Assembly: NeutralResourcesLanguageAttribute("")>
|
||||
@ -30,6 +30,7 @@ Public Class frmConfig_Basic
|
||||
CONNECTION_CHANGED = True
|
||||
'Set the construction string
|
||||
MyConnectionString = con 'csb.ConnectionString
|
||||
ClassDatabase.Init()
|
||||
My.Settings.Save()
|
||||
If chkbxUserAut.Checked = False Then
|
||||
Dim wrapper As New ClassEncryption("!35452didalog=")
|
||||
|
||||
@ -621,8 +621,6 @@ Public Class frmConstructor_Main
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Column_Row_Handler()
|
||||
Me.Cursor = Cursors.Default
|
||||
Me.Refresh()
|
||||
' pnlDetails.Invoke(sender, e)
|
||||
'If dataloaded = True Then
|
||||
' If LogErrorsOnly = False Then ClassLogger.Add(" >> grvwSelection_FocusedRowChanged - EditState: " & EDIT_STATE, False)
|
||||
' Dim selRecID = GetSelected_RecordID()
|
||||
@ -722,7 +720,8 @@ Public Class frmConstructor_Main
|
||||
RIGHT_ONLY_READ = False
|
||||
End Try
|
||||
If RIGHT_ONLY_READ = True Then
|
||||
tsButtonAdd.Enabled = False
|
||||
' Hinzufügen sollte auch bei RIGHT_ONLY_READ verfügbar sein
|
||||
tsButtonAdd.Enabled = True
|
||||
tsButtonEdit.Enabled = False
|
||||
tsButtonSave.Enabled = False
|
||||
tsButtonDelete.Enabled = False
|
||||
@ -1154,9 +1153,11 @@ Public Class frmConstructor_Main
|
||||
Lock_RecordControls(False)
|
||||
tsButtonShowWorkflowTasks.Enabled = True
|
||||
CURRENT_PARENT_ID = PARENT_ID
|
||||
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls)
|
||||
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls, CURRENT_PARENT_ID, ENTITY_ID)
|
||||
' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden
|
||||
tsButtonSave.Enabled = True
|
||||
' Muss aktiviert werden, sonst funktionieren die Combobox Abhängigkeits Events nicht
|
||||
CURRENT_RECORD_ENABLED = True
|
||||
EDIT_STATE = EditState.Insert
|
||||
RECORD_CHANGED = True
|
||||
tsslblRecord.Text = "Adding record ......"
|
||||
@ -1333,7 +1334,7 @@ Public Class frmConstructor_Main
|
||||
msg = "The record and all dependencies for '" & SELECTED_RECORD_ID & "' were deleted - " & Now
|
||||
End If
|
||||
Update_Status_Label(True, msg, EditState.Update)
|
||||
|
||||
|
||||
msg = "Wollen Sie die zugehörigen windream-Dateien ebenfalls löschen?"
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
msg = "Do You want to delete the related windream-documents?"
|
||||
@ -1992,14 +1993,6 @@ Public Class frmConstructor_Main
|
||||
Case GetType(Windows.Forms.TextBox)
|
||||
Dim txt As TextBox = CType(Control, TextBox)
|
||||
txt.ReadOnly = state
|
||||
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
|
||||
'Dim chlb As DevExpress.XtraEditors.CheckedListBoxControl = CType(Control, DevExpress.XtraEditors.CheckedListBoxControl)
|
||||
'If state = True Then
|
||||
' chlb.Enabled = False
|
||||
'Else
|
||||
' chlb.Enabled = True
|
||||
'End If
|
||||
|
||||
Case Else
|
||||
Control.Enabled = Not state
|
||||
|
||||
@ -3197,6 +3190,7 @@ Public Class frmConstructor_Main
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetSearchDocuments took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
If windreamSucheErgebnisse.Count > 0 Then
|
||||
Dim files_deleted As Integer = 0
|
||||
|
||||
For Each dok As WMObject In windreamSucheErgebnisse
|
||||
Dim filename = "W:" & dok.aPath
|
||||
Try
|
||||
@ -3212,7 +3206,7 @@ Public Class frmConstructor_Main
|
||||
MsgBox(msg, MsgBoxStyle.Information)
|
||||
Next
|
||||
Else
|
||||
Dim msg = "Es wurden keine Dateien für diesen Datensatz gefunden!"
|
||||
Dim msg = "Es wurden keine Dateien für diesen Datensatz gefunden!"
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
msg = "No files found for record!"
|
||||
End If
|
||||
@ -3530,9 +3524,13 @@ Public Class frmConstructor_Main
|
||||
CURRENT_RECORD_ID = RECORD_ID
|
||||
CURRENT_FORM_ID = ENTITY_ID
|
||||
CURRENT_FORMVIEW_ID = FORMVIEW_ID
|
||||
frmWD_Index_Dokart.ShowDialog()
|
||||
RUN_WD_SEARCH(WD_Suche, "RECORD")
|
||||
If ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE GUID = " & CURRENT_FILEID & " AND WORKED = 0") = 1 Then
|
||||
frmWD_Index_Dokart.ShowDialog()
|
||||
Else
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> File was deleted or worked meanwhile!")
|
||||
End If
|
||||
Next
|
||||
RUN_WD_SEARCH(WD_Suche, "RECORD")
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
@ -4302,11 +4300,21 @@ Public Class frmConstructor_Main
|
||||
Console.WriteLine("Filter changed: " & Now)
|
||||
End Sub
|
||||
Public Sub New()
|
||||
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
InitializeComponent()
|
||||
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
End Sub
|
||||
|
||||
Private Sub AxObjectListControl_CausesValidationChanged(sender As Object, e As EventArgs) Handles AxObjectListControl.CausesValidationChanged
|
||||
Console.WriteLine("CausesValidationChanged")
|
||||
End Sub
|
||||
|
||||
Private Sub AxObjectListControl_SettingFlagChanged(sender As Object, e As EventArgs) Handles AxObjectListControl.SettingFlagChanged
|
||||
Console.WriteLine("SettingFlagChanged")
|
||||
End Sub
|
||||
|
||||
Private Sub AxObjectListControl_Validated(sender As Object, e As EventArgs) Handles AxObjectListControl.Validated
|
||||
Console.WriteLine("Validated")
|
||||
End Sub
|
||||
End Class
|
||||
@ -440,6 +440,23 @@ Public Class frmFormInput
|
||||
System.Windows.Forms.MessageBox.Show(ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub BindingNavigatorDeleteItem_Click(sender As Object, e As EventArgs)
|
||||
Dim result As MsgBoxResult
|
||||
result = MessageBox.Show("Möchten Sie den Datensatz wirklich löschen?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
If result = MsgBoxResult.Yes Then
|
||||
Dim sql As String = "DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = " & SelectedRecordID
|
||||
If ClassDatabase.Execute_non_Query(sql) = True Then ' Delete der Controls erfolgreich ausgeführt, jetzt der Record
|
||||
sql = "DELETE FROM TBPMO_RECORD WHERE GUID = " & SelectedRecordID
|
||||
If ClassDatabase.Execute_non_Query(sql) = True Then
|
||||
LoadOverview_Grid()
|
||||
ToolStrip_Notice("Der Datensatz wurde erfolgreich gelöscht - " & Now)
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub tsbtnrefresh_Click(sender As Object, e As EventArgs) Handles tsbtnrefresh.Click
|
||||
LoadOverview_Grid()
|
||||
End Sub
|
||||
@ -449,7 +466,7 @@ Public Class frmFormInput
|
||||
ClassControlValues.ClearControlValues(pnlView.Controls)
|
||||
ClassControlValues.UnloadControlValuesList(SelectedRecordID, thisformid, pnlView.Controls)
|
||||
ClassControlValues.LoadControlValuesList(thisformid, pnlView.Controls)
|
||||
ClassControlValues.LoadDefaultValues(thisformid, SelectedRecordID, pnlView.Controls)
|
||||
ClassControlValues.LoadDefaultValues(thisformid, SelectedRecordID, pnlView.Controls, 99, 99)
|
||||
|
||||
'Das Flag INSERT nach LoadControls setzen
|
||||
CtrlCommandUI.IsInsert = True
|
||||
|
||||
@ -774,6 +774,7 @@
|
||||
props.ShowColumn = NotNull(CBool(r.Item("CONTROL_SHOW_COLUMN")), True)
|
||||
props.TabStop = r.Item("CTRLSCR_TAB_STOP")
|
||||
props.TabIndex = r.Item("CTRLSCR_TAB_INDEX")
|
||||
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
|
||||
|
||||
Case "Datagridview"
|
||||
props.ControlType = "DataGridView/Table"
|
||||
@ -820,6 +821,7 @@
|
||||
CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle))
|
||||
props.ColumnTitle = ClassConverter.ToStringOrDefault(r.Item("CONTROL_COL_NAME"), ctrl.Name)
|
||||
props.ShowColumn = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_SHOW_COLUMN"), True)
|
||||
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
|
||||
|
||||
Case "F_AddAppointment"
|
||||
props.ControlType = "Function.AddToCalendar"
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
Select Case type
|
||||
Case "Label" : props = New LabelProperties()
|
||||
Case "Textbox" : props = New TextBoxProperties()
|
||||
Case "Combobox" : props = New ComboBoxProperties()
|
||||
Case "CustomComboBox" : props = New ComboBoxProperties()
|
||||
Case "Checkbox" : props = New CheckBoxProperties()
|
||||
Case "RadioButton" : props = New RadioButtonProperties()
|
||||
Case "Datepicker" : props = New DateTimePickerProperties()
|
||||
@ -97,7 +97,7 @@
|
||||
props.Multiline = r.Item("CONTROL_MULTILINE")
|
||||
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
|
||||
|
||||
Case "Combobox"
|
||||
Case "CustomComboBox"
|
||||
props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR"))
|
||||
props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(),
|
||||
CType(r.Item("CTRLSCR_FONT_SIZE"), Single),
|
||||
@ -303,7 +303,7 @@
|
||||
' Else
|
||||
' props.Format = "String"
|
||||
' End If
|
||||
' Case "Combobox"
|
||||
' Case "CustomComboBox"
|
||||
' props = New ComboBoxProperties()
|
||||
' props.MasterDataId = row.Item("CTRLSCR_MASTER_DATA_ID")
|
||||
' props.DefaultValue = ClassConverter.ToStringOrDefault(row.Item("CONTROL_DEF_VALUE"))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user